Apache 及 nfs 的運用簡單分享
by 資訊藝術家 • 2010/04/08 • linux • 0 Comments
當web server在一台不敷使用的情況下, 擴充第二台, 第三台 server ,
如果每台 server 都有各自的檔案, 這樣當我們更新時, 不就要更新三台,
如果有 n 台 server 呢?
更新到…….天昏地暗, NFS 就是這個問題的解決方式 ~ 讓 apache
的 DocumentRoot 可以是同一個的 ~
此文也會提到出現 httpd.conf: DocumentRoot must be a directory 怎麼解決喔 ~
以下就來簡單分享一下
首先先定義出那一台 server 為 nfs 的 server , 我們就先建立 NFS server
Ubuntu 需要 nfs-common 及 nfs-kernel-server 可以用以下的方式安裝
sudo apt-get install nfs-common nfs-kernel-server
Fedora 12 需要 nfs-utils 可以用以下的方式安裝
yum install nfs-utils
安裝好了以後呢 ~ 定義那些資料夾要分享
在 /etc/exports 裡定義出要分享的夾如下
/var/www/html 192.168.0.0/24(rw,sync,no_root_squash,subtree_check)
紅色的部分你可以自己定義, 後面是詳細的權限設定, 這邊就不多說了
這樣就可以啟動 nfs server 囉
Ubuntu sudo /etc/init.d/nfs-kernel-server start Fedora service nfs start
可以透過以下指令來看看有沒有掛載成功
showmount -e localhost
看到以下這樣就是掛載成功囉
Export list for localhost: /var/www/html 192.168.0.0/24
再來就是讓 nfs client 掛載 nfs server 的夾
showmount -e 192.168.0.4 (紅色部份是 server ip ) 這樣可以看到 nfs server 掛載了那些東西
以下指令就可以把 nfs server 上的東西, 在 client 上掛載起來囉 ,
mount -t nfs 192.168.0.4:/var/www/html /var/www/html
好了以後就可以到 /var/www/html 看看, 兩台機器的檔案內容是否都一樣 ~
再來重啟 apache , 就成功囉 ~~
如果出現 httpd.conf: DocumentRoot must be a directory
那是 Selinux 的問題 ~ 把 Selinux 關掉就可以囉 ~
#vi /etc/selinux/config 將 SELINUX=disabled 存檔重開機即可 也可以用setsebool 來解決 setsebool -P httpd_disable_trans 1
問題來了, 如果重新開機後要怎樣自動掛載
vi /etc/fstab
192.168.0.4:/var/www/html /var/www/html nfs nosuid,noexec,nodev,rw,bg,soft,rsize=32768,wsize=32768 0 0
這樣重開機 client 就是自動去掛載 nfs server 的夾囉 ~