實(shí)驗(yàn)說(shuō)明
構(gòu)建NFS共享服務(wù),利用NFS來(lái)提供遠(yuǎn)程共享資源掩驱,web服務(wù)通過(guò)遠(yuǎn)程共享資源來(lái)構(gòu)建一個(gè)基于LAMP環(huán)境的WordPress站點(diǎn)欧穴,此站點(diǎn)可以用來(lái)正常發(fā)布文章和圖片涮帘。
實(shí)驗(yàn)的拓?fù)鋱D
其中调缨,websrv1和websrv2上是www.king.com站點(diǎn)弦叶,而wordpress博客頁(yè)面存放在nfs server上面伤哺,把相應(yīng)的目錄共享給A和B立莉,創(chuàng)建的博客文章則存放在mysql server上面七问。
實(shí)驗(yàn)實(shí)現(xiàn)
環(huán)境準(zhǔn)備
準(zhǔn)備虛擬機(jī)
A:站點(diǎn)websrv1刹淌,系統(tǒng)是centos7.3,ip地址是192.168.1.14芦鳍;
B:站點(diǎn)websrv2柠衅,系統(tǒng)是centos7.3菲宴,ip地址是192.168.1.15;
C:client势誊,客戶(hù)端粟耻,系統(tǒng)是centos7.3眉踱,ip地址是192.168.1.16谈喳;
D:mysql server婿禽,系統(tǒng)是centos7.3扭倾,采用的數(shù)據(jù)庫(kù)是系統(tǒng)自帶的mariadb 5.5.52膛壹,ip地址是192.168.1.7;
E:nfs server,系統(tǒng)是centos7.3撬槽,ip地址是192.168.1.8侄柔;
F:用于站點(diǎn)的域名解析的主DNS暂题,系統(tǒng)是centos6.9薪者,ip地址是192.168.1.6言津;
G:從DNS悬槽,系統(tǒng)是centos6.9初婆,ip地址是192.168.1.66。
準(zhǔn)備包文件
E上需要準(zhǔn)備的包
[root@centos7 src]#ls
wordpress-4.8.1-zh_CN.tar.gz
確保所有機(jī)器上面的防火墻和selinux處于關(guān)閉狀態(tài)
實(shí)驗(yàn)過(guò)程
一屑咳、在F上搭建king.com的主DNS
# 安裝dns軟件
[root@centos6 ~]#yum install bind
# 修改/etc/named.conf配置文件
[root@centos6 ~]#vim /etc/named.conf
# 在options{}中修改兩行
listen-on port 53 { localhost; };
allow-query { any; };
# 在options{}中添加一行,允許從DNS可以從主DNS復(fù)制區(qū)域解析庫(kù)文件
allow-transfer { 192.168.1.66; };
# 修改區(qū)域數(shù)據(jù)庫(kù)配置文件
[root@centos6 ~]#vim /etc/named.rfc1912.zones
# 在/etc/named.rfc1912.zones文件中添加
zone "king.com" IN {
type master;
file "king.com.zone";
};
# 創(chuàng)建區(qū)域數(shù)據(jù)庫(kù)king.com.zone
[root@centos6 ~]#cd /var/named
[root@centos6 named]#vim king.com.zone
$TTL 1D
@ IN SOA dns1.king.com. admin.king.com. (
2017003 ; serial
86400 ; refresh (1 day)
3600 ; retry (1 hour)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS dns1.king.com.
NS dns2.king.com.
dns1 A 192.168.1.6
dns2 A 192.168.1.66
websrv A 192.168.1.14
websrv A 192.168.1.15
www CNAME websrv
# 修改king.com.zone所屬組為named
[root@centos6 named]#chgrp named king.com.zone
# 配置文件語(yǔ)法檢查以及解析庫(kù)文件語(yǔ)法檢查
[root@centos6 named]#named-checkconf
[root@centos6 named]#named-checkzone king.com king.com.zone
# 啟動(dòng)DNS服務(wù)详瑞,查看本機(jī)53端口已經(jīng)打開(kāi)
[root@centos6 named]#service named start
[root@centos6 named]#ss -ntul
# 在客戶(hù)端C上測(cè)試通過(guò)
[root@centos7 ~]# dig www.king.com @192.168.1.6
二坝橡、在G上搭建king.com的從DNS
# 安裝dns軟件
[root@centos6 ~]#yum install bind
# 修改/etc/named.conf配置文件
[root@centos6 ~]#vim /etc/named.conf
# 在options{}中修改兩行
listen-on port 53 { localhost; };
allow-query { any; };
# 在options{}中添加一行精置,設(shè)置為任何人都不允許復(fù)制區(qū)域解析庫(kù)文件
allow-transfer { none; };
# 修改區(qū)域數(shù)據(jù)庫(kù)配置文件/etc/named.rfc1912.zones
[root@centos6 ~]#vim /etc/named.rfc1912.zones
# 在/etc/named.rfc1912.zones文件中添加
zone "king.com" IN {
type slave;
masters { 192.168.1.6; };
file "slaves/king.com.slave.zone";
};
# 啟動(dòng)DNS服務(wù)番宁,查看本機(jī)53端口已經(jīng)打開(kāi)
[root@centos6 named]#service named start
[root@centos6 named]#ss -ntul
# 在客戶(hù)端C上測(cè)試通過(guò)
[root@centos7 ~]# dig www.king.com @192.168.1.66
三蝶押、在D上搭建mysql server
[root@centos7 ~]#yum install mariadb-server
[root@centos7 ~]#systemctl start mariadb
# 數(shù)據(jù)庫(kù)安全初始化(設(shè)置數(shù)據(jù)庫(kù)root用戶(hù)口令centos棋电,刪除匿名賬戶(hù),允許遠(yuǎn)程登錄等)
[root@centos7 ~]#mysql_secure_installation
# 創(chuàng)建wpdb數(shù)據(jù)庫(kù)企锌,授權(quán)用戶(hù)
[root@centos7 ~]#mysql -uroot -pcentos
MariaDB [(none)]> create database wpdb;
MariaDB [(none)]> grant all on wpdb.* to wpuser@'localhost' identified by 'centos';
MariaDB [(none)]> grant all on wpdb.* to wpuser@'127.%' identified by 'centos';
MariaDB [(none)]> grant all on wpdb.* to wpuser@'192.168.1.%' identified by 'centos';
# 在A和B上測(cè)試連接數(shù)據(jù)庫(kù)撕攒,發(fā)現(xiàn)可以連接
[root@centos7 ~]#yum install mariadb
[root@centos7 ~]#mysql -uwpuser -pcentos -h192.168.1.7
四沉眶、在A和B上搭建websrv
在A和B上面搭建websrv打却,是采用httpd + php-fpm的方式,php-fpm作為獨(dú)立于httpd的進(jìn)程谎倔。A和B的系統(tǒng)都是centos7柳击,搭建的方式相同,下面以A為例介紹搭建的過(guò)程片习。
[root@centos7 ~]#yum install httpd php-fpm php-mysql
# 修改配置文件
[root@centos7 ~]#vim /etc/php-fpm.d/www.conf
pm.start_servers = 10
pm.min_spare_servers = 10
# 啟動(dòng)服務(wù)捌肴,查看端口(9000)
[root@centos7 ~]#systemctl start php-fpm
[root@centos7 ~]#ss -ntul
# 配置httpd,添加/etc/httpd/conf.d/fcgi.conf配置文件
[root@centos7 ~]#vim /etc/httpd/conf.d/fcgi.conf
DirectoryIndex index.php
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
# 修改httpd配置文件
[root@centos7 ~]#vim /etc/httpd/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
[root@centos7 ~]#systemctl start httpd
# 創(chuàng)建用于測(cè)試連接數(shù)據(jù)庫(kù)以及訪(fǎng)問(wèn)php的頁(yè)面
[root@centos7 ~]#vim /var/www/html/index.php
<html><body><h1> LAMP </h1></body></html>
<?php
$mysqli=new mysqli("192.168.1.7","wpuser","centos");
if(mysqli_connect_errno()){
echo "連接數(shù)據(jù)庫(kù)失敗!";
$mysqli=null;
exit;
}
echo "連接數(shù)據(jù)庫(kù)成功!";
$mysqli->close();
phpinfo();
?>
# 在客戶(hù)端C上指定DNS
[root@centos7 ~]# cd /etc/sysconfig/network-scripts
[root@centos7 network-scripts]# echo "DNS1=192.168.1.6" >> ifcfg-ens33
[root@centos7 network-scripts]# echo "DNS2=192.168.1.66" >> ifcfg-ens33
[root@centos7 network-scripts]# systemctl restart network
在客戶(hù)端C的瀏覽器藕咏,輸入http://www.king.com状知,顯示連接數(shù)據(jù)庫(kù)正常,以及顯示php相關(guān)信息孽查。強(qiáng)制刷新的時(shí)候,有時(shí)會(huì)顯示A上的測(cè)試頁(yè)面贷揽,有時(shí)會(huì)顯示B上的測(cè)試頁(yè)面印屁,這才是正常的柠衍。
五、在E上搭建nfs server,配置wordpress
# 安裝nfs,啟動(dòng)服務(wù)
[root@centos7 ~]#yum install nfs-utils
[root@centos7 ~]#systemctl start nfs-server
# 創(chuàng)建用于共享的目錄
[root@centos7 ~]#mkdir /app/blogshare
# 將目錄共享
[root@centos7 ~]#vim /etc/exports
/app/blogshare 192.168.1.14(rw) 192.168.1.15(rw)
[root@centos7 ~]#exportfs -r
[root@centos7 ~]#exportfs -v
# 確保E上有apache賬號(hào)运提,并且和A以及B機(jī)器上面的apache賬號(hào)uid槽畔,gid等屬性保持一致
[root@centos7 ~]#getent passwd apache
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
# 讓apache賬號(hào)對(duì)目錄有所有權(quán)限
[root@centos7 ~]#setfacl -R -m u:apache:rwx /app/blogshare
# 配置wordpress
[root@centos7 src]#tar xvf wordpress-4.8.1-zh_CN.tar.gz -C /app/blogshare/
[root@centos7 src]#cd /app/blogshare/
[root@centos7 blogshare]#mv wordpress/ blog
[root@centos7 blogshare]#cd /app/blogshare/blog
[root@centos7 blog]#cp wp-config-sample.php wp-config.php
[root@centos7 blog]#vim wp-config.php
/** WordPress數(shù)據(jù)庫(kù)的名稱(chēng) */
define('DB_NAME', 'wpdb');
/** MySQL數(shù)據(jù)庫(kù)用戶(hù)名 */
define('DB_USER', 'wpuser');
/** MySQL數(shù)據(jù)庫(kù)密碼 */
define('DB_PASSWORD', 'centos');
/** MySQL主機(jī) */
define('DB_HOST', '192.168.1.7');
六、在A和B上掛載nfs共享
在A和B上掛載nfs共享目錄的實(shí)現(xiàn)都是一樣的昧旨,下面以A為例介紹一下過(guò)程乒疏。
[root@centos7 ~]#showmount -e 192.168.1.8
Export list for 192.168.1.8:
/app/blogshare 192.168.1.15,192.168.1.14
[root@centos7 ~]#cd /var/www/html
[root@centos7 html]#mkdir blog
# 掛載nfs共享資源
[root@centos7 html]#mount 192.168.1.8:/app/blogshare/blog /var/www/html/blog
# 開(kāi)機(jī)掛載,在/etc/fstab中添加一行
[root@centos7 html]#vim /etc/fstab
192.168.1.8:/app/blogshare/blog /var/www/html/blog nfs defaults 0 0
七、 在客戶(hù)端C上通過(guò)網(wǎng)頁(yè)方式安裝wordpress
在客戶(hù)端C的瀏覽器地址欄輸入www.king.com/blog/煞肾,在彈出的界面上钧忽,設(shè)置站點(diǎn)標(biāo)題大刊,設(shè)置管理使用的用戶(hù)名和密碼伴郁,點(diǎn)擊安裝WordPress狐胎。安裝完之后溅话,點(diǎn)擊登錄循狰,就可以設(shè)置自己喜愛(ài)的主題以及發(fā)布博客文章了。此時(shí)寸潦,瀏覽器中輸入192.168.1.6/blog可以查看自己的博客斩箫。
八、測(cè)試
停止A或者B的httpd服務(wù),或者兩個(gè)都停止,在客戶(hù)端C上看是否還能訪(fǎng)問(wèn)自己的博客網(wǎng)站井氢。
[root@centos7 ~]#systemctl stop httpd
發(fā)現(xiàn)停止其中一個(gè)httpd服務(wù),依然是可以訪(fǎng)問(wèn)博客站點(diǎn)的。