阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

LAMP分布式部署安装WordPress和phpMyAdmin

165次阅读
没有评论

共计 9989 个字符,预计需要花费 25 分钟才能阅读完成。

题目:分别用三台 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

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

# 但是输入 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

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

# 可以发现,浏览器会被重定向到此页面,填写博客个人基本信息,填写后点击安装 WordPress

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

# 安装后点击登录

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

# 但是点击登录后出现如下页面

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-06/144431p2.htm

# 和刚才一样的解决思路,在第一台主机上的虚拟主机 www.a.com 站点目录下的 wordpress 目录下创建 wp-admin 目录
[root@www ~]# mkdir /apps/vhosts/a.com/wordpress/wp-admin

# 再次登录 wordpress

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

# 至此 Wordpress 安装并测试成功,接下来在第一台主机的第 2 台虚拟主机上搞定 phpMyAdmin
# 在第二台主机上下载 phpMyAdmin 压缩包
[root@php ~]# wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.zip

# 解压后并移至虚拟主机 www.b.net 的站点目录下
[root@php ~]# unzip phpMyAdmin-4.0.10.20-all-languages.zip
[root@php ~]# mv phpMyAdmin-4.0.10.20-all-languages /apps/vhosts/b.net
[root@php ~]# cd /apps/vhosts/b.net
[root@php 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,并修改之
[root@php b.net]# cd pma/
[root@php pma]# cp config.sample.inc.php config.inc.php
[root@php 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 服务进程

[root@php ~]# systemctl reload php-fpm.service

# 在第三台主机上授权用户
[root@MySQL ~]# mysql
MariaDB [(none)]> GRANT ALL ON *.* TO pmauser@’192.168.%.%’ IDENTIFIED BY ‘pmapass’;
MariaDB [(none)]> FLUSH PRIVILEGES;

# 现在测试 phpMyAdmin
# 打开浏览器,输入 URL 为 http://www.b.net/pma,显示如下

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

# 解决思路:同样排除是由 DirectoryIndex 的影响,尽管动态资源应该存放在第二台主机上,但用户访问第二台主机上的目录名在第一台主机的虚拟主机站点目录下也需要存在
[root@www ~]# mkdir /apps/vhosts/b.net/pma

# 再次访问 http://www.b.net/pma,显示如下

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

# 重新生成随机码并修改到配置文件 config.inc.php 中,再次访问,填写刚才在第三台主机上授权的数据库用户名和密码即可登录

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

可以正常使用了。

下面关于 LAMP 相关 的内容你可能也喜欢

LAMP 平台安装 Xcache 和 Memcached 加速网站运行  http://www.linuxidc.com/Linux/2015-06/118835.htm

CentOS 7 下搭建 LAMP 平台环境  http://www.linuxidc.com/Linux/2015-06/118818.htm

CentOS 6.5 系统安装配置 LAMP(Apache+PHP5+MySQL)服务器环境 http://www.linuxidc.com/Linux/2014-12/111030.htm

CentOS 7.2 yum 安装 LAMP 环境  http://www.linuxidc.com/Linux/2016-11/136766.htm

Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境  http://www.linuxidc.com/Linux/2014-10/107924.htm

LAMP 结合 NFS 构建小型博客站点  http://www.linuxidc.com/Linux/2015-08/121029.htm

CentOS7 下安装部署 LAMP 环境  http://www.linuxidc.com/Linux/2016-04/130653.htm

CentOS 7 上安装(LAMP)服务 Linux,Apache,MySQL,PHP  http://www.linuxidc.com/Linux/2017-05/143868.htm

Ubuntu Server 14.04 LTS 下搭建 LAMP 环境图文详解  http://www.linuxidc.com/Linux/2016-12/138758.htm

Ubuntu Server 16.04 下配置 LAMP 环境 http://www.linuxidc.com/Linux/2016-12/138757.htm

CentOS 6.7 编译安装 LAMP 详解 http://www.linuxidc.com/Linux/2017-03/141244.htm

Ubuntu 16.04 搭建 LAMP 开发环境 http://www.linuxidc.com/Linux/2016-10/136327.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-06/144431.htm

题目:分别用三台 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

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

# 但是输入 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

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

# 可以发现,浏览器会被重定向到此页面,填写博客个人基本信息,填写后点击安装 WordPress

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

# 安装后点击登录

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

# 但是点击登录后出现如下页面

LAMP 分布式部署安装 WordPress 和 phpMyAdmin

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-06/144431p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计9989字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中