LAMP的分布式实现——安装WordPressphpMyAdmin
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LAMP的分布式实现——安装WordPressphpMyAdmin相关的知识,希望对你有一定的参考价值。
题目:分别用三台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
[[email protected] ~]# 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>
#创建资源映射目录
[[email protected] ~]# mkdir -pv /apps/vhosts/{a.com,b.net}
#注释掉中心主机的文档根路径
#DocumentRoot "/var/www/html"
#检查语法
[[email protected] ~]# httpd -t Syntax OK
#启动httpd服务进程
[[email protected] ~]# systemctl start httpd.service :::* [[email protected] ~]# ss -tnl | grep 80 LISTEN 0 128 :::80 :::*
#创建静态资源文件,作为测试用
[[email protected] ~]# vim /apps/vhosts/a.com/index.html <h1> www.a.com </h1> [[email protected] ~]# 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模块
[[email protected] ~]# httpd -M | grep fcgi proxy_fcgi_module (shared)
配置第三台主机。
#安装数据库
[[email protected] ~]# yum -y install mariadb-server
#启动起来
[[email protected] ~]# systemctl start mariadb.service [[email protected] ~]# ss -tnl | grep 3306 LISTEN 0 50 *:3306 *:*
#授权用户及创建数据库
[[email protected] ~]# mysql MariaDB [(none)]> GRANT ALL ON wpdb.* TO [email protected]‘192.168.%.%‘ IDENTIFIED BY ‘wppass‘; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> CREATE DATABASE wpdb;
配置第二台主机。
#要安装php-fpm以及php-mysql
[[email protected] ~]# yum -y install php-fpm php-mysql
#修改配置文件
[[email protected] ~]# vim /etc/php-fpm.d/www.conf listen = 192.168.10.102:9000 # 监听在本机的网络接口上 listen.allowed_clients = 192.168.10.101 # 允许第一台主机连接 # 其它的默认不变
#创建资源映射目录
[[email protected] ~]# 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服务进程
[[email protected] ~]# systemctl start php-fpm [[email protected] ~]# ss -tnl | grep 9000 LISTEN 0 128 192.168.10.102:9000 *:*
#安装php-xcache加速器
[[email protected] ~]# yum -y install php-xcache
#测试没有问题之后,现在可以开始在第二台主机上部署WordPress和phpMyAdmin程序了
#首先搞定WordPress
#从官网下载WordPress压缩包
[[email protected] ~]# wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.zip
#下载后解压,并移至资源映射目录路径下
[[email protected] ~]# unzip wordpress-4.7.4-zh_CN.zip [[email protected] ~]# mv wordpress /apps/vhosts/a.com
#cd进该目录,并复制样本配置文件wp-config-sample.php为wp-config.php
[[email protected] ~]# cd /apps/vhosts/a.com/wordpress/ [[email protected] wordpress]# cp wp-config-sample.php wp-config.php
#修改配置文件wp-config.php,这里需要修改的数据库信息来自刚才在第三台主机上建立的数据库名、用户名和密码。
[[email protected] 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的配置文件
[[email protected] ~]# 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这个空目录。
[[email protected] ~]# mkdir /apps/vhosts/a.com/wordpress
#再使用浏览器打开,输入的URL仍为http://www.a.com/wordpress
#可以发现,浏览器会被重定向到此页面,填写博客个人基本信息,填写后点击安装WordPress
#安装后点击登录
#但是点击登录后出现如下页面
#和刚才一样的解决思路,在第一台主机上的虚拟主机www.a.com站点目录下的wordpress目录下创建wp-admin目录
[[email protected] ~]# mkdir /apps/vhosts/a.com/wordpress/wp-admin
#再次登录wordpress
#至此Wordpress安装并测试成功,接下来在第一台主机的第2台虚拟主机上搞定phpMyAdmin
#在第二台主机上下载phpMyAdmin压缩包
[[email protected] ~]# wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.zip
#解压后并移至虚拟主机www.b.net的站点目录下
[[email protected] ~]# unzip phpMyAdmin-4.0.10.20-all-languages.zip [[email protected] ~]# mv phpMyAdmin-4.0.10.20-all-languages /apps/vhosts/b.net [[email protected] ~]# cd /apps/vhosts/b.net [[email protected] b.net]# ln -sv phpMyAdmin-4.0.10.20-all-languages pma # 创建链接目录pma ‘pma’ -> ‘phpMyAdmin-4.0.10.20-all-languages’
#cd进链接目录pma,复制样本配置文件config.sample.inc.php为config.inc.php,并修改之
[[email protected] b.net]# cd pma/ [[email protected] pma]# cp config.sample.inc.php config.inc.php [[email protected] pma]# vim config.inc.php # 主要修改这两项配置 $cfg[‘blowfish_secret‘] = ‘ohTcFA/TpAW47B+cf1bE‘; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ # 上面两个单引号中间加上随机码,用于通信加密,随机码可由 openssl rand -base64 15生成 $cfg[‘Servers‘][$i][‘host‘] = ‘192.168.10.103‘; # 这里指向第三台主机(即数据库主机)的地址
#现在第2台虚拟主机的配置基本完成,重载php-fpm服务进程
[[email protected] ~]# systemctl reload php-fpm.service
#在第三台主机上授权用户
[[email protected] ~]# mysql MariaDB [(none)]> GRANT ALL ON *.* TO [email protected]‘192.168.%.%‘ IDENTIFIED BY ‘pmapass‘; MariaDB [(none)]> FLUSH PRIVILEGES;
#现在测试phpMyAdmin
#打开浏览器,输入URL为http://www.b.net/pma,显示如下
#解决思路:同样排除是由DirectoryIndex的影响,尽管动态资源应该存放在第二台主机上,但用户访问第二台主机上的目录名在第一台主机的虚拟主机站点目录下也需要存在
[[email protected] ~]# mkdir /apps/vhosts/b.net/pma
#再次访问http://www.b.net/pma,显示如下
#重新生成随机码并修改到配置文件config.inc.php中,再次访问,填写刚才在第三台主机上授权的数据库用户名和密码即可登录
可以正常使用了。
本文出自 “Tab” 博客,请务必保留此出处http://xuweitao.blog.51cto.com/11761672/1931266
以上是关于LAMP的分布式实现——安装WordPressphpMyAdmin的主要内容,如果未能解决你的问题,请参考以下文章