Apache無法啟動的問題 在Windows下經(jīng)常遇到的 Apache/PHP 無法啟動的情況主要分為兩種 1河胎、Apache無法啟動,沒加載php也無法啟動 2虎敦、Apache可以啟動游岳,但加載php后無法啟動 第一種情況 多數(shù)是Apache配置問
在Windows下經(jīng)常遇到的 Apache/PHP 無法啟動的情況主要分為兩種
1、Apache無法啟動其徙,沒加載php也無法啟動
2胚迫、Apache可以啟動,但加載php后無法啟動
第一種情況多數(shù)是Apache配置問題唾那,或者80端口被占用
使用Apache的配置檢查:切換到Apache安裝目錄(如下我用的是集成環(huán)境phpstudy访锻,其他的環(huán)境也是同樣)
根據(jù)錯誤提示,糾正錯誤。
C:\Users\cyx>cd c:\phpstudy
c:\phpStudy>Apache\bin\httpd.exe -t
AH00526: Syntax error on line 41 of C:/phpStudy/Apache/conf/vhosts.conf:
DocumentRoot must be a directory
c:\phpStudy>Apache\bin\httpd.exe -t
AH00526: Syntax error on line 41 of C:/phpStudy/Apache/conf/vhosts.conf:
DocumentRoot must be a directory
c:\phpStudy>Apache\bin\httpd.exe -t
Syntax OK
改回80端口:
標準的vhosts.conf文件:
<VirtualHost _default_:80>
DocumentRoot "C:/phpStudy/WWW/"
<Directory "C:/phpStudy/WWW/">
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:\phpStudy\WWW\0825"
ServerName www.0825.com
ServerAlias
<Directory "C:\phpStudy\WWW\0825">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
對應的hosts文件添加
如果是80端口占用期犬,這個在Windows機器比較常見河哑,經(jīng)常被IIS搶占。
注銷IIS服務(wù):
iisreset /stop
iisreset /disable
sc stop w3svc
sc delete w3svc
如果不是IIS龟虎,可以使用命令殺掉強占80端口的進程:
# 查找占用80端口的進程pid
netstat -ano|find ":80"
# 假設(shè)該進程pid為2013灾馒,查看進程名稱:
tasklist /fi "pid eq 2013"
# 殺掉該進程命令
taskkill /f /pid 2013
如果不是上述問題,那可能是系統(tǒng)網(wǎng)絡(luò)問題遣总,如下警告:
setup_inherited_listeners(), WSASocket failed to open the
inherited socket.
使用命令修復Windows網(wǎng)絡(luò):
netsh winsock reset
重啟機子,如果問題還無法解決轨功,嘗試以下方法:
本地連接 -> 屬性 -> 高級 -> Wins標簽 -> 去掉啟用LMhosts查詢前的勾選
第二種多數(shù)是PHP編譯器的問題:
查看Apache錯誤日志旭斥,有類似下面這些內(nèi)容:
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版本柒昏,否則就根據(jù)不同文件說明安裝不同的運行庫凳宙。
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模塊的問題:
1有梆、Apache2.0對應的PHP模塊為 php5apache2.dll
2是尖、Apache2.2對應的PHP模塊為 php5apache2_2.dll
3、Apache2.4對應的PHP模塊為 php5apache2_4.dll
換句話說泥耀,根據(jù)php5_module模塊饺汹,可以知道當前版本php支持哪種Apache
所以,Apache/PHP的搭配有以下幾種情況:
1痰催、php5.2支持Apache2.0和Apache2.2兜辞;
2、php5.3夸溶、php5.4同時支持Apache2.2和Apache2.4弦疮;
3、php5.5只支持Apache2.4
除非你自己手動編譯php5_module模塊蜘醋,否則只能有以上3種選擇胁塞。
如果Apache/PHP還是無法啟動,檢查php配置(php.ini)是否存在,運行php.exe有沒有提示錯誤啸罢。根據(jù)錯誤提示编检,糾正錯誤。