1.實驗需求
(1)nfs server導出/data/application/web,在目錄中提供wordpress;
(2)nfs client掛載nfs server導出的文件系統,至/var/www/html;
(3)客戶端1(lamp)部署wordpress,并讓其正常訪問,要確保正常發文章,上傳圖片。
(4)客戶端2(lamp),掛載nfs server導出的文件系統至/var/www/html,驗證其wordpress是
否可被訪問,要確保能正常發文章,上傳圖片。
(5)nfs server 導出/mydata/目錄;
(6)nfs client掛載/mydata/至本地的/mydata目錄,mysqld或mariadb服務的數據目錄設置為/mydata, 要求服務能正常啟動,且可正常存儲數據。
2.服務器規劃
服務器版本 | 角色 | 主機名 | IP地址 |
centos7.2x86_64 |
web服務器01(apache+php) nfs客戶端 | web01 | 172.16.52.51 |
centos7.2x86_64 | web服務器02(apache+php) nfs客戶端 | web02 | 172.16.52.52 |
centos7.2x86_64 | mysqld數據庫服務 nfs客戶端 | db | 172.16.52.53 |
centos7.2x86_64 | nfs服務端 |
nfs |
172.16.52.54
|
部署NFS服務端及nfs客戶端
3.1 配置nfs服務端
(1)安裝nfs軟件
[root@nfs ~]# yum -y install nfs-utils [root@nfs ~]# rpm -qa nfs-utils nfs-utils-1.3.0-0.21.el7.x86_64
(2)啟動nfs服務
開機自啟動nfs服務:
[root@nfs ~]# systemctl enable rpcbind.service [root@nfs ~]# systemctl enable nfs-server.service
啟動rpcbind和nfs服務:
注意要先啟動rpcbind
[root@nfs ~]# systemctl start rpcbind.service [root@nfs ~]# systemctl start nfs.service
查看nfs狀態:
[root@nfs ~]# rpcinfo -p
(3)配置nfs服務
[root@nfs ~]# cat /etc/exports /data/application/web 172.16.0.0/16(rw,sync,anonuid=888,anongid=888) /mydata 172.16.0.0/16(rw,sync,anonuid=3306,anongid=3306)
重新導出:
[root@nfs ~]# exportfs -arv exporting 172.16.0.0/16:/data exporting 172.16.0.0/16:/data/application/web
為nfs共享文件創建授權用戶(uid):
這里我們不使用默認的nfsnobody用戶
[root@nfs ~]# groupadd -g 888 apache [root@nfs ~]# useradd -u 888 -g apache -s/sbin/nologin -M apache [root@nfs ~]# id apache uid=888(apache) gid=888(apache) groups=888(apache) [root@nfs ~]# chown apache.apache/data/application/web [root@nfs ~]# ls -ld /data/application/web/ drwxr-xr-x 2 apache apache 6 Jul 20 04:27/data/application/web/
[root@nfs ~]# groupadd -g 3306 mysql [root@nfs ~]# useradd -u 3306 -g mysql -s/sbin/nologin -M mysql [root@nfs ~]# id mysql uid=3306(mysql) gid=3306(mysql) groups=3306(mysql) [root@nfs ~]# chown mysql.mysql /data [root@nfs ~]# ls -ld /data drwxr-xr-x 4 mysql mysql 35 Jul 20 04:27 /data
3.2 配置nfs客戶端
注:3個nfs客戶端配置都一樣
安裝軟件包:
[root@db ~]# yum -y install nfs-utils
啟動rpcbind:
客戶端只用啟動rpcbind即可。
[root@db ~]# systemctl start rpcbind
4.部署lamp環境
說明:本次lamp環境采用rpm包安裝,數據庫分離
web01 和web02 配置一樣。
為了方便測試:web01域名blog.magedu.com;web02域名blog02.magedu.com
4.1 安裝軟件
[root@web01 ~]# yum -y install httpd php php-mysql
4.2 配置虛擬主機
[root@web01 conf.d]# cat blog.conf <VirtualHost *:80> ServerNameblog.magedu.com DocumentRoot"/var/www/html" CustomLog"/var/log/httpd/blog/access_log" combined ErrorLog "/var/log/httpd/blog/error_log" <Directory"/var/www/html"> OptionsNone AllowOverrideNone Requireall granted </Directory> </VirtualHost>
5. 部署mariadb數據庫服務
mariadb采用通用二進制安裝
[root@db soft]# ln -sv mariadb-5.5.46-linux-x86_64 mariadb [root@db soft]#ls mariadb mariadb-5.5.46-linux-x86_64
5.1 創建mysql用戶
[root@db soft]# groupadd -g 3306 mysql [root@db soft]# useradd -u 3306 -g mysql mysql [root@db soft]# id mysql uid=3306(mysql) gid=3306(mysql) groups=3306(mysql)
5.2 創建數據目錄并授權
[root@db soft]# mkdir /mydata [root@db soft]# chown -R mysql.mysql /mydata [root@db soft]# ls -ld /mydata drwxr-xr-x 2 mysql mysql 6 Jul 20 07:27 /mydata
5.3 初始化數據庫
[root@db mariadb]# chown -R root.mysql /data/soft/mariadb/ [root@db mariadb]# cd /data/soft/mariadb [root@db mariadb]# scripts/mysql_install_db--user=mysql --datadir=/mydata --basedir=/data/soft/mariadb
5.4 配置/etc/my.cnf
# cp support-files/my-large.cnf /etc/my.cnf vim /etc/my.cnf [mysqld] port = 3306 basedir = /data/soft/mariadb datadir = /data/mydata innodb_file_per_table = 1 #讓innodb表每個表一個表空間文件。
5.5 配置mysqld啟動腳本
復制mysql啟動腳本到/etc/init.d/mysqld
[root@db ~]# cp /data/soft/mariadb/support-files/mysql.server/etc/init.d/mysqld [root@db ~]# chmod 755 /etc/init.d/mysqld [root@db ~]# sed -i‘s#/usr/local/mysql#/data/soft/mariadb#g‘ /etc/init.d/mysqld [root@db ~]# chkconfig --add mysqld
修改PATH環境變量:
[root@db mariadb]# cat /etc/profile.d/mysql.sh export PATH=/data/soft/mariadb/bin:$PATH
配置庫文件搜索路徑:
[root@db mariadb]# echo"/data/soft/mariadb/lib" > /etc/ld.so.conf.d/mysqld.conf [root@db mariadb]# ldconfig
5.6 啟動mysqld服務
[root@db /]# service mysqld start Starting MySQL.. SUCCESS! [root@db /]# lsof -i:3306 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 7668mysql 15u IPv4 23521 0t0 TCP *:mysql (LISTEN)
5.7 測試php與數據庫的連接
注:事先創建好相關的庫和用戶
在web服務器站點下創建mysql.php 文件
[root@web01 html]# cat mysql.php <?php $conn= mysql_connect(‘172.16.52.53‘,‘wordpress‘,‘123456‘); if($conn) echo‘connect 172.16.52.53 is OK‘; else echo‘failure‘; ?>
5.8 把nfs服務端的/mydata/目錄掛載至本地的/mydata
[root@db ~]# showmount -e 172.16.52.54 Export list for 172.16.52.54: /mydata 172.16.0.0/16 /data/application/web 172.16.0.0/16
[root@db ~]# ls -ld /mydata/ drwxr-xr-x 6 mysql mysql 4096 Jul 21 06:05 /mydata/
[root@nfs /]# ls -ld /mydata drwxr-xr-x 6 mysql mysql 4096 Jul 21 06:05 /mydata
把本地mysql數據目錄/mydata里面的文件復制到nfs服務端的/mydata目錄里
[root@db ~]# scp -r /mydata/*root@172.16.52.54:/mydata
重新對nfs服務端/mydata/下面的文件授權:
chown -R mysql.mysql /mydata
掛載:
mount -t nfs 172.16.52.54:/mydata /mydata
重啟mysqld測試:
[root@db ~]# service mysqld restart Shutting down MySQL. SUCCESS! Starting MySQL.. SUCCESS! ok,沒有問題。
6.部署web服務器站點目錄
6.1 LAMP 01部署wordpress站點
站點目錄嚴格授權:
[root@web01 html]# chown -R root.root/var/www/html/ [root@web01 html]# find /var/www/html/ -type f|xargs chmod 644 [root@web01 html]# find /var/www/html/ -type d|xargs chmod 755 [root@web01 html]# chown -R apache.apache/var/www/html/wordpress/wp-content
6.2 把nfs服務端的/data/application/web 掛載至web01本地的/var/www/html
(1)把/var/www/html下面的文件復制到/data/application/web目錄下面
[root@web01 ~]# scp -rp /var/www/html/*root@172.16.52.54:/data/application/web/
(2)授權
[root@nfs~]# chown -R apache.apache /data/application/web/wordpress/wp-content/
(3)掛載
[root@web01 ~]# showmount -e 172.16.52.54 Export list for 172.16.52.54: /mydata 172.16.0.0/16 /data/application/web 172.16.0.0/16
[root@web01 wordpress]# mount -t nfs 172.16.52.54:/data/application/web/var/www/html
6.3 把nfs服務端的/data/application/web 掛載至web02本地的/var/www/html
(1)掛載
[root@web02 ~]# mount -t nfs172.16.52.54:/data/application/web /var/www/html
(2)訪問blog02.magedu.com/wordpress/index.php
7. 總結
本次實驗實現了web站點數據的共享,一定程度上實現session共享和負載均衡的功能。
原創文章,作者:island,如若轉載,請注明出處:http://www.www58058.com/74598