文章目录
-
- 部署分布式WordPress站点
-
- 实验环境
- 实验拓扑图
- 任务需求
- 任务实施
-
- 搭建数据库mysql
- 搭建nfs网络文件系统
- 安装Nginx和PHP
-
- 1、web01和web02安装Nginx,一样的操作
- 2、web01和web02安装PHP,一样的操作
-
- [1、使用第三方扩展 epel 源安装 php7.1](#1、使用第三方扩展 epel 源安装 php7.1)
- 2、安装扩展源(epel-release-7、webtatic-release)
- [3、配置第三方源,使用 Remi 仓库](#3、配置第三方源,使用 Remi 仓库)
- 4、安装php7.1版本
- [5 、替换php-fpm运行的用户和组,启动服务](#5 、替换php-fpm运行的用户和组,启动服务)
- 部署WordPress网页
- 部署wecenter网页
- 启动Nginx、PHP服务
- 修改host文件,域名访问
- 访问WordPress完成网页注册
- 访问wecenter完成网页注册
- 测试web02服务能否访问
部署分布式WordPress站点
实验环境
| 主机名 | 主机IP | 角色身份 |
|---|---|---|
| web01 | 10.0.0.7 | web服务器 |
| web02 | 10.0.0.8 | web服务器 |
| nfs | 10.0.0.31 | 实现网络文件共享 |
| db01 | 10.0.0.51 | 数据内容存放 |
实验拓扑图

任务需求
1)web01和web02主机提供NGINXweb功能
2)部署站点WordPress、Wecenter 两个网站
3)数据要分离,静态资源放在nfs上,数据内容放在db01上
任务实施
搭建数据库mysql
1、安装数据库
php
#将上传的数据库rpm包进行安装
yum -y localinstall mysql57/*
[root@db01 ~]# systemctl start mysqld
2、修改初始化密码
shell
[root@db01 ~]# mysqladmin -uroot -p$(awk '/temporary password/{print}' /var/log/mysqld.log ) passwd 'Jy123.com'
3、为站点创建数据库
php
[root@db01 ~]# mysql -uroot -pJy123.com
mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)
mysql> create database wecenter;
创建WordPress的用户和授权
mysql> CREATE USER 'wpadm'@'%' IDENTIFIED BY 'Jy123.com';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO 'wpadm'@'%';
Query OK, 0 rows affected (0.00 sec)
创建wecenter的用户和授权
mysql> CREATE USER 'weadm'@'%' IDENTIFIED BY 'Jy123.com';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON wecenter.* TO 'weadm'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
完成两个数据库用户的创建和授权
#注释:
grant 固定字段 授权
all 定义权限,表示所有的权限
on 固定字段
库名.表名 *通配所有
to 固定字段
username@客户端 %通配所有
identified by '密码' 固定字段,配置前面username的密码
4、为wecenter站点数据库
php
[root@db01 ~]# mysql -uroot -pJy123.com
mysql> create database wecenter;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on wecenter.* to weadm@'%' identified by'Jy123.com';
Query OK, 0 rows affected, 1 warning (0.00 sec)
#注释:
grant 固定字段 授权
all 定义权限,表示所有的权限
on 固定字段
库名.表名 *通配所有
to 固定字段
username@客户端 %通配所有
identified by '密码' 固定字段,配置前面username的密码
5、重启数据库
plain
[root@db01 ~]# systemctl restart mysqld
[root@db01 ~]# systemctl enable mysqld
[root@db01 ~]# systemctl status mysqld
搭建nfs网络文件系统
服务端
php
#语法:
共享目录的路径 客户端地址(挂载属性)
共享目录的路径 就是需要提供给客户使用的目录
客户端地址 IP 域名 *通配所有
挂载属性
ro
rw
all_squash 指定客户端只有访问到nfs服务端,身份都是nfs的程序用户
anonuid 指定程序用户的uid
anongid 指定程序用户的gid
1、编辑配置文件
[root@nfs ~]# vim /etc/exports #默认是空的
/data/web *(rw,all_squash,anonuid=666,anongid=666)
2、创建对应的用户、组以及目录,并修改目录归属
[root@nfs ~]# groupadd -g666 www
[root@nfs ~]# useradd -g666 -u666 -M -s /sbin/nologin www
[root@nfs ~]# mkdir -p /data/web
[root@nfs ~]# chown -R www.www /data/web/
[root@nfs ~]# systemctl start nfs rpcbind
[root@nfs ~]# systemctl enable nfs rpcbind
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
3、检查是否搭建成功
[root@nfs ~]# showmount -e
Export list for nfs:
/data/web *
客户端:web01和web02一样的操作
php
#1、测试是否可以访问
[root@web01 ~]# showmount -e 10.0.0.31 【服务端的IP】
Export list for 10.0.0.31:
/data/web *
#2、将nfs挂载到本地
临时挂载
[root@web01 ~]# mkdir /web
[root@web01 ~]# mount 10.0.0.31:/data/web /web
永久挂载
#web01和web02的操作
echo "10.0.0.31:/data/web /web nfs defaults 0 0" >> /etc/fstab
注释:
如果web中有数据就执行下面的操作
1、mv /web/* /opt
挂载完毕之后
2、mv /opt* /web
安装Nginx和PHP
1、web01和web02安装Nginx,一样的操作
php
yum安装 nginx1.14 php7.1 mysql5.7
1、使用官方yum源进行安装Nginx
[root@web01 ~]# cat /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[root@web01 ~]# yum -y install nginx
2、创建程序用户
[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
3、修改配置文件
[root@web01 nginx]# sed -i '/^user/c user www;' /etc/nginx/nginx.conf
[root@web01 nginx]# cat /etc/nginx/nginx.conf |head -10
user www;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
2、web01和web02安装PHP,一样的操作
1、使用第三方扩展 epel 源安装 php7.1
bash
1、使用第三方扩展 epel 源安装 php7.1
#1.移除旧版php
[root@web01 nginx]# yum remove php-mysql-5.4 php php-fpm php-common -y
2、安装扩展源(epel-release-7、webtatic-release)
bash
# 下载epel-release-7-14.noarch.rpm(归档版本,稳定可用)
wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm
# 安装该rpm包
rpm -Uvh epel-release-7-14.noarch.rpm
注意:webtatic 仓库已经停止维护,对 CentOS 7 的支持也已终止,建议尽量避免使用
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
3、配置第三方源,使用 Remi 仓库
bash
安装Remi-release-7
rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm
安装yum-utils(提供yum-config-manager工具)
yum install -y yum-utils
启用Remi的PHP 7.4仓库(根据需要替换为5.6/7.2/8.0等)
yum-config-manager --enable remi-php71
清理缓存
[root@web01 nginx]# yum clean all
[root@web01 nginx]# yum makecache
4、安装php7.1版本
bash
[root@web01 nginx]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
5 、替换php-fpm运行的用户和组,启动服务
bash
[root@web01 php-fpm.d]# sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf
[root@web01 php-fpm.d]# sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf
[root@web01 php-fpm.d]# systemctl start php-fpm
[root@web01 php-fpm.d]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
部署WordPress网页
web01和web02是一样的操作
编辑配置文件
bash
[root@web01 conf.d]# cat wordpress.conf
server{
server_name wordpress.jy.com;
root /web/wordpress;
listen 80;
index index.php index.html;
#设置大小可以上传图片
client_max_body_size 90M;
location ~ \.php$ {
# 定义php页面的路径,如果跟默认的root一样,可以不写
# 定义php-fpm的访问方式
fastcgi_pass 127.0.0.1:9000;
# 定义php的索引文件名,跟站点默认index要匹配
fastcgi_index index.php;
# 定义fastcgi的解析路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
部署wecenter网页
web01和web02是一样的操作
编辑配置文件
bash
[root@web01 ~]# cat /etc/nginx/conf.d/wecenter.conf
server{
server_name wecenter.jy.com;
root /web/wecenter;
listen 80;
index index.php index.html;
#设置大小可以上传图片
client_max_body_size 90M;
location ~ \.php$ {
# 定义php页面的路径,如果跟默认的root一样,可以不写
# 定义php-fpm的访问方式
fastcgi_pass 127.0.0.1:9000;
# 定义php的索引文件名,跟站点默认index要匹配
fastcgi_index index.php;
# 定义fastcgi的解析路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
启动Nginx、PHP服务
shell
systemctl start nginx php-fpm
systemctl enable nginx php-fpm
修改host文件,域名访问
plain
物理机修改
路径:C:\Windows\System32\drivers\etc
10.0.0.7 wecenter.jy.com wordpress.jy.com
10.0.0.8 wecenter.jy.com wordpress.jy.com
访问WordPress完成网页注册



访问wecenter完成网页注册
这里使用web02的IP进行访问,因为我们同时在web01和web02部署了两个域名一样的网站,目前没有上负载均衡,所以使用域名访问的话只能看到web01的,或者可以在完全注册完成之后,把web01的Nginx PHP暂停访问测试,web02是否可以正常访问



测试web02服务能否访问
bash
1、暂停web01的Nginx和PHP
[root@web01 ~]# systemctl stop nginx php-fpm
[root@web01 ~]#
使用浏览器访问域名

