Install and Run Apache 2 as a Service
- 雙擊文件apache_2.0.48-win32-x86-no_ssl.msi將自動(dòng)安裝Apache HTTP Server 2.0.48,假設(shè)安裝目錄是%APACHE2_HOME%。安裝過程中有以下選項(xiàng):
- for All Users, on Port 80, as a Service
- only for the Current User, on Port 8080, when started Manually
- 如果已經(jīng)有一個(gè)老版本的Apache服務(wù)器(如Apache 1.3)被安裝成了啟動(dòng)服務(wù)并占用了端口80,可以進(jìn)入老版本Apache服務(wù)器的安裝目錄(Apache.exe文件所在的目錄),用以下命令將之關(guān)閉和移除:
apache -k shutdown apache -k uninstall
- 如果沒有把Apache 2安裝成啟動(dòng)服務(wù),可以使用以下命令增加Apache2啟動(dòng)服務(wù):
%APACHE2_HOME%\bin\apache -k install
- Apache 2安裝成功后會(huì)在Windows啟動(dòng)時(shí)自動(dòng)在端口80啟動(dòng)。同時(shí)啟動(dòng)的還有ApacheMonitor(該程序被加在開始/程序/啟動(dòng)菜單中)。ApacheMonitor可以監(jiān)視Apache 2的運(yùn)行狀況,并提供方便的啟動(dòng),關(guān)閉和重啟操作,類似于Apache 1.3中的apmgr.exe。對于熱中于手動(dòng)操作的用戶來說,也可以退出ApacheMonitor,并將之從開始/程序/啟動(dòng)菜單中刪除,這并不影響Apache 2的運(yùn)行。
- 手動(dòng)啟動(dòng)、關(guān)閉和重啟Apache 2的方法如下:
%APACHE2_HOME%\bin\apache -k start %APACHE2_HOME%\bin\apache -k restart %APACHE2_HOME%\bin\apache -k shutdown
- 可能出現(xiàn)的問題和解決方法:
- 當(dāng)啟動(dòng)、重啟或關(guān)閉Apache 2時(shí)出現(xiàn)提示:No installed service named apache2 - Apache 2沒有被安裝成啟動(dòng)服務(wù),需使用命令 %APACHE2_HOME%\bin\apache -k install 將之安裝成啟動(dòng)服務(wù)。
- 當(dāng)啟動(dòng)Apache 2時(shí)出現(xiàn)提示:Could not bind to address 0.0.0.0:80 - 有其它程序占用了80端口,它們可能是老版本的Apache,也可能是其它的HTTP服務(wù)器(如Windows的IIS),需要將它們先關(guān)閉才能在端口80啟動(dòng)Apache 2。
Apache 2 Configuration
通過修改Apache的配置文件%APACHE2_HOME%/conf/httpd.conf可以定置自己的Apache服務(wù)器。注意修改該配置文件前要先停止正在運(yùn)行的Apache服務(wù)器。
在相應(yīng)位置增加以下行可以定義自己的文件系統(tǒng)容器,設(shè)置自己的本地文件系統(tǒng)到網(wǎng)絡(luò)空間的映射:
Alias /homepage "D:/heavyz/homepage" <Directory "D:/heavyz/homepage"> Options Indexes FollowSymLinks -ExecCGI DirectoryIndex index.php index.html home/index.php home/index.html Order allow,deny Allow from all Deny from enpc.fr </Directory>
以上語句通過<Directory>標(biāo)簽定義了一個(gè)文件系統(tǒng)容器,并使用Alias指令把該容器映射到/homepage的URL上去。在該文件系統(tǒng)容器中還定義了一系列屬性。對上述配置的解釋如下:
- <Directory "D:/heavyz/homepage"> and </Directory> : 定義本地文件系統(tǒng)容器,該容器位于D:/heavyz/homepage中。
- Alias /homepage "D:/heavyz/homepage" : 當(dāng)URL中的路徑名為/homepage時(shí),將映射到該文件系統(tǒng)容器中。
- Options Indexes FollowSymLinks -ExecCGI : 當(dāng)搜索不到默認(rèn)首頁時(shí),允許列出目錄的內(nèi)容;允許目錄中的符號(hào)鏈;不允許執(zhí)行CGI腳本。
- DirectoryIndex index.php index.html home/index.php home/index.html : 按照列出的四個(gè)本地URL搜索默認(rèn)首頁,最先找到的文件作為首頁返回。
- Order allow,deny : Order規(guī)定了HTTP客戶的訪問權(quán)限。先允許再禁止(allow,deny)表明allow中允許的訪問權(quán)限優(yōu)先級低于deny中禁止的訪問權(quán)限。
- Allow from all : 先允許來自任何地方的HTTP客戶的訪問請求。
- Deny from enpc.fr : 再禁止域名為enpc.fr的HTTP客戶的訪問請求(國立路橋?qū)W校ENPC的主機(jī)不允許訪問該頁面),對于這些客戶,服務(wù)器返回403 Forbidden信息。注意Order中定義了deny的優(yōu)先級高于allow,故該指令將生效。
假設(shè)在本地文件系統(tǒng)上存在文件D:\heavyz\homepage\index.html,重新啟動(dòng)Apache服務(wù)器,并訪問頁面:http://localhost/homepage將可以訪問到上述文件(前提是你不在ENPC的網(wǎng)絡(luò)內(nèi))。
關(guān)于Apache配置的更詳細(xì)的說明可以參考Apache HTTP Server Documentation Project。
Comments
Apache返回的頁面總是ISO-8859-1編碼,在顯示gb2312中文或者UTF-8 unicode時(shí)很不方便,如何修正?
修改配置文件%APACHE2_HOME%/conf/httpd.conf,將以下行注釋掉:
AddDefaultCharset ISO-8859-1
怎樣讓Apache在另一個(gè)端口上(比如81)偵聽?
首先卸載Apache Service:
%APACHE2_HOME%\bin\apache -k uninstall然后修改配置文件%APACHE2_HOME%\conf\httpd.conf的以下行:
Listen 80 --> Listen 81重新安裝Apache Service:
%APACHE2_HOME%\bin\apache -k install
References
- Apache HTTP Server Project: http://httpd.apache.org
- Apache HTTP Server Documentation Project: http://httpd.apache.org/docs-project
- kajaa的Apache 2.0手冊中文版翻譯項(xiàng)目: http://www.douzhe.com/ApacheManual