文章目录
- 部署分布式WordPress站点
- 实验环境
- 实验拓扑图
- 任务需求
- 任务实施
- 搭建数据库mysql
- 1、安装数据库
- 2、修改初始化密码
- 3、为站点创建数据库
- 4、为wecenter站点数据库
- 搭建nfs网络文件系统
- 服务端
- 客户端:web01和web02一样的操作
- 安装Nginx和PHP
- 1、web01和web02安装Nginx,一样的操作
- 2、web01和web02安装PHP,一样的操作
- 1、使用第三方扩展 epel 源安装 php7.1
- 2、安装扩展源(epel-release-7、webtatic-release)
- 3、配置第三方源,使用 Remi 仓库
- 4、安装php7.1版本
- 5 、替换php-fpm运行的用户和组,启动服务
- 部署WordPress网页
- web01和web02是一样的操作
- 编辑配置文件
- 部署wecenter网页
- web01和web02是一样的操作
- 编辑配置文件
- 启动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、安装数据库
#将上传的数据库rpm包进行安装yum-y localinstall mysql57/*[root@db01~]# systemctl start mysqld2、修改初始化密码
[root@db01 ~]# mysqladmin -uroot -p$(awk '/temporary password/{print}' /var/log/mysqld.log ) passwd 'Jy123.com'3、为站点创建数据库
[root@db01~]# mysql -uroot -pJy123.commysql>create database wordpress;QueryOK,1rowaffected(0.00sec)mysql>create database wecenter;创建WordPress的用户和授权 mysql>CREATEUSER'wpadm'@'%'IDENTIFIEDBY'Jy123.com';QueryOK,0rowsaffected(0.00sec)mysql>GRANTALLPRIVILEGESONwordpress.*TO'wpadm'@'%';QueryOK,0rowsaffected(0.00sec)创建wecenter的用户和授权 mysql>CREATEUSER'weadm'@'%'IDENTIFIEDBY'Jy123.com';QueryOK,0rowsaffected(0.00sec)mysql>GRANTALLPRIVILEGESONwecenter.*TO'weadm'@'%';QueryOK,0rowsaffected(0.00sec)mysql>FLUSHPRIVILEGES;QueryOK,0rowsaffected(0.00sec)完成两个数据库用户的创建和授权#注释:grant 固定字段 授权 all 定义权限,表示所有的权限 on 固定字段 库名.表名*通配所有 to 固定字段 username@客户端%通配所有 identified by ’密码‘ 固定字段,配置前面username的密码4、为wecenter站点数据库
[root@db01~]# mysql -uroot -pJy123.commysql>create database wecenter;QueryOK,1rowaffected(0.00sec)mysql>grant all on wecenter.*to weadm@'%'identified by'Jy123.com';QueryOK,0rows affected,1warning(0.00sec)#注释:grant 固定字段 授权 all 定义权限,表示所有的权限 on 固定字段 库名.表名*通配所有 to 固定字段 username@客户端%通配所有 identified by ’密码‘ 固定字段,配置前面username的密码5、重启数据库
[root@db01 ~]# systemctl restart mysqld [root@db01 ~]# systemctl enable mysqld [root@db01 ~]# systemctl status mysqld搭建nfs网络文件系统
服务端
#语法:共享目录的路径 客户端地址(挂载属性) 共享目录的路径 就是需要提供给客户使用的目录 客户端地址IP域名*通配所有 挂载属性 ro rw all_squash 指定客户端只有访问到nfs服务端,身份都是nfs的程序用户 anonuid 指定程序用户的uid anongid 指定程序用户的gid1、编辑配置文件[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 rpcbindCreated symlink from/etc/systemd/system/multi-user.target.wants/nfs-server.service to/usr/lib/systemd/system/nfs-server.service.3、检查是否搭建成功[root@nfs~]# showmount -eExportlistfornfs:/data/web*客户端:web01和web02一样的操作
#1、测试是否可以访问[root@web01~]# showmount -e 10.0.0.31 【服务端的IP】Exportlistfor10.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,一样的操作
yum安装 nginx1.14php7.1mysql5.71、使用官方yum源进行安装Nginx[root@web01~]# cat /etc/yum.repos.d/nginx.repo[nginx]name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/gpgcheck=0enabled=1[root@web01~]# yum -y install nginx2、创建程序用户[root@web01~]# groupadd www -g 666[root@web01~]# useradd www -u 666 -g 666 -s /sbin/nologin -M3、修改配置文件[root@web01 nginx]# sed -i '/^user/c user www;' /etc/nginx/nginx.conf[root@web01 nginx]# cat /etc/nginx/nginx.conf |head -10user www;worker_processes auto;error_log/var/log/nginx/error.log notice;pid/var/run/nginx.pid;events{worker_connections1024;2、web01和web02安装PHP,一样的操作
1、使用第三方扩展 epel 源安装 php7.1
1、使用第三方扩展 epel 源安装 php7.1#1.移除旧版php[root@web01 nginx]# yum remove php-mysql-5.4 php php-fpm php-common -y2、安装扩展源(epel-release-7、webtatic-release)
# 下载epel-release-7-14.noarch.rpm(归档版本,稳定可用)wgethttps://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 仓库已经停止维护,对 CentOS7的支持也已终止,建议尽量避免使用rpm-Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm3、配置第三方源,使用 Remi 仓库
安装Remi-release-7rpm-Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm 安装yum-utils(提供yum-config-manager工具) yuminstall-y yum-utils 启用Remi的PHP7.4仓库(根据需要替换为5.6/7.2/8.0等) yum-config-manager --enable remi-php71 清理缓存[root@web01 nginx]# yum clean all[root@web01 nginx]# yum makecache4、安装php7.1版本
[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-mongodb5 、替换php-fpm运行的用户和组,启动服务
[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-fpmCreated symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.部署WordPress网页
web01和web02是一样的操作
编辑配置文件
[root@web01 conf.d]# cat wordpress.confserver{server_name wordpress.jy.com;root /web/wordpress;listen80;index index.php index.html;#设置大小可以上传图片client_max_body_size 90M;location ~\.php${# 定义php页面的路径,如果跟默认的root一样,可以不写# 定义php-fpm的访问方式fastcgi_pass127.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是一样的操作
编辑配置文件
[root@web01 ~]# cat /etc/nginx/conf.d/wecenter.confserver{server_name wecenter.jy.com;root /web/wecenter;listen80;index index.php index.html;#设置大小可以上传图片client_max_body_size 90M;location ~\.php${# 定义php页面的路径,如果跟默认的root一样,可以不写# 定义php-fpm的访问方式fastcgi_pass127.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服务
systemctl start nginx php-fpm systemctlenablenginx php-fpm修改host文件,域名访问
物理机修改 路径: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服务能否访问
1、暂停web01的Nginx和PHP[root@web01 ~]# systemctl stop nginx php-fpm[root@web01 ~]#使用浏览器访问域名