基於NFS的LAMP

一.建立LVM用做NFS文件系統的存儲盤。
實際應用的話建議使用單獨的磁盤,由於是實驗測試這裏就在自己的虛擬機硬盤上簡單的分了兩個10G的分區,分區過程就不過多介紹來,分區後如圖所示


其中的sda5和sda6將用於創建LVM。
創建pv #pvcreate /dev/sdb5
#pvcreate /dev/sdb6
創建vg #vgcreate myvg /dev/sdb5 /dev/sdb6
創建lv #lvcreate -L 5G -n web myvg
#lvcreate -L 5G -n mydata myvg
格式化lv #mke2fs /dev/myvg/web
#mke2fs /dev/myvg/mydata
掛載lv #partprobe
#mkdir -pv /www/{htdocs,mydata}
#mount /dev/myvg/web /www/htdocs
#mount /dev/myvg/mydata /www/mydata
此時使用df -lh 可以查看到新的硬盤信息,如下


爲系統添加mysql用戶和mysql組
#groupadd -g 3306 mysql
# useradd -u 3306 -g mysql -M -s /sbin/nologin mysql
將/www目錄的屬主屬組設置爲mysql
#chown -R mysql:mysql /www

二.設置NFS
首先查詢軟件是否安裝:# rpm -qa | grep nfs
#rpm -qa | grep protmap

如果得到如圖的查詢結果說明已經安裝過了,如果沒有安裝請自行安裝。
爲了實現預期的功能需要編輯NFS的主配置文件/etc/exports,該文件默認爲空,需要自己編輯,該文件的格式爲
/tmp *(ro) 192.168.0.0/24(rw)
表示所有人對/tmp目錄有制度權限,192,168.0.0/24這個網段讀這個目錄有讀寫權限。下面我們就根據要求來編輯該文件,vim /etc/exports,寫入
/www/htdocs 172.16.0.0/16(rw,async) 10.0.0.0/8(ro)
/www/mydata 172.16.0.0/16(rw,async) 10.0.0.0/8(ro)
保存退出,然後啓動nfs服務,建議啓動錢使用setenforce 0來關閉selinux。
#service nfs start
這時就可一在客戶端中查看共享目錄了
#showmount -e 192.168.0.166
三.準備客戶端
首先來配置第一臺客戶端,爲其命名爲www1.
爲該主機創建與NFS服務器相同的mysql用戶和mysql組
#groupadd -g 3306 mysql
# useradd -u 3306 -g mysql -M -s /sbin/nologin mysql
在該主機上安裝LAMP,可以選擇手動編譯安裝和直接使用rpm包進行安裝,這裏我就直接使用rpm包進行安裝了
#yum install httpd
#yum install php
接下來安裝mysql
解壓mysql數據包到/usr/local下:#tar xf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/
爲方便使用,給mysql-5.5.15-linux2.6-i686創建鏈接: cd /usr/local/
# ln -sv mysql-5.5.15-linux2.6-i686/ mysql
然後將mysql目錄的屬組屬主都改爲mysql: chown -R mysql:mysql .
初始化Mysql: #scripts/mysql_install_db --user=mysql --datadir=/data/mysqldata
完成後將當前目錄的屬主再改回root。
接下來爲mysql主被服務啓動的執行腳本:#cp support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld 添加到服務隊列
#chkconfig mysqld on 設置開機啓動
# cp support-files/my-large.cnf /etc/my.cnf 在該文件中爲mysql指定非默認的數據存放位置,即我們上面建立的/data/mysqldata,編輯該文件
# vim /etc/my.cnf
在[mysqld]字段中添加 datadir = /data/mysqldata 保存退出。
之後就可以使用#service mysqld start 來啓動mysql服務了。

掛載nfs #mkdir -pv /www/{web,mydata}
#mount -t nfs 192.168.0.166:/www/htdocs /www/web
#mount -t nfs 192.168.0.166:/www/mydata /www/mydata
打開apache的配置文件/etc/httpd/httpd.conf,將其網頁存放目錄改爲/www/web
找到
#AddType application/x-gzip .gz .tgz
下加二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
還有找到DirectoryIndex index.html
加上 index.php 讓它把index.php做爲默認頁
四.安裝wordpress
將下載的安裝包wordpress-3.0.4-zh_CN.zip解壓到/www/web目錄下
在測試主機的瀏覽器內輸入www1的IP地址172.16.0.165會出現如下安裝界面進行安裝


按照提示連接好數據庫並進行相關設置後即可進入網站主頁。

 

五.設置另一臺主機www2
主機www2的設置過程相對簡單,依照上面設置www1的步驟,除去mysql的安裝不做,因爲使用的是nfs文件系統不需要重複設置,只需安裝服務並進行掛載即可,對www2的httpd.conf進行與www1相同的設置,並重啓apache服務,在測試主機的瀏覽器內輸入www2的IP地址172.16.0.166,可以打開和www1一樣的網站頁面


爲了驗證效果,我們在此處添加一篇文章


再來到www1上打開主頁,可以看到
說明nfs設置成功。

 

下面是一些NFS共享的常用參數:

 

 

ro 只讀訪問
rw 讀寫訪問
sync 所有數據在請求時寫入共享
async NFS在寫入數據前可以相應請求
secure NFS通過1024以下的安全TCP/IP端口發送
insecure NFS通過1024以上的端口發送
wdelay 如果多個用戶要寫入NFS目錄,則歸組寫入(默認)
no_wdelay 如果多個用戶要寫入NFS目錄,則立即寫入,當使用async時,無需此設置。
hide 在NFS共享目錄中不共享其子目錄
no_hide 共享NFS目錄的子目錄
subtree_check 如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限(默認)
no_subtree_check 和上面相對,不檢查父目錄權限
all_squash 共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。
no_all_squash 保留共享文件的UID和GID(默認)
root_squash root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)
no_root_squas root用戶具有根目錄的完全管理訪問權限
anonuid=xxx 指定NFS服務器/etc/passwd文件中匿名用戶的UID
anongid=xxx 指定NFS服務器/etc/passwd文件中匿名用戶的GID 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章