美文网首页linux运维
分离式部署LNMP+wordpress

分离式部署LNMP+wordpress

作者: dabule | 来源:发表于2018-06-10 18:31 被阅读145次

    之前的文章是在同一个物理机里面搭建LNMP+wordpress,现在来试一下nginx一台,php一台,mysql一台分布式的搭建lnmp.

    前期准备:

    关闭防火墙和selinux:

    iptables -F #关闭防火墙
    setenforce 0  #关闭selinux
    getenforce    #查看selinux状态
    vim /etc/selinux/config  #在配置文件中修改selinux
    [root@localhost html]# vim /etc/selinux/config 
    
    
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=disabled   #改成disabled 
    # SELINUXTYPE= can take one of three two values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected. 
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    
    :wq
    
    

    需要准备的服务器:

    OS:Centos7.4x86_64

    Nginx-1.12.2 IP地址:192.168.1.108

    PHP-5.6 IP地址:192.168.1.109

    MySQL5.6 IP地址:192.168.1.107

    1.安装mysql并配置(107主机上操作):

    查询并卸载原有包:
    先查询系统中是否已经安装了mysql,如果有先删除了再安装新包,在centos7中默认自带了mariadb需要卸载

    [root@mysql ~]# rpm -qa | grep mariadb  
    mariadb-libs-5.5.56-2.el7.centos.x86_64  
    [root@mysql ~]# rpm -e mariadb-libs-5.5.56-2.el7.centos.x86_64 --nodeps  
    
    

    mysql的安装部分已经在之前的mysql的主从复制的文章里安装过了,这里给出地址,不再赘述.
    https://www.jianshu.com/p/742c85366a5c

    创建wordpress用户密码:
    安装完成mysql之后,可以先创建wordpress的数据库,用户密码权限等.

    #登录到mysql
    [root@localhost mysql]# /usr/local/mysql/bin/mysql -uroot -p123456
    Warning: Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1
    Server version: 5.6.35-log MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    
    #创建数据库
    mysql> create database wordpress; 
    Query OK, 1 row affected (0.22 sec)
    
    #创建用户密码,及权限
    mysql>  grant all on wordpress.* to wuser@'%' identified by '123456';  
    Query OK, 0 rows affected (0.19 sec)
    
    #刷新权限
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.09 sec)
    
    mysql> \q
    Bye
    
    #重启mysql
    [root@localhost mysql]# /etc/init.d/mysql.server restart
    Shutting down MySQL..... SUCCESS! 
    Starting MySQL...................................... SUCCESS!
    
    

    mysql的安装配置就完成了.

    2.安装nginx(108主机操作):

    安装环境包:

     yum install gcc gcc-c++ openssl-devel zlib-devel zlib pcre-devel -y  
    
    

    创建指定用户:
    这个nginx用户要和php服务器上创建的nginx两者id一直,这里先创建出来

    [root@nginx ~]# groupadd -g 1001 nginx  
    [root@nginx ~]#useradd -u 900 nginx -g nginx -s /sbin/nologin  
    [root@nginx ~]# tail -1 /etc/passwd  
    nginx:x:900:1001::/home/nginx:/sbin/nologin  
    
    

    下载并解压:
    将源码包下载至/usr/local/src目录中

    [root@nginx ~]# cd /usr/local/src
    [root@nginx src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz  
    [root@nginx src]# tar zxf nginx-1.12.2.tar.gz   
    [root@nginx src]# cd nginx-1.12.2/
    
    

    编译并安装:

    [root@nginx-1.12.2]#./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 --with-http_gzip_static_module --user=nginx --group=nginx 
    
    #没有报错就可以安装了
    make && make install
    
    

    创建软连接并启动测试:

    [root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/  
    [root@nginx nginx-1.12.2]# nginx -t  
    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@localhost src]# ps aux | grep nginx
    root      12469  0.0  0.1  46096  2100 ?        Ss   16:09   0:00 nginx: master process nginx
    nginx     12933  0.0  0.1  48548  2524 ?        S    16:49   0:00 nginx: worker process
    root      13323  0.0  0.0 112704   976 pts/1    R+   17:28   0:00 grep --color=auto nginx
    
    

    这样nginx就编译安装完成了,可以在客户端访问192.168.1.108来查看是否出现nginx的欢迎页面.

    3.安装php(109主机上操作):

    安装编译环境包:

    yum -y install gcc gcc-c++ libxml2-devel libcurl-devel openssl-devel bzip2-devel 
    
    

    安装依赖的libmcrypt:

    [root@php src]# wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz  
    [root@php src]# tar zxf libmcrypt-2.5.7.tar.gz   
    [root@php src]# cd libmcrypt-2.5.7/  
    [root@php libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install  
    
    ...过程省略...
    
    

    下载并解压:
    将php下载至/usr/local/src目录中

    [root@php ~]#  cd /usr/local/src
    [root@php src]# wget http://cn2.php.net/distributions/php-5.6.27.tar.gz 
    [root@php src]# tar zxf php-5.6.27.tar.gz   
    [root@php src]# cd php-5.6.27/  
    
    

    编译并安装:

    [root@php php-5.6.27]#./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd \
    --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm \
    --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir \
    --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash \
    --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc \
    --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
    
    #没有报错则安装
    make && make install
    
    ...过程省略...
    
    

    创建用户id:
    这个nginx的id号要和nginx主机上的保持一致!!!

    [root@php php-5.6.27]# groupadd -g 1001 nginx  
    [root@php php-5.6.27]# useradd -u 900 nginx -g nginx -s /sbin/nologin   
    [root@php php-5.6.27]# tail -1 /etc/passwd  
    nginx:x:900:1001::/home/nginx:/sbin/nologin  
    
    

    复制配置文件及脚本:

    [root@php php-5.6.27]# cp php.ini-production /etc/php.ini  
    [root@php php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm    
    [root@php php-5.6.27]# chmod +x /etc/init.d/php-fpm    
    [root@php php-5.6.27]#  chkconfig --add php-fpm  #添加服务到启动列表
    [root@php php-5.6.27]# chkconfig php-fpm on   #开启启动
    
    

    修改主配置文件:

    #复制配置文件
    [root@php php-5.6.27]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
    
    
    修改配置文件参数,对应参数如下:
    [root@php php-5.6.27]# vim /usr/local/php5.6/etc/php-fpm.conf   
    
    pid = run/php-fpm.pid
    user = nginx
    group = nginx
    listen = 192.168.1.109:9000  //改成PHP主机的IP地址
    pm.max_children = 50  #php进程相关的配置
    pm.start_servers = 5
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    
    
    #修改这些参数至对应的值,其他不用动,
    
    

    启动并检查服务:
    配置完成保存退出之后就可以启动php服务,并检查是否启动成功.

    [root@localhost php-5.6.27]# service php-fpm start
    Starting php-fpm  done
    [root@localhost php-5.6.27]# netstat -anput | grep php
    tcp        0      0 192.168.1.109:9000      0.0.0.0:*               LISTEN      120498/php-fpm: mas 
    
    

    到这里3台服务器上都安装上了对应的服务,下面来进行LNMP搭建的配置.

    4.LNMP配置:

    配置Nginx支持PHP环境(在108主机上操作):
    修改/usr/local/nginx/conf/nginx.conf中的配置文件

    [root@nginx ~]#vim /usr/local/nginx/conf/nginx.conf
    
    ...省略...
    
    location / {  
                root   /www;  #更改网页目录  
                index  index.php index.html index.htm;  #添加index.php
            }  
    location ~ \.php$ {  
                root           /www;    更改目录  
                fastcgi_pass   192.168.1.109:9000;  #注意:在这里添加PHP主机IP地址  
                fastcgi_index  index.php;  
                fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  
                include        fastcgi_params;  
            }  
    
    ...省略...
    #将上面的容内修改好,省略部分暂时不用修改,然后保存退出即可
    
    :wq
    
    

    在 /usr/local/nginx/conf/fastcgi_params添加配置

    
    [root@localhost src]# vim /usr/local/nginx/conf/fastcgi_params
    
    
    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_NAME        $fastcgi_script_name;
    fastcgi_param  SCRIPT_FILENAME    $document_root$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  REQUEST_SCHEME     $scheme;
    fastcgi_param  HTTPS              $https if_not_empty;
    
    fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
    fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
    
    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 only, required if PHP was built with --enable-force-cgi-redirect
    fastcgi_param  REDIRECT_STATUS    200;
                                                                                                      
    "/usr/local/nginx/conf/fastcgi_params" 26L, 1077C                 
    
    
    :wq
    
    

    创建目录及测试页:(108和109上操作)
    在nginx主机(108)和php主机(109),两台主机上都要进行如下操作.

    [root@nginx ~]# mkdir /www  
    [root@nginx ~]# chown nginx:nginx /www/  
    [root@nginx ~]# cd /www/  
    [root@nginx www]# vim index.php  
    <?php  
    phpinfo();  
    ?>  
    
    :wq
    
    

    重启nginx以及php并访问测试页:(108和109上操作)
    完成上述步骤之后就可以重启nginx主机(108)和php主机(109),然后在客户端访问192.168.1.108就能访问到php测试页了

    [root@nginx www]# nginx -s reload  
    [root@php www]# service php-fpm restart  
    
    

    看到测试页说明已经搭建完成了分布式的LNMP服务,下面开始搭建wordpress论坛.

    5.搭建wordpress论坛:

    下载并解压wordpress:(108和109上操作)
    wordpress要同时下载到nginx(108)和php(109)并解压到/www/目录中.

    #nginx主机上
    [root@nginx ~]# tar zxf wordpress-4.9.1-zh_CN.tar.gz   
    [root@nginx ~]# mv wordpress/* /www/    #保证剪切到/www目录下没有其他文件
    
    
    #php主机上
    [root@php ~]# tar zxf wordpress-4.9.1-zh_CN.tar.gz   
    [root@php ~]# mv wordpress/* /www  #保证剪切到/www目录下没有其他文件
    
    

    修改wordpress配置文件(108和109上操作):
    可以通过wp-config-sample.php 模版文件了创建wp-config.php 文件,这个文件名一定要正确,否则会报错,找不到配置文件的.

    [root@nginx src]# cp /www/wp-config-sample.php /www/wp-config.php 
    [root@nginx src]# vim /www/wp-config.php
    ...省略...
    
    // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
    /** WordPress数据库的名称 */
    define('DB_NAME', 'wordpress');  #mysql创建的数据库名称
    
    /** MySQL数据库用户名 */
    define('DB_USER', 'wuser');     #mysql创建的用户名称
    
    /** MySQL数据库密码 */
    define('DB_PASSWORD', '123456');  #mysql创建的用户密码
    
    /** MySQL主机 */
    define('DB_HOST', '192.168.1.107');  #mysql主机IP
    
    /** 创建数据表时默认的文字编码 */
    define('DB_CHARSET', 'utf8');
    
    /** 数据库整理类型。如不确定请勿更改 */
    ...省略...
    
    #将mysql(107主机)创建的数据库与用户密码信息填好,就可以保证退出,省略部分不用修改
    
    :wq
    
    

    因为两个主机上的配置是一样,直接scp传过去即可.

    [root@nginx src]# scp /www/wp-config.php root@192.168.1.109:/www/
    root@192.168.1.109's password: 
    wp-config.php                                                        100% 2910     1.9MB/s   00:00  
    
    

    访问测试:http://192.168.1.108/
    在客户端上访问http://192.168.1.108/即可出现wordpress论坛安装提示了.

    wordpress登陆界面.jpg
    用户名和密码要按mysql创建的用户来进行填写.mysql地址要写安装mysql主机的IP wordpress登录界面.jpg

    正确填写之后就可以登录了.

    wordpress界面.jpg

    登录之后就看见这个界面.说明配置成功了.

    相关文章

      网友评论

      本文标题:分离式部署LNMP+wordpress

      本文链接:https://www.haomeiwen.com/subject/hpxqeftx.html