• 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 的夾囉 ~