zoukankan      html  css  js  c++  java
  • centos7.4编译安装LNMP

     一、下载阿里云网络yum源

    [root@centos7_4 ~]# wget http://mirrors.aliyun.com/repo/Centos-7.repo -P /etc/yum.repos.d/    #这里安装的是阿里的网络源,epel扩展源,也可以安装阿里的,但是阿里的epel源有些包不全,所以下面就直接用yum安装网络epel源
    [root@centos7_4 ~]# yum -y install epel-release
    [root@centos7_4 ~]# yum clean all;yum makecache

    二、编译安装nginx

     源码编译安装nginx
    2.1 安装依赖包:
    [root@centos7_4 ~]# yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre*
    
    2.2 创建nginx运行用户
    [root@centos7_4 ~]# useradd -M -s /sbin/nologin nginx
    
    下载pcre包
    
    [root@centos7_4 ~]# wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.zip
    
    [root@centos7_4 ~]# unzip pcre-8.42.zip -d /usr/local/src/
    
    2.3 下载nginx源码包并解压
    [root@centos7_4 ~]# wget http://nginx.org/download/nginx-1.14.0.tar.gz
    
    [root@centos7_4 ~]# tar zxf nginx-1.14.0.tar.gz -C /usr/local/src/
    
    [root@centos7_4 ~]# cd /usr/local/src/nginx-1.14.0/
    
    [root@centos7_4 nginx-1.14.0]# ./configure --prefix=/usr/local/nginx 
    --with-http_dav_module 
    --with-http_stub_status_module 
    --with-http_addition_module 
    --with-http_sub_module 
    --with-http_flv_module 
    --with-http_mp4_module 
    --with-http_ssl_module 
    --user=nginx 
    --group=nginx 
    --with-pcre=/usr/local/src/pcre-8.42            #这个是可选项,如果yum安装了依赖包这里也可以不用

    2.4 编译安装
    [root@centos7_4 nginx-1.14.0]# make && make install

    2.5 上面报错不用管,echo $? 验证是否成功

    [root@centos7_4 nginx-1.14.0]# echo $?

    0

    2.6 添加环境变量,优化nginx服务

    [root@centos7_4 ~]# /usr/local/nginx/sbin/nginx -t #检查nginx语法是否正确

    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

    [root@centos7_4 ~]# vim /etc/profile    #添加环境变量,/usr/local/nginx/sbin/nginx #安装好的启动路径

    export PATH=$PATH:/usr/local/nginx/sbin

    [root@centos7_4 ~]# source /etc/profile
    [root@centos7_4 ~]# nginx

    [root@centos7_4 ~]# netstat -antup|grep nginx

    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7417/nginx: master

    [root@centos7_4 ~]# vim /etc/init.d/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

    [root@centos7_4 ~]# chmod +x /etc/init.d/nginx

    [root@centos7_4 ~]# chkconfig --add nginx

    [root@centos7_4 ~]# chkconfig nginx on

     三、安装mysql

    3.1 卸载系统自带的mariadb*
    [root@centos7_4 ~]# yum -y remove mariadb* boost-*
    
    3.2 安装依赖包
    [root@centos7_4 ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel           
    
    3.3 下载源码包
    [root@centos7_4 ~]# wget https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-5.7.20.tar.gz
    
    3.4 解压源码包
    [root@centos7_4 ~]# tar zxf mysql-boost-5.7.20.tar.gz -C /usr/local/src/
    
    3.5 配置编译并安装
    [root@centos7_4 ~]# cd /usr/local/src/mysql-5.7.20/
    
    [root@centos7_4 mysql-5.7.20]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    -DMYSQL_DATADIR=/usr/local/mysql/data 
    -DDOWNLOAD_BOOST=1 
    -DWITH_BOOST=/usr/local/src/mysql-5.7.20/boost/boost_1_59_0 
    -DSYSCONFDIR=/etc 
    -DWITH_MYISAM_STORAGE_ENGINE=1 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_MEMORY_STORAGE_ENGINE=1 
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 
    -DWITH_FEDERATED_STORAGE_ENGINE=1 
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
    -DWITH_PARTITION_STORAGE_ENGINE=1 
    -DWITH_READLINE=1 
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock 
    -DMYSQL_TCP_PORT=3306 
    -DENABLED_LOCAL_INFILE=1 
    -DENABLE_DTRACE=0 
    -DEXTRA_CHARSETS=all 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci 
    -DMYSQL_USER=mysql
    
     
    
    编译并安装
    
    [root@centos7_4 mysql-5.7.20]# make
    [root@centos7_4 mysql-5.7.20]# make install
    3.6 创建数据库用户和数据目录
    [root@centos7_4 ~]# useradd -M -s /sbin/nologin -r mysql  
    [root@centos7_4 ~]# mkdir -p /usr/local/mysql/data          #创建数据存储目录
    [root@centos7_4 ~]# chown -R mysql.mysql /usr/local/mysql     #更改属主数组为MySQL
    
    3.7 配置my.cnf文件
    [root@centos7_4 ~]# vim /etc/my.cnf             #以下是简单配置
    [mysqld]
    
    basedir=/usr/local/mysql
    
    datadir=/usr/local/mysql/data
    
    port=3306
    
    socket=/usr/local/mysql/mysql.sock
    
    symbolic-links=0
    
    character-set-server=utf8
    
    pid-file=/usr/local/mysql/mysqld.pid     
    
    log-error=/var/log/mysqld.log
    
     
    
    3.8 配置MySQL启动脚本
    [root@centos7_4 mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld                      #复制启动脚本到/etc/init.d
    [root@centos24 mysql-5.7.20]# ll /etc/init.d/mysqld                          #默认拥有执行权限
    -rwxr-xr-x 1 root root 10576 Jun  7 19:27 /etc/init.d/mysqld
    [root@centos7_4 mysql]# chkconfig --add mysqld                #添加到开机启动项
    [root@centos7_4 mysql]# chkconfig mysqld on                   #添加开机自启动
    [root@centos7_4 mysql]# vim /etc/init.d/mysqld                #修改路径
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    [root@centos7_4 mysql]# vim /etc/profile                       #配置环境变量
    export PATH=$PATH:/usr/local/mysql/bin
    [root@centos7_4 mysql]# source /etc/profile                 #加载变量立即生效

    3.9 安全初始化数据库

    [root@centos7_4 ~]#  touch /var/log/mysqld.log

    [root@centos7_4 ~]#  chmod  777 /var/log/mysqld.log
    [root@centos7_4 ~]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data #这样初始化之后,数据库是没有密码的

    如果要想初始化之后分配临时密码,可以将--initialize-insecure 红色部分去掉,初始化之后,可以分配到一个临时密码。

    [root@centos7_4 ~]# /etc/init.d/mysqld start     #启动数据库

    Starting MySQL. SUCCESS!

    [root@centos7_4 ~]# mysql          #登录数据库修改root用户密码

    mysql> alter user 'root'@'localhost' identified by '123456';

    Query OK, 0 rows affected (0.00 sec)

    mysql> flush privileges;

    Query OK, 0 rows affected (0.00 sec)

    四、安装PHP

    4.1 安装依赖包
    [root@centos7_4 ~]# yum -y install php-mcrypt libmcrypt libmcrypt-devel  autoconf  freetype gd libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel re2c net-snmp-devel libjpeg-devel php-ldap openldap-devel openldap-servers openldap-clients freetype-devel gmp-devel
    
    4.2 下载PHP源码包
    [root@centos7_4 ~]# wget http://cn2.php.net/distributions/php-7.2.6.tar.gz
    
    4.3 解压压缩包
    [root@centos7_4 ~]# tar zxf php-7.2.6.tar.gz -C /usr/local/src/
    
    [root@centos7_4 ~]# cd /usr/local/src/php-7.2.6/
    
    4.4 生成配置文件
    [root@centos7_4 php-7.2.6]# ./configure --prefix=/usr/local/php 
    --with-config-file-path=/usr/local/php/etc 
    --with-mysqli 
    --with-pdo-mysql 
    --with-mysql-sock=/usr/local/mysql/mysql.sock 
    --with-iconv-dir 
    --with-freetype-dir 
    --with-jpeg-dir 
    --with-png-dir 
    --with-curl 
    --with-gd 
    --with-gmp 
    --with-zlib 
    --with-xmlrpc 
    --with-openssl 
    --without-pear 
    --with-snmp 
    --with-gettext 
    --with-mhash 
    --with-libxml-dir=/usr 
    --with-ldap 
    --with-ldap-sasl 
    --with-fpm-user=nginx 
    --with-fpm-group=nginx 
    --enable-xml 
    --enable-fpm  
    --enable-ftp 
    --enable-bcmath 
    --enable-soap 
    --enable-shmop 
    --enable-sysvsem 
    --enable-sockets 
    --enable-inline-optimization 
    --enable-maintainer-zts 
    --enable-mbregex 
    --enable-mbstring 
    --enable-pcntl 
    --enable-zip 
    --disable-fileinfo 
    --disable-rpath 
    --enable-libxml 
    --enable-opcache 
    --enable-mysqlnd 
    
     
    
    configure: error: Cannot find ldap libraries in /usr/lib.       #解决方法
    
    [root@centos7_4 php-7.2.6]# cp -frp /usr/lib64/libldap* /usr/lib/    #在重新配置

    ./configure --prefix=/usr/local/php 
    --with-config-file-path=/usr/local/php/etc 
    --with-mysqli 
    --with-pdo-mysql 
    --with-mysql-sock=/usr/local/mysql/mysql.sock 
    --with-iconv-dir 
    --with-freetype-dir 
    --with-jpeg-dir 
    --with-png-dir 
    --with-curl 
    --with-gd 
    --with-gmp 
    --with-zlib 
    --with-xmlrpc 
    --with-openssl 
    --without-pear 
    --with-snmp 
    --with-gettext 
    --with-mhash 
    --with-libxml-dir=/usr 
    --with-ldap 
    --with-ldap-sasl 
    --with-fpm-user=nginx 
    --with-fpm-group=nginx 
    --enable-xml 
    --enable-fpm  
    --enable-ftp 
    --enable-bcmath 
    --enable-soap 
    --enable-shmop 
    --enable-sysvsem 
    --enable-sockets 
    --enable-inline-optimization 
    --enable-maintainer-zts 
    --enable-mbregex 
    --enable-mbstring 
    --enable-pcntl 
    --enable-zip 
    --disable-fileinfo 
    --disable-rpath 
    --enable-libxml 
    --enable-opcache 
    --enable-mysqlnd 
    4.5 编译并安装 
    [root@centos7_4 php
    -7.2.6]# make
    /usr/bin/ld: ext/ldap/.libs/ldap.o: undefined reference to symbol 'ber_strdup'
    /usr/lib64/liblber-2.4.so.2: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make: *** [sapi/cli/php] Error 1
    [root@centos7_4 php
    -7.2.6]# vim Makefile
    #在以EXTRA_LIBS开头的一行结尾添加‘-llber’
    EXTRA_LIBS
    = -lcrypt -lz -lresolv -lcrypt -lrt -lldap -lgmp -lpng -lz -ljpeg -lz -lrt -lm -ldl -lnsl -lpthread -lxml2 -lz -lm -ldl -lssl -lcrypto -lcurl -lxml2 -lz -lm -ldl -lssl -lcrypto -lfreetype -lxml2 -lz -lm -ldl -lnetsnmp -lssl -lssl -lcrypto -lm -lxml2 -lz -lm -ldl -lcrypt -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lssl -lcrypto -lcrypt -llber
    [root@centos7_4 php
    -7.2.6]# make
    [root@centos7_4 php
    -7.2.6]# echo $? 0
    [root@centos7_4 php
    -7.2.6]# make install
    [root@centos7_4 php
    -7.2.6]# echo $? 0

       成功编译安装完成后,再安装pear
     
       wget  http://pear.php.net/go-pear.phar 
       /usr/local/php/bin/php go-pear.phar
       直接回车就可以了


    4.6 配置php配置文件 移动php配置文件的位置,并修改名称
    [root@centos7_4 php
    -7.2.6]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.conf
    复制php.ini文件
    [root@centos7_4 php
    -7.2.6]# cp /usr/local/src/php-7.2.6/php.ini-production /usr/local/php/etc/php.ini

    4.7 复制php启动脚本到/etc/init.d/
    [root@centos7_4 php
    -7.2.6]# cp /usr/local/src/php-7.2.6/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    添加执行权限,添加到启动项并设置卡机启动
    [root@centos7_4 php
    -7.2.6]# chmod +x /etc/init.d/php-fpm
    [root@centos7_4 php
    -7.2.6]# chkconfig --add php-fpm [root@centos7_4 php-7.2.6]# chkconfig php-fpm on

    启动
    php-fpm
    [root@centos7_4 ~]# /etc/init.d/php-fpm start 
    Starting php
    -fpm done

    五、编辑nginx配置文件

    1、  cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

    2、  vim  /usr/local/nginx/conf/nginx.conf

    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
     }
           server {
            listen  80 default;
            return 500;
               }
          include server/*.conf;
    }

    3、 mkdir  /usr/local/nginx/conf/server  #(创建配置文件目录,以后域名多了用)

    4、mkdir /usr/local/nginx/html/www    #(创建站点目录)

    5、配置nginx和php建立连接

        vim /usr/local/nginx/conf/server/www.conf

    server {
            listen       80;
            server_name  192.168.1.30;
           location / {
                root   html/www;
                index  index.html index.htm;
            }
            error_page   500 502 503 504  /50x.html;
             location ~* .*.(php|php5)?$ {
                        root html/www;
                        fastcgi_pass  127.0.0.1:9000;
                        fastcgi_index index.php;
                        include fastcgi.conf;
            }
            }

    6、 mv /usr/local/nginx/html/index.html /usr/local/nginx/html/www/

    六、编写php测试文件

    [root@centos7_4 ~]# vim /usr/local/nginx/html/www/test_info.php

    <?php phpinfo(); ?>

    七、登录测试

     

  • 相关阅读:
    Best Practices for Using Alpha
    Android手机 Fildder真机抓包
    Android调用MediaScanner进行新产生的媒体文件扫描
    读书笔记-----Java并发编程实战(二)对象的共享
    项目经验谈---IM新消息界面刷新异常处理记录
    读书笔记-----Java并发编程实战(一)线程安全性
    OnScroll与OnTouchEvent方法的区别与联系
    View的getLeft, getRight, getTop, getBottom
    如何用DNS+GeoIP+Nginx+Varnish做世界级的CDN
    更改ubuntu mysql data目录位置
  • 原文地址:https://www.cnblogs.com/wangyong-blog/p/9627177.html
Copyright © 2011-2022 走看看