Apache httpd.conf相關知識點--默認的開始頁面、目錄權限、虛擬主機

1、默認的開始頁面:
<IfModule dir_module>
    DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
                   default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
                   home.php home.pl home.cgi home.asp home.shtml home.html home.htm
</IfModule>


2、默認訪問位置,如輸入127.0.0.1後:
訪問的是htdocs文件夾下的DirectoryIndex頁面


3、爲什麼輸入127.0.0.1,訪問的是http://127.0.0.1/xampp/
因爲在htdocs的index.php做了跳轉


4、目錄相關之權限:
    [root@www ~]# vim /etc/httpd/conf/httpd.conf
    DocumentRoot "/var/www/html"  <==可以改成你放置首頁的目錄!
    # 這個設定值規範了 WWW 伺服器主網頁所放置的‘目錄’,雖然設定值內容可以變更,
    # 但是必須要特別留意這個設定目錄的權限以及 SELinux 的相關規則與類型(type)!


    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    # 這個設定值是針對 WWW 伺服器的‘預設環境’而來的,因爲針對‘/’的設定嘛!
    # 建議保留上述的預設值 (上頭資料已經是很嚴格的限制),相關參數容後說明。


    <Directory "/var/www/html">         <==針對特定目錄的限制!底下參數很重要!
        Options Indexes FollowSymLinks  <==建議拿掉 Indexes 比較妥當!
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    ----------------------------------------------------
     
    a、Options (目錄參數):


        此設定值表示在這個目錄內能夠讓 Apache 進行的動作,亦即是針對 apache 的程序的權限設定啦!主要的參數值有:


        Indexes:如果在此目錄下找不到‘首頁檔案 (預設爲 index.html) ’時, 就顯示整個目錄下的檔案名稱,至於‘首頁檔案檔名’則與 DirectoryIndex 設定值有關。


        FollowSymLinks:這是 Follow Symbolic Links 的縮寫, 字面意義是讓連結檔可以生效的意思。我們知道首頁目錄在 /var/www/html,既然是 WWW 的根目錄,理論上就像被 chroot 一般! 一般來說被 chroot 的程式將無法離開其目錄,也就是說預設的情況下,你在 /var/www/html 底下的連結檔只要連結到非此目錄的其他地方,則該連結檔預設是失效的。 但使用此設定即可讓連結檔有效的離開本目錄。


        ExecCGI:讓此目錄具有執行 CGI 程式的權限,非常重要!舉例來說,之前熱門的 OpenWebMail 使用了很多的 perl 的程式,你要讓 OpenWebMail 可以執行,就得要在該程式所在目錄擁有 ExecCGI 的權限才行喔!但請注意,不要讓所有目錄均可使用 ExecCGI !


        Includes:讓一些 Server-Side Include 程式可以運作。建議可以加上去!


        MultiViews:這玩意兒有點像是多國語言的支援,與語系資料 (LanguagePriority) 有關。最常見在錯誤訊息的回報內容,在同一部主機中,可以依據用戶端的語系而給予不同的語言顯示呢! 預設在錯誤回報訊息當中存在,你可以檢查一下 /var/www/error/ 目錄下的資料喔! 




    b、AllowOverride (允許的覆寫參數功能):


        表示是否允許額外設定檔 .htaccess 的某些參數覆寫?我們可以在 httpd.conf 內設定好所有的權限,不過如此一來若使用者自己的個人網頁想要修改權限時將會對管理員造成困擾。因此 Apache 預設可以讓使用者以目錄底下的 .htaccess 檔案內覆寫 <Directory> 內的某些功能參數。 這個項目則是在規定 .htaccess 可以覆寫的權限類型有哪些。常見的有:


        ALL:全部的權限均可被覆寫; 
        AuthConfig:僅有網頁認證 (帳號密碼) 可覆寫; 
        Indexes:僅允許 Indexes 方面的覆寫; 
        Limits:允許使用者利用 Allow, Deny 與 Order 管理可瀏覽的權限; 
        None:不可覆寫,亦即讓 .htaccess 檔案失效!


    c、Order Allow, Deny (能否登入瀏覽的權限):


        決定此目錄是否可被 apache 的 PID 所瀏覽的權限設定啦!能否被瀏覽主要有兩種判定的方式:


        deny,allow:以 deny 優先處理,但沒有寫入規則的則預設爲 allow 喔。 
        allow,deny:以 allow 爲優先處理,但沒有寫入規則的則預設爲 deny 喔。


        所以在預設的環境中,因爲是 allow,deny 所以預設爲 deny (不可瀏覽),不過在下一行有個 Allow from all,allow 優先處理,因此全部 (all) 用戶端皆可瀏覽!


5、虛擬主機:
    [root@www ~]# vim /etc/httpd/conf.d/virtual.conf
    # 底下這一行在規定‘本機任何介面的 port 80 所指定的虛擬主機’的意思。
    NameVirtualHost *:80


    # 先針對兩個多出來的可瀏覽目錄進行權限方面的規範啊!
    <Directory "/var/www/www">
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    <Directory "/var/ftp">
        Options FollowSymLinks Indexes
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>


    # 針對三部主機的 DocumentRoot 進行定!
    <VirtualHost *:80>
        ServerName    linux.centos.vbird
        DocumentRoot  /var/www/html
    </VirtualHost>
    <VirtualHost *:80>
        ServerName    www.centos.vbird
        DocumentRoot  /var/www/www
        CustomLog     /var/log/httpd/www.access_log combined
        # 不同的主頁可以指定不同的登錄檔資訊,這樣比較好 debug 與分析啦!
    </VirtualHost>
    <VirtualHost *:80>
        ServerName    ftp.centos.vbird
        DocumentRoot  /var/ftp
    </VirtualHost>


6、虛擬主機注意點:
    a、在虛擬主機的設定上還有很多的可用的功能,不過,最低的限度是需要有 ServerName 及 DocumentRoot 這兩個即可! 
    b、使用了虛擬主機後,原本的主機名稱 (linux.centos.vbird) 也要同時寫入虛擬主機的對應中, 否則這個主機名稱可能會不知道被丟到哪裏去喔! 
    c、在 www.centos.vbird 這個主機當中多了個 CustomLog ,表示任何向 www.centos.vbird 要求資料的記錄都會改寫入 /var/log/httpd/www.access_log 而不是預設的 /var/log/httpd/access_log。 但這個新增的登錄檔必需要加入 logrotate 的管理當中才行喔!否則登錄檔會大到‘爆表’
    d、在windows下的路徑不用\,都是使用/


7、生產環境的虛擬主機設置:
<VirtualHost *>
    <Directory "D:/PHPnow-1.5.6/htdocs/gausstel">
        Options Indexes FollowSymLinks
        Allow from all
        AllowOverride All
    </Directory>
    ServerAdmin [email protected]
    DocumentRoot "D:/PHPnow-1.5.6/htdocs/gausstel"
    ServerName 127.0.0.3:80
    ServerAlias *.vaasdk.com
    ErrorLog logs/127.0.0.3-error_log
    php_admin_value open_basedir "D:\PHPnow-1.5.6\htdocs\gausstel;C:\WINDOWS\Temp;"
</VirtualHost>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章