要求
两台web主机后端共用数据库和nfs存储,浏览器访问任意一台web页面相同,并且数据上传后,访问无影响。页面一致。
环境
主机名 | WANIP | LANIP | 角色 |
---|---|---|---|
web01 | 10.0.0.7 | 172.16.1.7 | web服务器、nfs客户端、mysql客户端、php服务端 |
web02 | 10.0.0.8 | 172.16.1.8 | web服务器、nfs客户端、mysql客户端、php服务端 |
db01 | 10.0.0.51 | 172.16.1.51 | mysql服务端 |
nfs | 10.0.0.31 | 172.16.1.31 | nfs服务端 |
操作步骤
1 .两台web服务安装配置
# web01和web02安装nginx
· 本地已经存在各种安装包,所以直接本地安装
[root@web01 /tmp]# yum localinstall -y nginx-1.18.0-1.el7.ngx.x86_64.rpm
[root@web02 /tmp]# yum localinstall -y nginx-1.18.0-1.el7.ngx.x86_64.rpm
# web01和web02安装php
[root@web01 /tmp]# yum localinstall -y php*
[root@web02 /tmp]# yum localinstall -y php*
# 创建用户组,统一用户
[root@web01 /tmp]# groupadd www -g 666
[root@web01 /tmp]# useradd www -u 666 -g 666 -s /sbin/nologin -M
[root@web02 /tmp]# groupadd www -g 666
[root@web02 /tmp]# useradd www -u 666 -g 666 -s /sbin/nologin -M
# 修改nginx配置文件统一用户
[root@web01 /tmp]# vim /etc/nginx/nginx.conf
user www;
[root@web02 /tmp]# vim /etc/nginx/nginx.conf
user www;
# 修改php配置文件统一用户
[root@web01 /tmp]# vim /etc/php-fpm.d/www.conf
user = www
group = www
[root@web02 /tmp]# vim /etc/php-fpm.d/www.conf
user = www
group = www
# 启动服务加入开启自启(web01和web02相同)
[root@web01 /tmp]# systemctl start nginx
[root@web01 /tmp]# systemctl enable nginx
[root@web01 /tmp]# systemctl start php-fpm
[root@web01 /tmp]# systemctl enable php-fpm
# 查看端口是否开启
[root@web01 /tmp]# netstat -lntup|grep -E '80|9000'
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 7212/php-fpm: maste
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7187/nginx: master
# 书写nginx配置文件与php建立连接,以下为wordpress配置
[root@web01 /]# vim /etc/nginx/conf.d/www.tcy.com.conf
server {
listen 80;
server_name www.wp.com;
root /code/wp;
index index.php index.html;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
# 书写nginx配置文件与php建立连接,以下为知乎搭建配置
[root@web01 /etc/nginx/conf.d]# vim www.zh.com.conf
server {
listen 80;
server_name www.zh.com;
root /code/zh;
index index.php index.html;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
# 将如上两份配置文件scp到web02中
[root@web01 /etc/nginx/conf.d]# scp www.wp.com.conf www.zh.com.conf root@10.0.0.8:/etc/nginx/conf.d/
# 根据配置文件内容创建对应两个目录(web01和web02都需操作)
[root@web01 /]# mkdir /code/wp /code/zh -p
# 更改权限(web01和web02都需操作)
[root@web01 ~]# chown -R www.www /code/wp
[root@web01 ~]# chown -R www.www /code/zh
# 测试nginx和php是否建立连接(web02可测可不测)
[root@web01 /code/wp]# vim wp.php
<?php
phpinfo();
?>
[root@web01 /code/zh]# vim /code/zh/zh.php
<?php
phpinfo();
?>
# 重启nginx服务
[root@web01 /code/zh]# systemctl reload nginx
# 页面访问结果(图一)
- 图一
2. 数据库安装配置
# 数据库安装
[root@db01 ~]# yum install -y mariadb-server
# 启动数据库
[root@db01 ~]# systemctl start mariadb
# 对数据库登录配置密码
[root@db01 ~]# mysqladmin -uroot password '123'
# 登录数据库
[root@db01 ~]# mysql -uroot -p123
# 登录后创建wordpress和知乎对应库
MariaDB [(none)]> create database wp;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> create database zh;
Query OK, 1 row affected (0.00 sec)
# 创建wordpress和知乎连接数据库用户
MariaDB [(none)]> grant all on *.* to wp_user@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all on *.* to zh_user@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)
# 退出数据库
quit
3. nfs搭建及配置
# nfs服务端安装
[root@nfs ~]# yum install -y nfs-utils
# nfs客户端安装(即web01和web02)
[root@web01 ~]# yum install -y nfs-utils
[root@web02 ~]# yum install -y nfs-utils
# 修改nfs配置文件
[root@nfs ~]# vim /etc/exports
/data 172.16.1.0/24(sync,rw,all_squash,anonuid=666,anongid=666)
# 根据配置文件创建对应目录及用户
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
[root@nfs ~]# mkdir /data
[root@nfs ~]# chown -R www.www /data
# 启动服务并加入开机自启动
[root@nfs ~]# systemctl start nfs-server
[root@nfs ~]# systemctl enable nfs-server
# 客户端检测结果
[root@web01 /code/wp]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
4.wordpress搭建
# 将安装包上传至站点目录下
[root@web01 /code/wp]# ll
total 10844
-rw-r--r-- 1 root root 11098483 May 20 14:38 wordpress-5.0.3-zh_CN.tar.gz
# 安装包解压
[root@web01 /code/wp]# tar -xf wordpress-5.0.3-zh_CN.tar.gz
# 将解压目录里面的文件移动到站点目录底下
[root@web01 /code/wp]# mv wordpress/* ./
# 页面访问web01,和数据库建立连接(图二、图三、图四、图五所示)
# 将web01注册连接服务器后的各种信息全部scp到web02的站点目录(web02即不用登陆连接操作)
· 因博客具备判断机制,当首次连接博客会自动跳转连接数据库界面,并需要输入各种信息,当web01连接数据库并完成操作后,在web01站点目录下会自动产生连接数据库文件,如对web01站点目录直接scp到web02,则web02可以直接访问网站并且无需进入连接数据库界面。
[root@web01 /code/wp]# scp /code/wp/* root@10.0.0.8:/code/wp/
# 修改权限(两台web都需操作)
[root@web01 /code/wp]# chown -R www.www /code/wp
[root@web02 /code/wp]# chown -R www.www /code/wp
# 连接进入wordpress中(图六)
# 书写博客,上传图片,让web01产生对应upload目录(图七)
# 查看对应目录下是否产生upload目录
[root@web01 /code/wp/wp-content]# ll
total 8
-rw-r--r-- 1 www www 28 Jan 9 2012 index.php
drwxr-xr-x 4 www www 4096 Jan 11 2019 languages
drwxr-xr-x 3 www www 55 Jan 11 2019 plugins
drwxr-xr-x 5 www www 89 Jan 11 2019 themes
drwxr-xr-x 3 www www 18 May 22 00:23 uploads
# 因挂载后原本文件内容会消失,需要首先将内容scp到nfs共享存储目录下,再进行挂载
[root@web01 /code/wp/wp-content/uploads]# scp -r 2020/ root@10.0.0.31:/data
# 将站点目录共享存储到nfs
[root@web01 /code/wp/wp-content/uploads]# mount -t nfs 172.16.1.31:/data /code/wp/wp-content/uploads/
[root@web01 /code/wp/wp-content/uploads]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.5G 18G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 19G 1.3G 18G 7% /code/wp/wp-content/uploads
# web02创建目录并且挂载
[root@web02 ~]# mkdir /code/wp/wp-content/uploads/ -p
[root@web02 ~]# mount -t nfs 172.16.1.31:/data /code/wp/wp-content/uploads/
# 测试用web02登录(图八)
-
访问web01进行第一次连接配置(图二)
-
填写数据库中创建库名,wordpress连接数据库用户和密码(图三)
- 开始安装(图四)
-
安装成功(图五)
-
图六
-
图七
-
web02登录结果(图八)
5.知乎搭建
# 上传知乎包
[root@web01 /code/zh]# ll
total 8256
-rw-r--r-- 1 root root 8451194 May 21 16:52 WeCenter_3-2-1.zip
# 解压
[root@web01 /code/zh]# unzip WeCenter_3-2-1.zip
# 将解压目录下包含index文件内容全部移动到站点目录下
[root@web01 /code/zh]# mv WeCenter_3-2-1/* ./
# 权限配置
[root@web01 ~]# chown -R www.www /code/zh
# 网页访问,直接选择下一步(图九)
# 根据数据库中创建,填写对应信息,(图十)
# 创建登录用户(图十一)
# 进入知乎,上传图片到web中,产生upload目录 (图十二)
[root@web01 /code/wp/wp-content]# ll
total 8
-rw-r--r-- 1 www www 28 Jan 9 2012 index.php
drwxr-xr-x 4 www www 4096 Jan 11 2019 languages
drwxr-xr-x 3 www www 55 Jan 11 2019 plugins
drwxr-xr-x 5 www www 89 Jan 11 2019 themes
drwxr-xr-x 3 www www 18 May 22 00:35 uploads
# 将web01的站点目录下内容全部scp到web02站点目录下,并修改权限
[root@web01 /code/wp]# scp -r ./* root@10.0.0.8:/code/zh/
[root@web02 ~]# chown -R www.www /code/zh
# 修改配置文件(nfs中操作)
[root@nfs /data]# vim /etc/exports
/data 172.16.1.0/24(sync,rw,all_squash,anonuid=666,anongid=666)
/nfs 172.16.1.0/24(sync,rw,all_squash,anonuid=666,anongid=666)
# 建立新的共享存储目录(nfs中操作)
[root@nfs /data]# mkdir /nfs
[root@nfs /data]# chown -R www.www /nfs
[root@nfs /data]# systemctl restart nfs-server
# 将web01中的数据scp到nfs中,然后挂载
[root@web01 /code/zh/uploads]# scp -r ./* root@10.0.0.31:/nfs
[root@web01 /code/zh/uploads]# mount -t nfs 172.16.1.31:/nfs /code/zh/uploads/
[root@web01 /code/zh/uploads]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.6G 17G 9% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 19G 1.3G 18G 7% /code/wp/wp-content/uploads
172.16.1.31:/nfs 19G 1.3G 18G 7% /code/zh/uploads
# web02挂载
[root@web02 /code/zh/install]# mount -t nfs 172.16.1.31:/nfs /code/zh/uploads/
# 页面测试,结果为图十三和十四对比图
- 图九
- 图十
- 图十一
- 图十二
- 图十三
- 图十四