天天看點

面試apache的幾個方面

fastcgi 和apache module的差別

apache多線程多程序

apache虛拟主機的寫法

<VirtualHost *:80>
    ServerName quickstart.local
    DocumentRoot /path/to/quickstart/public
 
    SetEnv APPLICATION_ENV "development"
 
    <Directory /path/to/quickstart/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
           

AllowOverride:

通常利用Apache的rewrite子產品對 URL 進行重寫的時候, rewrite規則會寫在 .htaccess 檔案裡。但要使 apache 能夠正常的讀取.htaccess 檔案的内容,就必須對.htaccess 所在目錄進行配置。從安全性考慮,根目錄的AllowOverride屬性一般都配置成不允許任何Override ,即

< Directory />

AllowOverride None

< /Directory>

在 AllowOverride 設定為 None 時, .htaccess 檔案将被完全忽略。當此指令設定為 All 時,所有具有 ".htaccess" 作用域的指令都允許出現在 .htaccess 檔案中。

而對于 URL rewrite 來說,至少需要把目錄設定為

< Directory /myblogroot/>

AllowOverride FileInfo

< /Directory>

參考:http://www.ccvita.com/281.html

Allow:

1. 修改完配置後要儲存好并重新開機Apache服務,配置才能生效;

2. 開頭字母不分大小寫;

3. allow、deny語句不分先後順序,誰先誰後不影響最終判斷結果;但都會被判斷到;

4. order語句中,“allow,deny”之間“有且隻有”一個逗号(英文格式的),而且先後順序很重要;

5. Apache有一條預設規則,“order allow,deny”本身就預設了拒絕所有的意思,因為deny在allow的後面;同理,“order deny,allow”本身預設的是允許所有;當然,最終判斷結果還要綜合下面的allow、deny語句中各自所包含的範圍;(也就是說order語句 後面可以沒有allow、deny語句)

6. allow、deny語句中,第二個單詞一定是“from”,否則Apache會因錯而無法啟動,

7. “order allow,deny”代表先判斷allow語句再判斷deny語句,反之亦然。

參考:http://www.netren.org/index.php/apache2/232-apache-order-allow-deny.html

解析php檔案:

<Directory>
AddType application/x-httpd-php .php .phtml .php3 .php4 
AddType application/x-httpd-php-source .phps
</Directory>
           

解析py檔案:

<Directory>
    AddHandler mod_python .py
    PythonHandler fetchpage 
    PythonDebug On
</Directory>
           

.htaccsess