zoukankan      html  css  js  c++  java
  • Centos7编译安装lnmp(nginx1.10 php7.3.21)

    我使用的是阿里云的服务器 Centos7 64位的版本

    1. 连接服务器

    这个是Xshell5的版本 安装好之后我们开始连接服务器

    连接服务器成功

    2. 安装nginx

    首先安装nginx的依赖

    yum install gcc gcc-c++ openssl openssl-devel cyrus-sasl-md5

    执行命令的结果

    上图是将代码执行后的结果

    确认安装

    中途会询问我们是否安装 我们按 “y” 并回车安装

    依赖安装完成

    上图表示依赖已经安装完成!! 下面安装nginx

    在root家目录下创建一个software目录 mkdir software

    (可以使用 cd ~切换到用户的家目录) 
    创建software目录

    下面将我们需要的所有软件下载到software目录中 
    我们可以用wget

    wget http://nginx.org/download/nginx-1.10.1.tar.gz

    wget http://sourceforge.net/projects/pcre/files/pcre/8.39/pcre-8.39.tar.gz

    wget http://prdownloads.sourceforge.net/libpng/zlib-1.2.8.tar.gz

    wget  -c https://www.php.net/distributions/php-7.3.21.tar.gz =>https://www.php.net/downloads.php
    下载完成后对文件进行解压 

    tar -zxvf nginx-1.10.1.tar.gz
    上传完成后解压

    cd nginx-1.10.1

    ./configure

    下面进入到nginx解压后的目录并进行编译

    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre=../pcre-8.39 --with-zlib=../zlib-1.2.8

    我们将nginx安装到/usr/local/nginx目录下

    编译安装nginx

    下图这样就是编译成功

    编译成功

    1.下面执行make

    2.make install 进行安装

    安装nginx成功

    上图表示安装nginx成功

    首次启动nginx

    /usr/local/nginx/sbin/nginx

    ps -e |grep nginx

    启动nginx

    访问测试

    访问测试

    如果你能看见上面这样的效果就表示nginx已经启动成功!!!

    nginx加入到开机自动启动

    到这里我们的nginx还没有实现开机自动启动 那么我们就把他加入到开机自动启动服务中!

    我们先编辑系统启动脚本

    vim /etc/rc.local

    这个文件是系统启动后会自动执行的,我们就将启动命令加入到这个文件中

    编辑rc.local文件

    我们可以按i 进入到编辑模式 插入对应的程序启动命令即可

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf &

    将开机启动脚本加入到文件中

    随后我们:wq保存文件并退出,

     init 6

    重启系统

    重启后我们连接到服务器上使用

    ps -e | grep nginx 

    查看nginx的进程发现已经成功的启动了

    查看nginx启动进程

    如果你发现你的进程没有成功的启动可能是因为你的这个脚本文件没有可以执行的权限 请给该文件增加 其他人可以执行的权限 

    chmod o+x /etc/rc.local

    后重启再次查看

    下图表示如果我们不在nginx程序的目录中无法使用nginx的命令 会提示找不到nginx

    找不到nginx

    下面我们将nginx的位置加入到环境变量中

    vi /etc/profile 

    编辑环境变量文件,加入如下内容

    加入nginx的位置

    随后我们更新环境变量

    source /etc/profile

    并使用命令再次重启nginx

    这时已经不再报错了

    配置nginx启动脚本

    cd  /etc/init.d

    新建一个文件    vim nginx

    把如下内容写到 nginx文件里

    #!/bin/bash
    #chkconfig: 2345 99 20
    #description: nginx-server
    nginx=/usr/local/nginx/sbin/nginx
    case $1 in
            start)
                    netstat -anptu | grep nginx
                    if [ $? -eq 0 ]
                    then
                        echo "nginx service is already running"
                    else
                         echo "nginx Service started successfully "
                        $nginx
                    fi
             ;;
            stop)
                    $nginx -s stop
                    if [ $? -eq 0 ]
                    then
                    echo "nginx service closed successfully"
                    else
                        echo "nginx server stop fail,try again"
                    fi
            ;;
            status)
                    netstat -anlpt | grep nginx
                    if [ $? -eq 0 ]
                    then
                        echo "nginx server is running"
                    else
                        echo "nginx service not started "
                    fi
            ;;
            restart)
                     $nginx -s reload
    if [ $? -eq 0 ]
                     then
                         echo "nginx service restart successfully "
                     else
                         echo "nginx server restart failed"
                     fi
            ;;
            *)
                     echo "please enter {start restart status stop}"
            ;;

    esac

    保存退出!

    重启nginx

    /etc/init.d/nginx restart

    在阿里云安全组添加80端口

    关闭防火墙

    systemctl status firewalld.service

    放问服务器IP地址 看到下图 安装说明成功

    3.下面编译安装PHP

    安装必要的软件依赖

    yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg 
    libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline
    readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel
    db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel
    libmcrypt-devel libmemcached-devel gcc gcc-c++ openssl openssl-devel cyrus-sasl-md5

    中途会有提示询问是否安装 按y继续安装

    继续安装

    安装完成后

    我们去软件目录解压文件

    tar -zxvf   php-7.3.21.tar.gz

    进入PHP解压后的目录

    cd php-7.3.21/

    编译

    ./configure 
    --prefix=/usr/local/php-fpm 
    --with-config-file-path=/etc 
    --enable-fpm 
    --with-fpm-user=www  
    --with-fpm-group=www 
    --enable-inline-optimization 
    --disable-debug 
    --disable-rpath 
    --enable-shared  
    --enable-soap 
    --with-libxml-dir 
    --with-xmlrpc 
    --with-openssl 
    --with-mcrypt 
    --with-mhash 
    --with-pcre-regex 
    --with-sqlite3 
    --with-zlib 
    --enable-bcmath 
    --with-iconv 
    --with-bz2 
    --enable-calendar 
    --with-curl 
    --with-cdb 
    --enable-dom 
    --enable-exif 
    --enable-fileinfo 
    --enable-filter 
    --with-pcre-dir 
    --enable-ftp 
    --with-gd 
    --with-openssl-dir 
    --with-jpeg-dir 
    --with-png-dir 
    --with-zlib-dir  
    --with-freetype-dir 
    --enable-gd-native-ttf 
    --enable-gd-jis-conv 
    --with-gettext 
    --with-gmp 
    --with-mhash 
    --enable-json 
    --enable-mbstring 
    --enable-mbregex 
    --enable-mbregex-backtrack 
    --with-libmbfl 
    --with-onig 
    --enable-pdo 
    --with-mysqli=mysqlnd 
    --with-pdo-mysql=mysqlnd 
    --with-zlib-dir 
    --with-pdo-sqlite 
    --with-readline 
    --enable-session 
    --enable-shmop 
    --enable-simplexml 
    --enable-sockets  
    --enable-sysvmsg 
    --enable-sysvsem 
    --enable-sysvshm 
    --enable-wddx 
    --with-libxml-dir 
    --with-xsl 
    --enable-zip 
    --enable-mysqlnd-compression-support 
    --with-pear 
    --enable-opcache 
    --enable-intl

    PHP编译完成

    安装

    1.make 
    2.make install

    PHP安装完成

    配置php-fpm

    1.复制一份配置文件到系统配置文件夹里

    cd root/software/php-7.3.21

    cp php.ini-production /etc/php.ini

    2.到php-fpm的安装目录etc下复制一份配置文件

    cp /usr/local/php-fpm/etc/php-fpm.conf.default /usr/local/php-fpm/etc/php-fpm.conf

    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    作者:MMTTMM
    链接:https://www.imooc.com/article/44391
    来源:慕课网

    随后我们编辑这个配置文件

    开启PID记录

    找到

    ;pid = run/php-fpm.pid

    ;error_log = log/php-fpm.log  =>/var/log/nginx/php-fpm.log

    ;include=/usr/local/php-fpm/etc/php-fpm.d/*.conf

    如果有注释,就去掉前面的注释  根据需要存放文件的位置 重新指定文件的路径

    保存退出!

    进入php-fpm.d目录

    cd php-fpm.d

    修改 www.conf 文件

    如果这个文件不存在,就从default复制一份:

    cp www.conf.default www.conf

    vim www.conf

    将配置文件中的 user 和 group 部分的 nobody 改成 www:

    修改

    user = www

    group = www

    如果www用户不存在,那么先添加www用户

    groupadd www

    useradd -g www www

    我们第一次启动php-fpm测试

    /usr/local/php-fpm/sbin/php-fpm

    ps -e |grep php-fpm

    创建对应的组

    上图我们创建了对应的用户 系统会默认为我们创建一个同名的用户组,再次重新启动php-fpm后查看进程就已经启动成功了

    我们可以通过快捷命令管理php-fpm 
    关闭php-fpm (路径要和我的一样)

    kill `cat /usr/local/php-fpm/var/run/php-fpm.pid `

    1.加入系统变量
    sudo echo "PATH=$PATH:/usr/local/php-fpm/bin">> /etc/profile

      2.下面让环境变量生效

    source /etc/profile

    php -v

    另一种配置启动命令

    CD

    /root/software/php-7.3.21/sapi/fpm

    进入目录

    cp init.d.php-fpm   /etc/init.d/php-fpm

    启动php-fpm测试

    /etc/init.d/php-fpm start

     3.如果升级PHP版本一定要把原来的安装目录以及在安装目录外的安装信息彻底删除重新编译安装,重复以上操作即可!

    (注意:如果第二次编译出现扩展已开启却无法加载到!说明上一次卸载没有彻底)

    4. 整合Nginx与PHP

    1、编辑Nginx.conf,启用如下选项:

    cd /usr/local/nginx/conf/ 
    vim nginx.conf

    location ~ .php$ {

                root          html; =》root /usr/local/nginx/html

                fastcgi_pass  127.0.0.1:9000;

                fastcgi_index  index.php;

                fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;   =》root /usr/local/nginx/html$fastcgi_script_name;

                include        fastcgi_params;

            }

    重新指定根目录!

    在所支持的主页面格式中添加php格式的主页,类似如下:

    location / { 

                root  html;   =》root /usr/local/nginx/html

                index  index.php index.html index.htm; 

                try_files $uri $uri/ /index.php?$query_string;//新增 类似路由重定向  作用是美化路由!

            }

    顺便开启错误日志

    去掉error_log  access_log前的注释,并指定错误日志的文件路径。

    error.log  /var/log/nginx/error.log;

    access_log  /var/log/nginx/access_log;

    创建目录用于存储错误日志

    cd /var/log/

    mkdir nginx

    2、编辑配置文件下的fastcgi_params,

    将其内容更改为如下内容:

    # mv fastcgi_paramsfastcgi_params.bak 
    # cat fastcgi_params

    fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
    fastcgi_param  SERVER_SOFTWARE    nginx;
    fastcgi_param  QUERY_STRING      $query_string;
    fastcgi_param  REQUEST_METHOD    $request_method;
    fastcgi_param  CONTENT_TYPE      $content_type;
    fastcgi_param  CONTENT_LENGTH    $content_length;
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
    fastcgi_param  REQUEST_URI        $request_uri;
    fastcgi_param  DOCUMENT_URI      $document_uri;
    fastcgi_param  DOCUMENT_ROOT      $document_root;
    fastcgi_param  SERVER_PROTOCOL    $server_protocol;
    fastcgi_param  REMOTE_ADDR        $remote_addr;
    fastcgi_param  REMOTE_PORT        $remote_port;
    fastcgi_param  SERVER_ADDR        $server_addr;
    fastcgi_param  SERVER_PORT        $server_port;
    fastcgi_param  SERVER_NAME        $server_name;

    保存退出!

    杀死php-fpm所有的进程

    kill `cat /usr/local/php-fpm/var/run/php-fpm.pid `

    #重新载入配置

     /etc/init.d/php-fpm restart
     /etc/init.d/nginx restart

    3、在/usr/local/nginx/html目录下新建index.php测试页面

    vim index.php

    <?php

    phpinfo();

    <?

    4.可通过浏览器 访问此测试页面,验证nginx连接php配置是否成功.

    5.如果访问失败 可以 cd /var/log/nginx  目录里查看错误日志!access.log error.log php-fpm.log!看看php-fpm 和nginx是否在运行,以及根据错误日志 去寻找答案!

    5. 手动编译安装Mysql-5.7.20

    1、安装编译环境需要的依赖包:

    yum -y install gcc gcc-devel gcc-c++ gcc-c++-devel autoconf* automake* zlib* libxml*ncurses-devel 
    ncurses libgcrypt* libtool* cmake openssl openssl-devel bisonbison-devel  perl-Data-Dumper boost boost-doc boost-devel

    2、下载源代码和解压源代码:

    cd /root/software
    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz
    tar -zxvf mysql-boost-5.7.20.tar.gz

    3、创建mysql用户和data目录:

    groupadd mysql
    useradd -g mysql -s /sbin/nologin mysql
    mkdir /usr/local/mysql
    mkdir /usr/local/mysql/data
    mkdir /usr/local/mysql/conf
    chown -R mysql:mysql /usr/local/mysql/
    4、定制配置
    cd /root/software/mysql-5.7.20/
    1.
    cmake
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
    -DSYSCONFDIR=/etc
    -DSYSTEMD_PID_DIR=/usr/local/mysql
    -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITH_PERFSCHEMA_STORAGE_ENGINE=1
    -DMYSQL_DATADIR=/usr/local/mysql/data
    -DWITH_BOOST=boost                      //5.7版本必须添加这个参数
    -DWITH_SYSTEMD=1
     
    2.make
     
    3.make install
     
    4.如果安装到中间进程结束则说明内存不足

      临时使用交换分区来解决吧

    sudo dd if=/dev/zero of=/swapfile bs=64M count=16
    sudo mkswap /swapfile
    sudo swapon /swapfile
    安装完成之后 则清除分区
    sudo swapoff /swapfile
    sudo rm /swapfile
     
    5、修改配置文件
    如果/etc下面没有 则去复制一份这里!

    vi /etc/my.cnf

    [client]
    port = 3306
    default-character-set=utf8
    socket = /usr/local/mysql/mysql.sock

    [mysql]
    port = 3306
    default-character-set=utf8
    socket = /usr/local/mysql/mysql.sock

    [mysqld]
    user = mysql
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    port = 3306
    character_set_server=utf8

    log-error=/var/log/mysqld.log
    pid-file = /usr/local/mysql/mysqld.pid
    socket = /usr/local/mysql/mysql.sock
    server-id = 1

    暂时不用添加:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,

    NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

    6、设置环境变量

    echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile    //把这两个路径添加到环境变量中,并放到profile文件中使之开机自运行,否则不生效

    echo 'export PATH' >> /etc/profile      //把PATH设为全局变量

    source /etc/profile

    7、初始化数据库

    cd /usr/local/mysql/

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

    记得给日志文件添加权限

    8添加到systemctl系统服务:

    cp /usr/local/mysql/support-files/mysql.server /usr/lib/systemd/system/

    systemctl daemon-reload

    systemctl start mysqld

    netstat -anpt | grep 3306

    systemctl enable mysqld

    或者

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

    chmod +x /etc/init.d/mysqld

    mkdir /var/log/mariadb

    touch /var/log/mariadb/mariadb.log


    chown -R mysql:mysql  /var/log/mariadb/

    sudo chmod -R 777 /var/log/mariadb/

    再输入开启mysql服务, 搞定!

    /etc/init.d/mysqld start

    9Mysql设置帐户和密码,默认无密码

    mysqladmin -u root -p password "root"

    mysql -u root -p

    10更改用户密码命令:

    mysql -u root -p
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
    mysql> FLUSH PRIVILEGES;
    mysql> exit;
    11防火墙开放mysql端口
    启动一个服务:systemctl start firewalld.service
    显示一个服务的状态:systemctl status firewalld.service
    firewall-cmd --add-service=mysql --permanent
    firewall-cmd --reload
    yum install lsof
    lsof -i:3306
     
    添加3306端口
    firewall-cmd --zone=public --add-port=3306/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
    重新载入
    firewall-cmd --reload
    查看
    firewall-cmd --zone=public --query-port=3306/tcp

     

    12开放 Root 远程连接权限:

    mysql -u root -p
    password 为远程连接用的密码
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    mysql> FLUSH PRIVILEGES;
    mysql> exit;
    启动mysql
    systemctl enable mysqld.service
    systemctl daemon-reload
    systemctl start mysqld.service
    systemctl status mysqld.service
     
     注意:如果是阿里云服务器的话记得在安全组添加3306端口 不然访问不了(记得关闭防火墙)
     
    6.安装git

    1、查看是否安装了git

    rpm -qa|grep git

    若已经安装,需要先卸载。卸载命令如下:
    rpm -e --nodeps git  或者  rpm -e git

    2、安装Git

    yum install git

    git --version

    3.直接到根目录 捡代码

    git clone 仓库地址url



    7.全局安装composer

    1. 下载composer-setup.php到/usr/local

    php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" 

    2. 安装

    php composer-setup.php 

    3. 将composer设置成全局

    mv composer.phar /usr/local/bin/composer 

    4. 替换成中国全量镜像

    composer config -g repo.packagist composer https://packagist.phpcomposer.com
    
    
  • 相关阅读:
    多线程与多进程
    Socket网络编程
    Python之路【第五篇】:面向对象及相关
    python 面向对象(进阶篇)
    面向对象
    day1
    day3
    day2
    黑马程序员--C语言中的指针(6)
    黑马程序员--C语言中的指针(5)
  • 原文地址:https://www.cnblogs.com/aipiaoborensheng/p/9376621.html
Copyright © 2011-2022 走看看