LNMP+WORDPRESS搭建
准备:四台主机 {myxql1,mysql2,nginx,php}
部署主从数据库:
- 配置基础环境:
更改主机名
节点一:
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/
- 关闭防火墙和selinx
主机一、二:
systemctl stop firewalld && setenforce 0
- 安装mariadb
主机一、二:
安装:
yum install -y mariadb mariadb-server
开启数据库服务并设置开机自启:
systemctl enable mariadb --now
- 初始化数据库
主机一、二:
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
重新加载特权表吗[是/否]
- 配置主从数据库
主机一:
在修改配置文件之前先备份
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