分离式部署LNMP+wordpress

之前的文章是在同一个物理机里面搭建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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容