> 文档中心 > LNMP+WORDPRESS搭建

LNMP+WORDPRESS搭建


准备:四台主机  {myxql1,mysql2,nginx,php}

部署主从数据库

  1. 配置基础环境:

更改主机名

节点一:

        hostnamectl set-hostname mysql1 && bash

节点二:

        hostnamectl set-hostname mysql2 && bash

配置主机映射:

主机一:

vim /etc/hosts  添加:

192.168.20.100 mysql1192.168.20.10 mysql2

       复制到主机二:

       scp /etc/hosts 192.168.20.10:/etc/

  1. 关闭防火墙和selinx

主机一、二:

systemctl stop firewalld && setenforce 0

  1. 安装mariadb

主机一、二:

安装:

yum install -y mariadb mariadb-server

          开启数据库服务并设置开机自启:

  systemctl enable mariadb --now

  1. 初始化数据库

主机一、二:

mysql_secure_installation

(mysql_secure_installation  命令问题介绍)

Enter current password for root (enter for none):  回车

输入root用户的当前密码(输入表示无):

Set root password? [Y/n]  Y (输入密码000000)

设置根密码[是/否]

Remove anonymous users? [Y/n] Y

删除匿名用户[是/否]

Disallow root login remotely? [Y/n]  N

不允许根用户远程登录[是/否]

Remove test database and access to it? [Y/n] Y

是否删除测试数据库并访问它[是/否

Reload privilege tables now? [Y/n] Y

重新加载特权表吗[是/否]

  1. 配置主从数据库

主机一:

在修改配置文件之前先备份

cp /etc/my.cnf /opt/

修改数据库文件:

Vim /etc/my.cnf

[mysqld]

log_bin = mysql-bin                             #记录操作日志

binlog_ignore_db = mysql                             #不同步mysql 系统数据库

server_id = 100                                            #数据库集群中的每个节点 id 都要不同, 一般使用 IP 地址的最后段的数字,例如 192.168.20.100,server_id 就写 100

将配置文件,远程复制到mysql2:

scp /etc/my.cnf mysql2:/etc/

重启数据库并进入数据库授权:

        systemctl restart mariadb

mysql –uroot –p000000

授权在任何客户端机器上可以以 root 用户登录到数据库,然后在主节 点上创建一个 user 用户连接节点 mysql2,并赋予从节点同步主节点数据库的权限:

MariaDB [(none)]> grant all privileges on *.* to root@'%' identified by "000000";

        MariaDB [(none)]> grant replication slave on *.* to 'user'@'mysql2' identified by '000000';

主机二:

        修改配置文件:

        [mysqld] log_

bin = mysql-bin #记录操作日志

binlog_ignore_db = mysql #不同步 mysql 系统数据库

server_id = 10 #数据库集群中的每个节点 id 都要不同, 一般使用 IP 地址的最后段的数字,例如 192.168.20.10,server_id 就写 10

       

重启数据库并进入数据库授权:

systemctl restart mariadb

mysql –uroot –p000000

配置从节点连接主节点的连接信息。 master_host 为主节点主机名 mysql1,master_user 为上一步中创建的用户 user:

MariaDB [(none)]> change master to master_host='mysql1',master_user='user',master_password='000000';

完成之后,开启从节点服务:

MariaDB [(none)]> start slave;

MariaDB [(none)]> show slave status\G

出现下面两行,即为成功:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

部署 Nginx 服务

配置基础环境(主机名,防火墙,selinux)

配置主机名: hostnasmectl set-hostname nginx && bash

关闭防火墙和selinux:

systemctl stop firewalld && setenforce 0

安装配置基础服务

安装所需服务:

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

安装配置NGINX

上传nginx压缩包 解压至/usr/local/:

tar -zxvf nginx-1.12.2.tar.gz –C /usr/local

进入nginx解压目录,编译并安装:

编译:

./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

编译安装完毕后,创建软连接并启动测试:

 ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

验证nginx配置文件是否正确:nginx –t

启动nginx:   nginx

查看端口: netstat –ntpl

如果发现 80 端口启动,则表示 Nginx 服务启动成功

安装PHP环境

基础环境安装(主机名,防火墙,selinux)

hostnamectl set-hostname php && bash

systemctl stop firewalld && setenforce 0

安装配置基础服务

安装所需包:

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

上传的 libmcrypt-2.5.8.tar.gz并解压至/usr/local/src/

tar -zxvf libmcrypt-2.5.8.tar.gz –C /usr/local/src/

编译安装:

cd php-5.6.27/

 ./configure --prefix=/usr/local/libmcrypt && make && make install

安装 PHP 环境

上传php-5.6.27.tar.gz并解压至/usr/local/src/

tar -zxvf php-5.6.27.tar.gz –C /usr/local/src/

编译安装:

./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

创建用户 ID,注意这个nginx的d号要和 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

配置 PHP 环境

PHP压缩包中提供了PHP环境需要用到的模板文件,需要对文件进行改名后才能使用, 复制文件并改名:

cp php.ini-production /etc/php.inicp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm赋予文件执行权限:chmod +x /etc/init.d/php-fpm添加 PHP 服务到启动列表,并设置开机启动:chkconfig --add php-fpmchkconfig --add php-fpm修改 PHP 的主配置文件 php-fpm.conf:cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.confvi /usr/local/php5.6/etc/php-fpm.conf25:pid = run/php-fpm.pid149:user = nginx 150:group = nginx164:listen = 192.168.200.30:9000224:pm = dynamic235:pm.max_children = 50240:pm.start_servers = 5245:pm.min_spare_servers = 5250:pm.max_spare_servers = 35

启动 PHP 服务

 service php-fpm start

netstat –ntpl

如果发现 9000 端口已启动,则说明 PHP 环境安装完毕。

分布式部署 LNMP+WordPress

配置 Nginx 服务支持 PHP 环境

修改nginx配置文件

vi /usr/local/nginx/conf/nginx.conf

 

 

修改完毕后,保存退出。 接着在/usr/local/nginx/conf/fastcgi_params 添加配置:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #添加这 行代码

创建目录

Nginx与PHP节点:

mkdir /www && chown nginx:nginx /www/

部署 WordPress

上传wordpress-4.7.3-zh_CN.zip 压缩包至 nginx 节点和 php 节点的/root 目录下并解压,将解压后的文件复制到/www

Nginx和PHP节点:

 unzip wordpress-4.7.3-zh_CN.zip

mv wordpress/* /www/

在nginx节点修改配置文件:

cp /www/wp-config-sample.php /www/wp-config.php

vi /www/wp-config.php

 

将该配置文件 scp 至 php 节点的/www 目录 下:

scp /www/wp-config.php root@192.168.20.30:/www/

验证 WordPress 应用

# nginx -s reload