LAMP分布式部署安装WordPress和phpMyAdmin
题目:分别用三台CentOS 7主机部署 httpd、php-fpm、mariadb
第一台 192.168.10.101 --> httpd
第二台 192.168.10.102 --> php-fpm
第三台 192.168.10.103 --> mariadb
开始之前先把selinux、iptables给关闭了,方便测试。
# iptables -F
# setenforce 0
从第一台开始配置。
#安装httpd
[root@www ~]# yum -y install httpd
#配置虚拟主机
DirectoryIndex index.php
<VirtualHost *:80>
ServerName www.a.com # 配置第一台虚拟主机
DocumentRoot "/apps/vhosts/a.com"
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.10.102:9000/apps/vhosts/a.com/$1
<Directory "/apps/vhosts/a.com">
Options None
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.b.net # 配置第二台虚拟主机
DocumentRoot "/apps/vhosts/b.net"
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.10.102:9000/apps/vhosts/b.net/$1
<Directory "/apps/vhosts/b.net">
Options None
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
#创建资源映射目录
[root@www ~]# mkdir -pv /apps/vhosts/{a.com,b.net}
#注释掉中心主机的文档根路径
#DocumentRoot "/var/www/html"
#检查语法
[root@www ~]# httpd -t
Syntax OK
#启动httpd服务进程
[root@www ~]# systemctl start httpd.service :::*
[root@www ~]# ss -tnl | grep 80
LISTEN 0 128 :::80 :::*
#创建静态资源文件,作为测试用
[root@www ~]# vim /apps/vhosts/a.com/index.html
<h1> www.a.com </h1>
[root@www ~]# vim /apps/vhosts/b.net/index.html
<h1> www.b.net </h1>
#修改hosts文件
# vim /etc/hosts
192.168.10.101 www.a.com www.b.net www.c.org
#确保httpd有装载fcgi模块
[root@www ~]# httpd -M | grep fcgi
proxy_fcgi_module (shared)
配置第三台主机。
#安装数据库
[root@mysql ~]# yum -y install mariadb-server
#启动起来
[root@mysql ~]# systemctl start mariadb.service
[root@mysql ~]# ss -tnl | grep 3306
LISTEN 0 50 *:3306 *:*
#授权用户及创建数据库
[root@mysql ~]# mysql
MariaDB [(none)]> GRANT ALL ON wpdb.* TO wpuser@'192.168.%.%' IDENTIFIED BY 'wppass';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> CREATE DATABASE wpdb;
#禁用主机名解析功能
[root@mysql ~]# vim /etc/my.cnf
skip_name_resolve = ON
配置第二台主机。
#要安装php-fpm以及php-mysql
[root@php ~]# yum -y install php-fpm php-mysql
#修改配置文件
[root@php ~]# vim /etc/php-fpm.d/www.conf
listen = 192.168.10.102:9000 # 监听在本机的网络接口上
listen.allowed_clients = 192.168.10.101 # 允许第一台主机连接
# 其它的默认不变
#创建资源映射目录
[root@php ~]# mkdir -pv /apps/vhosts/{a.com,b.net}
#写入php连接数据库的测试代码
<h1> 第2台虚拟主机 </h1>
<?php
$conn = mysql_connect('192.168.10.103','wpuser','wppass');
if($conn)
echo "OK"
else
echo "Failure"
?>
#启动php-fpm服务进程
[root@php ~]# systemctl start php-fpm
[root@php ~]# ss -tnl | grep 9000
LISTEN 0 128 192.168.10.102:9000 *:*
#安装php-xcache加速器
[root@php ~]# yum -y install php-xcache
#测试没有问题之后,现在可以开始在第二台主机上部署WordPress和phpMyAdmin程序了
#首先搞定WordPress
#从官网下载WordPress压缩包
[root@php ~]# wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.zip
#下载后解压,并移至资源映射目录路径下
[root@php ~]# unzip wordpress-4.7.4-zh_CN.zip
[root@php ~]# mv wordpress /apps/vhosts/a.com
#cd进该目录,并复制样本配置文件wp-config-sample.php为wp-config.php
[root@php ~]# cd /apps/vhosts/a.com/wordpress/
[root@php wordpress]# cp wp-config-sample.php wp-config.php
#修改配置文件wp-config.php,这里需要修改的数据库信息来自刚才在第三台主机上建立的数据库名、用户名和密码。
[root@php wordpress]# vim wp-config.php
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'wpdb'); # 修改数据库名字,使用刚才在第三台主机上创建的数据库
/** MySQL数据库用户名 */
define('DB_USER', 'wpuser'); # 修改用户名
/** MySQL数据库密码 */
define('DB_PASSWORD', 'wppass'); # 修改密码
/** MySQL主机 */
define('DB_HOST', '192.168.10.103'); # 这里的MySQL主机指向第三台主机
#至此WordPress就配置完成了,需要重载php-fpm的配置文件
[root@php ~]# systemctl reload php-fpm.service
#测试WordPress
#使用浏览器输入URL为http://www.a.com/wordpress
#但是输入http://www.a.com/wordpress则能够访问,已经排除是DirectoryIndex的影响,那么如何能够使得用户访问虚拟主机www.a.com的wordpress目录时自动返回index.php呢?
#问题解决思路:有可能是在第一台主机上没有创建/apps/vhosts/a.com/wordpress所致,虽然wordpress下的动态资源是存放在第二台php-fpm主机上的,而第一台httpd主机则用于存放静态资源,但在第一台主机上有可能仍需要有wordpress这个空目录。
[root@www ~]# mkdir /apps/vhosts/a.com/wordpress
#再使用浏览器打开,输入的URL仍为http://www.a.com/wordpress
#可以发现,浏览器会被重定向到此页面,填写博客个人基本信息,填写后点击安装WordPress
#安装后点击登录
#但是点击登录后出现如下页面