之前的文章是在同一个物理机里面搭建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论坛安装提示了.
用户名和密码要按mysql创建的用户来进行填写.mysql地址要写安装mysql主机的IP wordpress登录界面.jpg
正确填写之后就可以登录了.
wordpress界面.jpg登录之后就看见这个界面.说明配置成功了.
网友评论