win7下安裝apache+mysql+php後伺服器啟動失敗解決
今天想在win下搭個php開發環境,之前也做過相關的工作,所以也沒太在意,因為機子已經裝上了Mysql,也就懶得重新裝了。
先把apache2.2裝上,裝好後啟動沒問題,頁面訪問也是可以的,接著裝php5.3,因為用來開發以及學習用的,所以把能選的元件都選上了,安裝沒問題,php模組已自動載入到apache 中,不用像以前那樣要自己手動載入模組,安裝完PHP後,重啟apache時卻發現啟動失敗,沒道理啊。我什麼都沒動,就裝了個PHP,難道PHP裝得有問題?
不急,一步步來看,先檢視apache日誌檔案,嗯,有問題,日誌顯示如下:
[Tue May 01 21:12:16 2012] [warn] pid file D:/ProgramFiles/Apache Software Foundation/Apache2.2/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
這是什麼東西?沒見過,不要緊,問一下谷哥和度娘,直接拷貝上去,一搜,果然是有眾多同道中人,可是上面眾說紛紜,有說是apahce沒有完全關閉造成的,有說是沒載入到相應的PHP dll造成的,有說是環境變數造成的,不一而足。經驗不足,只能一個個來試,於是,設定環境變數、重啟系統等一連串的操作,但錯誤還是依舊,該起不來的還是起不來。我要暈了,終於在某個論壇看到有個仁兄介紹可以直接使用控制檯啟動apache可以看到出錯資訊,於是馬上執行,結果很讓人振奮,果然報錯了,提示找不到php_pdo_mssql.dll模組,天啊,不是完全安裝了嗎,還有漏的,於是,馬上把php.ini中載入該模組的相關語句註釋掉,apahce馬上停止了罷工,開足馬力跑了起來,不容易啊。
其實,之前在找問題所在的時候也看到有類似的同志在部落格上寫到是缺少某些模組造成的,但是我按照上面所說的到c:\Windows\Temp\php-errors.log 中找相關報錯資訊時,卻發現檔案是空的,什麼也沒有,不像他說的那樣會直接把錯誤在日誌中打出來,於是我以為他與我遇到的問題不一樣,到最後才發現,我們所遇到的問題在根本上來說是一樣的,只不過可能由於版本或其他的原因,使得他所使用的排錯方式在我這邊卻行不通,才造成了我的誤解。
如果以後有類似的問題,可以直接先檢視apache日誌,再檢視php錯誤日誌,如果遇到我這種php錯誤日誌是空的情況,可以在控制檯中執行apache,看是否有出現相關提示,不一定是如我這種缺少mssql模組的,也有可能是缺少其他模組的,找出原因之後,修改php.ini中的相關設定,這樣,問題就能基本解決。
今天又學到了一點,積累啊!