Apache2.2 服務無法啓動等相關問題 解決方案彙總

使用xamp,wamp開發php,根本不需要考慮配置問題,但是作爲一名求是的開發者,還是應該親手嘗試一下,於是開始自己分別下載apache php,然後配置。但是問題來了:apache 服務無法啓動--"Apache2.2 服務因 1 (0x1) 服務性錯誤而停止",於是馬上百度,再加上自己的琢磨,下面是解決方案:

1 80端口問題
很大部分的原因來自端口,如果你機子上的IIS或者其他程序佔用了80端口,那麼apache肯定無法啓動。所以第一個思路是:解決端口問題--可以用netstat -an查看端口使用情況,停止使用80端口的程序,然後啓動服務;也可以讓apache運行在另一個端口,譬如8080上。兩者皆可。

2配置文件httpd.conf問題
配置文件是第二個問題來源。拼寫錯誤,路徑不對,以及版本參數的不匹配都會導致問題。因此第二個思路是:每次修改都要備份http.conf文件,若果發現問題,則回到原配置文件,看看是否還有問題,若沒有,肯定是新配置文件裏有錯誤。檢查
LoadModule php5_module "D:/php-5.2.5-Win32/php5apache2_2.dll"
AddType application/x-httpd-php .php
的拼寫問題,包括空格。當然最好直接複製粘貼,這樣最可靠。
其他諸如文件路徑的斜槓,以及ErrorLog等路徑無效也都應注意。

如果上面兩步都安全通過,那麼我們的Apache應該可以啓動服務了!!



還有一類問題,服務可以啓動但是輸入localhost無法打開頁面
這一般是netbios解析失敗造成的。解決的辦法很簡單,步驟如下:
1 在"網上鄰居"上 點右鍵,菜單上選"屬性(R)"。出來"網絡連接"窗口,在"本地連接"上點右鍵,菜單中點"屬性(R)"。出來"本地連接 屬性"面板,在"此鏈接使用下列項目"中找到:"Internet 協議 (TCP/IP)",並點擊它。在彈出的"Internet 協議 (TCP/IP) 屬性"面板上,點擊"高級(V)..."按鈕。"高級 TCP/IP 設置"面板上點"WINS"選項標籤,去掉"啓用 LMHOSTS 查詢(L)"前面的勾,點"確定"按鈕。
2 打開"控制面板",點擊"Windows 防火牆",點擊"高級"選項標籤,選擇"本地連接",並點擊旁邊的"設置(T)..."按鈕。在服務選項中找到"安全 Web 服務器(HTTPS)",並把它勾選上,點"確定"按鈕。

最後一類問題 php文件無法解析
當你萬分驚喜的發現可以打開http://localhost 並看到apache的"IT works!"的頁面時,你很激動的馬上測試一個phpnifo的頁面,卻發現無法解析。這是因爲,apache不知道如何解析php文件。雖然LoadModule和AddType語句已經告訴apache 載入php模塊並注意php後綴的文件,但是真正的解析還是要調用php5ts.dll等等文件,所以
方案一:在path裏添加php所在目錄 並在httpd.conf裏添加
PHPiniDir "D:/php-5.2.5-Win32/"
方案二:直接將php5ts.dll從php目錄拷貝到apache的bin目錄即可

另外有一點需要注意 apache2.2以上的版本需要使用php5apache2_2.dll
在php5.2.5 已經自帶了 而使用以前的版本,譬如php5.1請到http://php.net下載補丁php5apache2.dll-php5.1.x.rar並解壓.共有三個文件.
vcredist_x86.exe
php5apache2.dll
httpd.exe.manifest
1.將 php5apache2.dll 覆蓋掉你原來PHP目錄下的 php5apache2.dll 文件.
2.將 httpd.exe.manifest 文件複製到你的apache安裝目錄下的bin文件夾下.
3.雙擊運行vcredist_x86.exe安裝.(如果您的系統裏已安裝了 .NET framework 2.就可以省掉這一步)
完成!重啓你的apache2.2試試吧.
當然,使用php5.2.5 完全不用管這個問題!

好了,大抵就這些問題比較常見,希望能給大家一點幫助!


原文地址: http://www.cnitblog.com/benwhite/archive/2008/04/30/43118.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章