NFS为lamp提供共享存储实践
本文旨在實現NFS為lamp環境web站點提供共享存儲。
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 |
3.實驗拓撲
4.部署NFS服務端及nfs客戶端
4.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?/data4.2 配置nfs客戶端
?注:3個nfs客戶端配置都一樣
?安裝軟件包:
[root@db?~]#?yum?-y?install?nfs-utils?
?啟動rpcbind:
?客戶端只用啟動rpcbind即可。
[root@db?~]#?systemctl?start?rpcbind
5.部署lamp環境
說明:本次lamp環境采用rpm包安裝,數據庫分離
web01 和web02 配置一樣。
為了方便測試:web01域名blog.magedu.com;web02域名blog02.magedu.com
5.1 安裝軟件
[root@web01?~]#?yum?-y?install?httpd?php?php-mysql?
5.2 配置虛擬主機
[root@web01?conf.d]#?cat?blog.conf <VirtualHost?*:80>ServerNameblog.magedu.comDocumentRoot"/var/www/html"CustomLog"/var/log/httpd/blog/access_log"?combinedErrorLog??"/var/log/httpd/blog/error_log"??<Directory"/var/www/html">OptionsNoneAllowOverrideNoneRequireall?granted</Directory> </VirtualHost>5.3 php訪問測試
6. 部署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_646.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)6.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?
6.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?
6.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表每個表一個表空間文件。
6.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]#?ldconfig6.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)?
6.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';elseecho'failure'; ?>?
6.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,沒有問題。7.部署web服務器站點目錄
7.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?
?在博客里發一篇文章,插入一張圖片。
?
7.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?
?(4)讀寫測試,插入圖片
?
7.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
?訪問沒有問題
?測試插入圖片:
8. 總結
本次實驗實現了web站點數據的共享,一定程度上實現session共享和負載均衡的功能。
轉載于:https://blog.51cto.com/zhangbei/1828602
總結
以上是生活随笔為你收集整理的NFS为lamp提供共享存储实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ 3150 循环矩阵的应用
- 下一篇: 杭电 2111 Saving HDU (