centos7搭建LNMP环境-编译安装&yum安装-超详细

2023-05-16

文章目录

          • 0. 首先建议使用docker搭建环境。[链接在这!](https://blog.csdn.net/handsomezls/article/details/116936581)
          • 1. 首先了解编译安装和yum安装的区别。
          • 2. yum安装准备工作---切换阿里云yum源
          • 3. 编译安装lnmp **很不建议使用编译安装,麻烦且容易报错。**
          • 4.yum安装lnmp **可以先执行一下 yum update**
          • 5. lnmp一键安装 [参考网站](https://lnmp.org/) **不喜欢这种方式,所以没测试过,可以看这篇文章**
          • 6. 一些报错
          • 7. 笔记
          • 8. 参考文章

0. 首先建议使用docker搭建环境。链接在这!
1. 首先了解编译安装和yum安装的区别。

windows下安装centos虚拟机,之前写过。传送门~~

编译安装

  1. 可以按需安装,想安在哪个目录下就安在哪个目录下。
  2. 可以设定参数
  3. 可安装自己想要的版本

yum安装:

  1. 安装的方便快捷
  2. 不需要考虑包的依赖
  3. 可以直接使用service nginx start 等命令。
2. yum安装准备工作—切换阿里云yum源
# 1.备份原有的yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 
# 2.下载新的CentOS-Base.repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 3.清理缓存
yum clean all 
# 4.生成缓存
yum makecache 

如果想查看当前yum源是否切换成功,可随便使用yum安装一个东西即可看到。

yum install vim

base: mirrors.aliyun.com 这一行就代表了yum源地址

3. 编译安装lnmp 很不建议使用编译安装,麻烦且容易报错。
  1. nginx
    1.1 查看本地有没有安装过nginx

    rpm -qa | grep nginx 
    

    如果安装过,则执行如下命令,卸载原有的nginx

    rpm -e nginx-*   
    

    1.2 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装

    yum install gcc-c++
    

    1.3 PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

    yum install -y pcre pcre-devel
    

    1.4 zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

    yum install -y zlib zlib-devel
    

    1.5 OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
    nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

    yum install -y openssl openssl-devel
    

    1.6 官网下载 tar.gz安装包,地址~
    Mainline version:主线版本
    Stable version:稳定版本
    Legacy versions:旧版本
    在这里插入图片描述

    # 我们lnmp环境全部安装在这个目录下
    cd /usr/local
    # 下载
    wget -c https://nginx.org/download/nginx-1.20.0.tar.gz
    # 解压
    tar -zxvf nginx-1.20.0.tar.gz
    cd nginx-1.20.0
    # 编译
    ./configure --prefix=/usr/local/nginx
    # 安装
    make && make install
    # make[1]: 离开目录“/usr/local/nginx-1.20.0” 最后显示这个是编译安装成功的意思!
    

    启动、停止nginx

    cd /usr/local/nginx/sbin/
    ./nginx 
    ./nginx -s stop
    ./nginx -s quit
    ./nginx -s reload
    # 查看ngin进程
    ps aux | grep nginx
    

    配置nginx的service服务
    首先
    先停掉nginx服务

    killall -9 nginx
    或者使用 cd /usr/local/nginx/sbin/ && ./nginx -s stop

    然后编辑nginx.service配置文件

    vim /etc/init.d/nginx

    在里面写入以下配置:

    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemon
    #
    # chkconfig:   - 85 15
    # description:  NGINX is an HTTP(S) server, HTTP(S) reverse \
    #               proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config:      /etc/nginx/nginx.conf
    # config:      /etc/sysconfig/nginx
    # pidfile:     /var/run/nginx.pid
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    # Source networking configuration.
    . /etc/sysconfig/network
    
    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0
    
    # 配置nginx命令的位置
    # 修改为你的nginx可执行命令的路径如: /usr/local/nginx/sbin/nginx
    nginx="/usr/local/nginx/sbin/nginx"
    prog=$(basename $nginx)
    
    # 指向你的配置文件路径,如:/usr/local/nginx/conf/nginx.conf
    NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
    
    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
    
    lockfile=/var/lock/subsys/nginx
    
    make_dirs() {
       # make required directories
       user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
       if [ -n "$user" ]; then
          if [ -z "`grep $user /etc/passwd`" ]; then
             useradd -M -s /bin/nologin $user
          fi
          options=`$nginx -V 2>&1 | grep 'configure arguments:'`
          for opt in $options; do
              if [ `echo $opt | grep '.*-temp-path'` ]; then
                  value=`echo $opt | cut -d "=" -f 2`
                  if [ ! -d "$value" ]; then
                      # echo "creating" $value
                      mkdir -p $value && chown -R $user $value
                  fi
              fi
           done
        fi
    }
    
    start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6
        make_dirs
        echo -n $"Starting $prog: "
        daemon $nginx -c $NGINX_CONF_FILE
        retval=$?
        echo
        [ $retval -eq 0 ] && touch $lockfile
        return $retval
    }
    
    stop() {
        echo -n $"Stopping $prog: "
        killproc $prog -QUIT
        retval=$?
        echo
        [ $retval -eq 0 ] && rm -f $lockfile
        return $retval
    }
    
    restart() {
        configtest || return $?
        stop
        sleep 1
        start
    }
    
    reload() {
        configtest || return $?
        echo -n $"Reloading $prog: "
        killproc $prog -HUP
        retval=$?
        echo
    }
    
    force_reload() {
        restart
    }
    
    configtest() {
      $nginx -t -c $NGINX_CONF_FILE
    }
    
    rh_status() {
        status $prog
    }
    
    rh_status_q() {
        rh_status >/dev/null 2>&1
    }
    
    case "$1" in
        start)
            rh_status_q && exit 0
            $1
            ;;
        stop)
            rh_status_q || exit 0
            $1
            ;;
        restart|configtest)
            $1
            ;;
        reload)
            rh_status_q || exit 7
            $1
            ;;
        force-reload)
            force_reload
            ;;
        status)
            rh_status
            ;;
        condrestart|try-restart)
            rh_status_q || exit 0
                ;;
        *)
            echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
            exit 2
    esac
    
    

    然后执行

    # 重新加载某个服务的配置文件
    systemctl daemon-reload
    

    然后查看nginx状态

    service nginx status
    

    我这里报错了!! 提示错误信息Can’t open PID file /var/run/nginx.pid (yet?) after start:,原因是nginx主配置文件nginx.conf中 pid指令配置的pid路径 与 nginx systemd service文件中的配置PIDFile路径不一致导致的。
    解决办法

    1. 我用此方法并没有解决!将/etc/init.d/nginx(对应你的nginx service配置文件) 的pidfile 注释去掉,修改内容为logs/nginx.pid
      或者将你nginx主配置文件nginx.conf的pid注释去掉并修改内容为你的nginx service配置文件的pidfile
      总之两者pid路径一直即可解决。
    2. 用此方法解决了使用nginx -c的参数指定nginx.conf文件的位置。执行如下命令。

      ​1. /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
      2. systemctl daemon-reload
      3. service nginx status 就没错了

    如果想虚拟机外访问nginx记得关闭防火墙。centos有多种防火墙。

    systemctl status firewalld.service — 查看防火墙状态
    systemctl stop firewalld.service — 关闭防火墙
    systemctl disable firewalld.service — 设置开机禁用防火墙
    iptables防火墙的关闭!!!
    servcie iptables stop --临时关闭防火墙
    chkconfig iptables off --永久关闭防火墙
    service iptables status --查看防火墙状态

    最后一步:将nginx添加到环境变量

    vim /etc/profile
    在最后面写入如下代码
    PATH=$PATH:/usr/local/nginx/sbin
    export PATH
    最后执行 source /etc/profile

    至此,编译安装nginx完成!

  2. mysql
    1.1 首先卸载掉自带的MySQL

    rpm -qa | grep mariadb   查看已安装的mariadb
    rpm -e mariadb-***       卸载掉相应的mariadb
    yum -y remove mari*		 卸载yum安装的mariadb
    
    rpm -qa |grep mysql		查看已安装的mysql
    rpm -e mysql-***		卸载已安装的mysql
    yum remove mysql** 		卸载yum安装的mysql
    
    find / -name mysql
    rm -rf 相应的文件
    

    1.2 下载安装包
    首先查看自己的linux是32位还是64位?

    uname -a     # 如果是64位机器,会输出x86_64
    

    下载安装包 mysql下载地址。 要下载带boost的版本,Linux-Generic的版本是直接下载好解压完成,稍微配置一下就能用的。这种版本的mysql安装配置方式有待研究一下。

    https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-5.7.33.tar.gz
    

    在这里插入图片描述
    然后解压 ,这里有cmake的配置说明。MySQL CMake参数说明手册

    tar -zxvf mysql-boost-5.7.33.tar.gz
    cd ./mysql-5.7.33
    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=/usr/local/mysql-5.7.33/boost 
    make && make install
    

    这里如果 cmake执行报错,CMake Error at cmake/boost.cmake:88 (MESSAGE): (原因是因为缺少boost) 可以尝试以下cmake命令:

    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DCOMPILATION_COMMENT='Mysqlma' -DWITH_READLINE=ON -DMYSQL_TCP_PORT=3306 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost_1_59 -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock
    

    1.3 安装完成后,执行命令

    cd /usr/local/mysql

    1.4 编辑/etc/my.cnf ( 如果没有则创建)

    [client]
    port        = 3306
    socket      = /tmp/mysql.sock
    
    [mysqld]
    port        = 3306
    socket      = /tmp/mysql.sock
    user = mysql
    
    base dir = /usr/local/mysql
    datadir = /data/mysql/data
    pid-file = /data/mysql/mysql.pid
    
    log_error = /data/mysql/mysql-error.log
    slow_query_log = 1
    long_query_time = 1
    slow_query_log_file = /data/mysql/mysql-slow.log
    
    skip-external-locking
    key_buffer_size = 32M
    max_allowed_packet = 1024M
    table_open_cache = 128
    sort_buffer_size = 768K
    net_buffer_length = 8K
    read_buffer_size = 768K
    read_rnd_buffer_size = 512K
    myisam_sort_buffer_size = 8M
    thread_cache_size = 16
    query_cache_size = 16M
    tmp_table_size = 32M
    performance_schema_max_table_instances = 1000
    
    explicit_defaults_for_timestamp = true
    #skip-networking
    max_connections = 500
    max_connect_errors = 100
    open_files_limit = 65535
    
    log_bin=mysql-bin
    binlog_format=mixed
    server_id   = 232
    expire_logs_days = 10
    early-plugin-load = ""
    
    default_storage_engine = InnoDB
    innodb_file_per_table = 1
    innodb_buffer_pool_size = 128M
    innodb_log_file_size = 32M
    innodb_log_buffer_size = 8M
    innodb_flush_log_at_trx_commit = 1
    innodb_lock_wait_timeout = 50
    
    [mysqldump]
    quick
    max_allowed_packet = 16M
    
    [mysql]
    no-auto-rehash
    
    [myisamchk]
    key_buffer_size = 32M
    sort_buffer_size = 768K
    read_buffer = 2M
    write_buffer = 2M
    

    把当前用户和组改成mysql

    cd /usr/local
    chown -R mysql:mysql mysql
    

    初始化mysql

    ./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
    

    如果没有创建data目录,记着创建一下,再次执行初始化即可。

    mkdir /data/mysql/data
    #赋予权限
    chmod -R 777 /data/mysql
    

    拷贝可执行配置文件

    cd /usr/local/mysql/support-files
    cp mysql.server /etc/init.d/mysqld
    

    至此基本上安装成功了。启动mysql

    service mysqld start
    

    测试连接

    cd /usr/local/mysql/bin
    ./mysql -hlocalhost -uroot -p
    

    无需密码即可连接成功
    1.5 修改环境变量

    vim /etc/profile
    # 新增
    PATH=/usr/local/mysql/bin:$PATH
    # 保存退出后执行
    source /etc/profile
    

    设置开机自启动

    systemctl enable mysqld
    

    查看是否开机自启动

    chkconfig --list
    

    几个简单的命令

    service mysqld start
    service mysqld restart
    service mysqld stop
    service mysqld status
    

    用Navicate连接虚拟机中的mysql。

    #首先查看虚拟机的ip
    ifconfig
    #直接连接的时候会报错--->Host is not allowed to connect to this MySQL server
    #此时需要进入mysql,执行如下命令即可连接。
    mysql -u root -p
    use mysql;
    update user set host = '%' where user = 'root';
    FLUSH PRIVILEGES;
    

    修改MySQL密码

    mysql -u root -p
    #进入MySQL后,直接执行。
    set password for root@localhost = password('root');   ##这会报错
    #执行以下命令会发现
    use mysql;
    select Host,User from user;
    #host已经不是localhost了。因为刚才为了用Navicate连接,已经将host改成了%,所以此时要执行如下命令
    set password for root@'%' = password('root');
    flush privileges;
    #此时mysql的密码修改为root了。
    
  3. 安装php7.4
    3.1 首先下载php安装包,

    https://www.php.net/downloads.php

    3.2 解压、编译安装。我这里下载的是php-7.4.16.tar.gz.

    #首先将压缩包移动到/usr/local目录
    mv php-7.4.16.tar.gz /usr/local
    cd /usr/local
    tar -zxvf php-7.4.16.tar.gz
    cd php-7.4.16
    

    开始编译安装。

    ./configure  --prefix=/usr/local/php74 --with-config-file-path=/etc/php74 --with-fpm-user=nginx --with-fpm-group=nginx --enable-fpm --enable-opcache --enable-inline-optimization --disable-debug --disable-rpath --enable-shared -enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-iconv-dir --with-zlib --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --enable-ftp --enable-gd --enable-gd-jis-conv --with-jpeg   --with-freetype  --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --with-zip --enable-soap --with-gettext --enable-fileinfo --with-pear --enable-maintainer-zts --with-ldap=shared --without-gdbm --with-zip
    

    然后执行

    make && make install
    

    添加环境变量

    vim /etc/profile
    PATH=$PATH:/usr/local/php74/bin    #我这里的目录是php74注意别写错
    source /etc/profile
    # 此时执行
    php -v   #即可看到php信息
    

    修改php配置文件,在之前编译的源码包中,找到php.ini-production,复制到/usr/local/php74,并改名为php.ini (因为编译安装的时候,指定了php.ini文件所在目录位置。有些编译安装可能把php.ini放在php74/etc下,有些放在php74/lib下。主要看编译安装的命令)

    cp /usr/local/php-7.4.16/php.ini-production /usr/local/php74/php.ini
    

    修改php.ini,设置错误信息级别

    vim /usr/local/php74/php.ini
    display_errors = On   //原来是off
    

    修改php-fpm配置文件

    cd /usr/local/php74/etc
    cp php-fpm.conf.default php-fpm.conf
    vim php.fpm.conf
    去掉pid=run/php-fpm.pid前面的分号
    然后复制配置文件
    cd ./php-fpm.d
    cp www.conf.default www.conf  (这个配置文件可能在当前目录下php-fpm.d文件夹下,根据php不同版本决定。在它所在文件夹内执行此命令即可!)
    

    启动php

    /usr/local/php74/sbin/php-fpm
    # 如果报错nginx的问题  就去修改www.conf文件  将user=nginx和group=nginx两行改成user=nobody和group=nobody
    # 查看进程
    ps -aux | grep php
    

    将php-fpm添加至service服务

    #进入到编译目录
    cd /usr/local/php-7.4.16/sapi/fpm
    cp init.d.php-fpm /etc/init.d/php-fpm
    #赋予脚本可执行命令,添加开机自启动
    chmod +x /etc/init.d/php-fpm
    chkconfig --add php-fpm
    chkconfig php-fpm on
    #相关命令
    service php-fpm start
    service php-fpm stop
    service php-fpm restart
    chkconfig --list   --查看开机自启项目
    
4.yum安装lnmp 可以先执行一下 yum update
  1. nginx
    # 先安装nginx库
    rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    #使用yum安装nginx
    yum -y install nginx
    #启动nginx
    service nginx start  或者   systemctl start nginx
    service nginx stop
    service nginx status
    #关闭防火墙以后,即可在宿主机通过虚拟机ip直接访问虚拟机nginx
    systemctl status firewalld.service		--- 查看防火墙状态
    systemctl stop firewalld.service    		--- 关闭防火墙
    systemctl disable firewalld.service		--- 设置开机禁用防火墙
    #设置开机自启动
    systemctl enable nginx   #取消自启动就用disable
    #查看开机启动项
    systemctl list-unit-files
    systemctl list-unit-files | grep enable
    
  2. mysql
    首先卸载centos自带的MySQL
    #卸载mariadb
    rpm -qa | grep mariadb
    yum -y remove mari*
    rm -rf /var/lib/mysql/ * 
    rpm -qa | grep mariadb
    
    # 卸载mysql数据库
    yum remove mysql-community-serve
    rpm -qa |grep mysql
    yum remove mysql-*
    find / -name mysql
    rm -rf /var/lib/mysql 
    
    下载mysql的repo源 mysql的repo源
    #我这里下载的是5.7版本
    cd /usr/local
    wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
    rpm -ivh mysql57-community-release-el7-8.noarch.rpm 
    yum -y install mysql-server 
    
    漫长的安装完以后
    #首先启动mysql
    service mysqld start
    #然后查看MySQL密码
    grep "password" /var/log/mysqld.log
    #然后进入mysql
    mysql -u root -p
    #想修改mysql密码为简单点的密码
    #首先改一个复杂的密码,不然没办法修改MySQL密码策略
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'lol_LOL123';
    #查看当前MySQL策略
    SHOW VARIABLES LIKE 'validate_password%';
    #修改策略
    set global validate_password_policy=0;
    set global validate_password_length=1;
    #再次查看
    SHOW VARIABLES LIKE 'validate_password%';
    #现在即可修改成简单的密码
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
    
    如果想用navicate连接的话,要再进入数据库修改一下配置
    #执行完如下代码  外面的navicate即可连接了
    use mysql;
    update user set host = '%' where user = 'root';
    FLUSH PRIVILEGES;
    
    几个简单的命令
    service mysqld start
    service mysqld stop
    service mysqld restart
    service mysqld status
    #设置mysql开机自启动
    systemctl enable mysqld   #取消自启动就用disable
    #查看开机启动项
    systemctl list-unit-files
    systemctl list-unit-files | grep enable
    
  3. php7.4 (安装php还是采用编译安装比较好。。编译可以配置安装路径、yum的话 还得找在哪。找半天找不到
    安装源
     yum install epel-release
     yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
    
    安装YUM管理工具
      yum install yum-utils
    
    安装php
     yum install php74-php-gd  php74-php-pdo php74-php-mbstring php74-php-cli php74-php-fpm php74-php-mysqlnd
    
    一些命令
    #启动fpm、停止fpm、重启、查看状态
    service php74-php-fpm start
    service php74-php-fpm stop
    service php74-php-fpm restart
    service php74-php-fpm status
    #设置开机自启动
    systemctl enable php74-php-fpm #取消自启动就用disable
    #查看开机启动项
    systemctl list-unit-files
    systemctl list-unit-files | grep enable
    
    最后附上nginx配置文件,在/etc/nginx/conf.d目录下
    server {
        listen       80 default_server;
        
        server_name  localhost;
        root         /usr/share/nginx/html;
    
        # Load configuration files for the default server block.
    
        location / {
            # 这里改动了 定义首页索引文件的名称
            index index.php index.html index.htm;
        }
    
        error_page 404 /404.html;
            location = /40x.html {
        }
    
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    
        # 这里新加的
        # PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI协议默认配置.
        # Fastcgi服务器和程序(PHP,Python)沟通的协议.
        location ~ \.php$ {
            # 设置监听端口
            fastcgi_pass   127.0.0.1:9000;
            # 设置nginx的默认首页文件(上面已经设置过了,可以删除)
            fastcgi_index  index.php;
            # 设置脚本文件请求的路径
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            # 引入fastcgi的配置文件
            include        fastcgi_params;
        }
    }
    
5. lnmp一键安装 参考网站 不喜欢这种方式,所以没测试过,可以看这篇文章

Centos8(Liunx) 中安装PHP7.4 的三种方法和删除它的三种方法

6. 一些报错
  1. Starting nginx (via systemctl):长时间没反应并提示信息Can‘t open PID file /var/run/nginx.pid (yet?) after start
  2. nginx 报异常"/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)处理方法
  3. configure: error: Cannot find ldap.h
  4. configure: error: Package requirements (libzip >= 0.11 libzip ≠ 1.3.1 libzip ≠ 1.7.0) were not met
  5. 解决编译时内存不足c++: internal compiler error: Killed (program cc1plus)
7. 笔记
8. 参考文章
  1. 源码安装与yum安装的区别
  2. Centos8(Liunx) 中安装PHP7.4 的三种方法和删除它的三种方法
  3. Linuxyum源切换阿里云软件源
  4. CentOS7安装Nginx 这篇文章比较老,适当借鉴即可。
  5. 将nginx设置为系统service==》service nginx start 命令可用
  6. Centos 7 systemctl和防火墙firewalld命令
  7. centos中iptables防火墙的停止开启与永久关闭
  8. firewalld和iptables区别
  9. 卸载centos7自带mysql_mysql(1)-centos7如何彻底卸载自带mysql
  10. MySQL CMake参数说明手册
  11. centos7 源码编译安装 mysql5.7
  12. 将php-fpm添加至service服务
  13. Linux 设置程序开机自启动 (命令systemctl 和 chkconfig用法区别比较)
  14. 卸载centos7自带mysql_mysql(1)-centos7如何彻底卸载自带mysql
  15. 使用yum安装MySQL5.7
  16. rpm -ivh 这个ivh是干什么的
  17. CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
  18. Centos8(Liunx) 中安装PHP7.4 的三种方法和删除它的三种方法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos7搭建LNMP环境-编译安装&yum安装-超详细 的相关文章

  • 解决SSH第一次登录需要交互确认的问题

    Auto storing server host key in cache with plink up vote 12 down vote favorite 4 i 39 ve been trying to issue commands u
  • UART数据波形分析

    摘要 xff1a 本文通过对异步串行数据格式的分析 xff0c 阐述通过波形分析方法调试UART数据收发的原理和方法 经常遇到初学者 xff0c 对单片机串行通讯出了问题不知道如何办的情况 其实最有效的调试方法是用示波器观察收发数据的波形
  • 机器人学基础(二):机器人运动学

    机器人运动方程的表示 通常把描述一个连杆和下一个连杆的相对关系的齐次变换叫做A矩阵 1 1运动姿态和方向角 用矢量来描述机器人的运动方向 欧拉角表示运动姿态 RPY角表示运动姿态 1 2运动位置和坐标 用柱面坐标表示运动位置 用球面坐标表示
  • 图像位深和通道之间的联系

    以OpenCV为例 xff1a CV 16UC1 16位 xff0c 1 xff08 单 xff09 通道 CV 16UC3 16位 xff0c 3通道 CV 16UC1 xff0c 单通道的黑白图像 xff0c 每一个像素点由16位来表示
  • 斜线/、反斜线\、双斜线//、双反斜线\\

    看到这些东西就有点小晕 xff0c 整理到一起加以区分 上面符号 xff0c 中为正 xff0c 左为斜线 xff0c 右为反斜 xff1b 八字 xff0c 先撇为斜 xff0c 后捺为反斜 这些符号在不同的系统下意义不同 双斜线 协议和
  • linux中常用的截图录屏软件

    linux中常用的截图录屏软件 1 kazam 推荐 工具小巧而功能全面 可以选择全屏 窗口或者自定义区域 可以设置帧率 编码方式 时延倒计时 音频来源等 kazam默认视频编码方式是H264 保存为MP4文件 还支持截图功能 sudo a
  • openEuler 安装图形桌面环境Gnome或DDE或UKUI

    由于openEuler系统主要针对服务器 xff0c 目前默认安装之后没有图形桌面环境 xff0c 需要的用户可以自己手动安装配置 这里推荐安装深度桌面DDE或优麒麟UKUI环境 安装gnome桌面 sudo dnf makecache s
  • Ubuntu更换国内镜像源

    由于Ubuntu官方镜像速度有限 xff0c 可以使用国内镜像加速更新和下载 xff0c 节约时间 常用的国内镜像有很多 xff0c 本人常用的有如下几个 xff0c 仅供参考 163镜像 mirrors 163 com 清华镜像 mirr
  • ubuntu-2204 gerrit ssh 报错Permission denied (publickey).分析及解决

    ubuntu 2204 gerrit ssh 报错Permission denied publickey 分析及解决 使用repo init sync下载代码时遇到报错 Permission denied publickey 分析排查步骤
  • UCOSII操作系统 第3课—UCOSII启动过程

    1 初始化UCOSII 1 在调用UCOSII在任何的其他的服务之前 xff0c UCOSII要求首先调用初始化函数OSInit 这个函数的目的就是在整个系统启动之前 xff0c 初始化所有的变量和数据结构 2 其中 xff0c 在OSIn
  • vscode安装配置clang-format插件及使用

    vscode安装配置clang format插件及使用 首先安装插件 在vscode扩展里搜索clang format xff0c 安装排名第一的xaver clang format 确认clang format可执行程序路径 window
  • 消息序列化工具-protobuf介绍及安装使用技巧

    简介 protobuf是google团队开发的用于高效存储和读取结构化数据的工具 xml json也可以用来存储此类结构化数据 xff0c 但是使用protobuf表示的数据能更加高效 xff0c 并且将数据压缩得更小 xff0c 大约是j
  • 消息序列化工具-为现代C++设计的jsoncpp介绍与使用技巧

    概述 JSON 的全称为 xff1a JavaScript Object Notation xff0c 顾名思义 xff0c JSON 是用于标记 Javascript 对象的 xff0c JSON 官方的解释为 xff1a JSON 是一
  • cppcheck代码检查工具安装与使用技巧

    cppcheck代码检查工具安装与使用技巧 Cppcheck 是一种 C C 43 43 代码缺陷静态检查工具 不同于 C C 43 43 编译器及很多其它分析工具 xff0c 它不检查代码中的语法错误 Cppcheck 可以检查非标准代码
  • sed流编辑器中使用变量替换以及执行外部命令

    在使用sed对日志或者其它文本进行parse的过程当中 xff0c 有时候我们需要引用外部变量的值 xff0c 或者获取一个shell命令执行的结果 xff0c 以便达到更加可观的输出结果 这里介绍如何做到 sed 流编辑 1 sed命令及
  • mkisofs命令制作iso文件

    mkisofs命令行格式 mkisofs adDfhJlLNrRTvz print size quiet A lt 应用程序ID gt b lt 开机映像文件 gt c lt 开机文件名称 gt hide lt 目录或文件名 gt hide
  • windows下tree命令列出文件目录树

    windows下tree命令列出文件目录树 tree path f tree D AR C Team f 可以将D AR C Team目录下所有目录及子目录下的文件都打印出来 tree D AR C Team f gt HOMEPATH f
  • yum命令安装历史回滚彻底删除安装的依赖包

    yum命令安装一个软件包是会连同依赖包一起安装 xff0c 但是yum remove卸载时却只卸载这个文件包本身 如果需要删除安装时附加的依赖包可以使用yum history的相关操作实现回滚 假如安装了ecliipse pde xff0c
  • latex在ipython jupyter notebook中的使用

    In 2 from IPython display import Latex In 5 数学公式的前后要加上 或 和 Latex r 34 f x 61 3x 43 7 34 Out 5 In 6
  • MATLAB 2018b 帮助页面设置为中文显示

    MATLAB 2018b 帮助页面设置为中文显示 具体步骤如下 xff1a 1 随机点击一个matlab的函数点击 help 2 点击帮助页面的设置按钮 3 按照如下步骤设置即可

随机推荐

  • 图解Java线程死锁的必要条件

    文章目录 What is Deadlock发生死锁要如何解决如何预防死锁参考资料 What is Deadlock In concurrent computing a deadlock is a state in which each me
  • 远程LINUX桌面的好用工具,NoMachine.

    安装及使用都比VNC及XManager要好用 xff0c 网站 https www nomachine com 对应下各自的版本后 xff0c 按照网站的说明进行安装就可以了 xff0c 安装过程不需要其他依赖项 xff01 Linux安装
  • 竞赛经验|2019年电赛B题四旋翼无人机组巡线机器人

    竞赛经验 xff5c 2019年电赛B题四旋翼无人机组巡线机器人 参赛背景和比赛回忆 xff1a 1 院校背景 xff1a 2 规则与现实 xff1a 3 比赛流程 xff1a 备赛建议1 器件选择 xff1a 2 针对学习 xff1a 写
  • C语言实现http post请求和get请求,post请求可以上传图片和文件

    文章目录 1 http协议简介2 http协议分析2 1 http请求2 1 1 请求行2 1 1 1 请求方法2 1 1 2 URL2 1 1 3 协议版本2 1 1 4 请求行总结 2 1 2 请求头部2 1 3 请求数据 2 2 ht
  • 软件改变世界

    随着科技的不断进步 xff0c 软件及其相关技术的发展已经深刻地改变了人类社会的方方面面 从交通运输 医疗卫生到商业服务 教育培训 xff0c 软件技术的应用已经深入到我们的日常生活中 xff0c 对我们的生活方式和生产方式都带来了深刻的影
  • MATLAB 比较好入门书籍有哪些推荐

    https www zhihu com topic 19559252 hot https www zhihu com question 19904418 作者 xff1a 陈村 链接 xff1a https www zhihu com qu
  • pymavlink使用简单教程

    这里写自定义目录标题 pymavlink主要包含的模块连接样例 设置任务样例 更改飞行参数param样例 飞行模式总结 pymavlink Pymavlink是MAVLink协议的python实现 自身包括一个源代码生成器 xff08 ge
  • Python案例003——句子生成器

    目标 xff1a 通过用户提供的内容 xff0c 随机生成唯一的句子 提示 xff1a 以用户输入的名词 代词 形容词等作为输入 xff0c 然后将所有数据添加到句子中 xff0c 并将其组合返回 输出固定的 内容 43 用户输入的内容 c
  • 嵌入式软件工程师面试题

    1 int a 10 61 1 2 3 4 5 6 7 8 9 0 int p 61 amp a 1 则p 6 等于8 2 整数数组清零 xff1a bzero memset 3 siezof 测试变量所占地址的字节数 4 main cha
  • 国内代码仓库-码云

    相信使用github的同学会经常碰到这样的情况 xff0c 当我们从github上面下载稍微大一点的代码的时候就经常下载失败 xff0c 下载网速是非常的感人 国内从github上下载代码非常慢 xff0c 解决办法就是修改host或者vp
  • php对接支付宝Web支付-tp5.1框架

    具体流程 1 获取支付宝相关配置 2 传相关参数请求支付宝网关 订单金额 订单号等 3 支付宝请求回调地址 4 回调地址做相关业务处理 数据库增删改查之类 5 处理完成以后返回success给支付宝服务器 1 首先获取应用id和商户私钥以及
  • TX2+realsense D435i跑VSLAM--001--内核劝退篇

    想要使用tx2连接深度相机realsense D435i xff0c 没想到下载好官方自带SDK后 xff0c 说tx2的版本不满足需求 需要至少L4T28 2 1 xff0c 为什么偏偏就差这么一点版本 xff0c 然后查了查 xff0c
  • PHP对接微信支付--Native tp5框架

    这里实现的功能是 xff1a 网页上点击支付 xff0c 然后调用此方法生成二维码并且返回二维码的图片路径 xff0c 然后扫码支付 xff0c 付款成功进行回调 xff0c 在回调地址进行数据库操作 1 配置微信支付参数 微信支付参数 f
  • 微信支付退款 PHP

    应用场景 当交易发生之后一段时间内 xff0c 由于买家或者卖家的原因需要退款时 xff0c 卖家可以通过退款接口将支付款退还给买家 xff0c 微信支付将在收到退款请求并且验证成功之后 xff0c 按照退款规则将支付款按原路退到买家帐号上
  • windows+本地虚拟机搭建gitlab

    一 安装依赖软件 xff04 yum y install policycoreutils openssh server openssh clients postfix 二 设置postfix开机自启 xff0c 并启动 xff0c post
  • 使用Springboot实现简单的增删改查-超详细

    使用Springboot实现简单的增删改查 超详细 xff08 java小白 仅记录 不喜勿喷 xff09 php想转java 就想写个简单的增删改查 写惯了php 感觉java好复杂 php一般就是定义路由 xff0c 然后去控制器 xf
  • Windows下Virtual box安装centos以及virtual box的增强功能(超详细)

    Windows下Virtual box安装centos以及virtual box的增强功能 xff08 超详细 xff09 1 准备工作1 1 下载Virtual Box1 2 下载centos7镜像 2 安装virtual box3 新建
  • 使用crontab遇到的一点问题,报错/var/spool/cron : Permission denied和bash: /usr/bin/chattr: Permission denied

    问题 xff1a 在Linux服务器上设置crontab定时任务执行laravel任务调度的时候 xff0c crontab e 无法保存 会报错 var spool cron Permission denied 于是百度到是var spo
  • 服务器对接码云webhooks实现自动部署--超详细--PHP

    公司代码是放在码云上的 xff0c 每次提交代码 xff0c 都要去服务器上执行一下git pull xff0c 就很麻烦 xff0c 于是想对接一下码云的webhooks实现自动部署 本文参考链接1 xff0c 参考链接2 这里以lara
  • centos7搭建LNMP环境-编译安装&yum安装-超详细

    文章目录 0 首先建议使用docker搭建环境 链接在这 xff01 https blog csdn net handsomezls article details 116936581 1 首先了解编译安装和yum安装的区别 2 yum安装