最近經常被問到Apache無法啟動的問題,所以寫一篇文章,總結一下Windows下經常遇到的 Apache/PHP 無法啟動的情況的解決方法。
Apache/PHP 無法啟動分兩種情況:
1、Apache無法啟動,沒加載php也無法啟動
2、Apache可以啟動,但加載php后無法啟動
第一種情況多數是Apache配置問題,或者80端口被占用
使用Apache的配置檢查:
代碼如下:
C:/>D:/Apache2.2/bin/httpd.exe -t
Syntax OK
根據錯誤提示,糾正錯誤。
如果是80端口占用,這個在Windows機器比較常見,經常被IIS搶占。
注銷IIS服務:
代碼如下:
iisreset /stop
iisreset /disable
sc stop w3svc
sc delete w3svc
如果不是IIS,可以使用命令殺掉強占80端口的進程:
代碼如下:
# 查找占用80端口的進程pid
netstat -ano|find ":80"
# 假設該進程pid為2013,查看進程名稱:
tasklist /fi "pid eq 2013"
# 殺掉該進程命令
taskkill /f /pid 2013
如果不是上述問題,那可能是系統網絡問題,如下警告:
代碼如下:
setup_inherited_listeners(), WSASocket failed to open the
inherited socket.
使用命令修復Windows網絡:
代碼如下:
netsh winsock reset
重啟機子,如果問題還無法解決,嘗試以下方法:
本地連接 -> 屬性 -> 高級 -> Wins標簽 -> 去掉啟用LMhosts查詢前的勾選
代碼如下:
/******** 無情的分割線 ********* /
作者:沒有開花的樹
/ ******* 無情的copy *********/
第二種多數是PHP編譯器的問題:
查看Apache錯誤日志,有類似下面這些內容:
代碼如下:
httpd.exe: Syntax error on line 63 of D:/Apache2.2/conf/httpd.conf: Cannot load D:/php/php5apache2_4.dll into server: %1 /xb2/xbb/xca/xc7/xd3/xd0/xd0/xa7/xb5/xc4 Win32 /xd3/xa6/xd3/xc3/xb3/xcc/xd0/xf2/xa1/xa3
php5.5使用的編譯器是vc11,php5.4和php5.3的是vc9,php5.2是vc6。同時還要注意是x86版本,還是x64版本。目前只有php5.5提供x64版本,其他都只有x86版本。
apache.org下載的Apache都是vc6版本,否則就根據不同文件說明安裝不同的運行庫。
vc11運行庫x86/x64版本:http://www.microsoft.com/en-us/download/details.aspx?id=30679
vc10運行庫x86版本:http://www.microsoft.com/en-us/download/details.aspx?id=5555
vc10運行庫x64版本:http://www.microsoft.com/en-us/download/details.aspx?id=14632
vc9運行庫x86版本:http://www.microsoft.com/en-us/download/details.aspx?id=5582
vc9運行庫x64版本:http://www.microsoft.com/en-us/download/details.aspx?id=15336
如果不清楚你的情況,可以安裝全部運行庫,再也不用為這個問題擔憂了。
如果Apache/PHP還無法啟動,那最可能是php5_module模塊的問題:
新聞熱點
疑難解答