2011-02-14 114 views
4

我已經在開發機器上升級到PHP 5.3(Windows 7盒子)。報告不同PHP版本的問題

PHP-V示出了

PHP 5.3.3 (cli) (built: Jul 21 2010 20:36:55) 
Copyright (c) 1997-2010 The PHP Group 
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies 

然而,phpinfo.php的示出了機上的版本:5.2.14如圖 dump from phpinfo page

加載的配置文件正確載荷的正確php.ini文件爲5.3 配置文件(php.ini)路徑錯誤讀取:C:\ Windows - 我沒有在上述路徑上安裝PHP。然而,我已經對該文件中的PHP文件夾和文件進行了遞歸搜索,但搜索沒有任何結果。

應用程序似乎使用phpinfo報告的設置,而不是php -v或php -m或php -i(或其他)。

除了刪除PHP文件夾並從頭開始(我已經完成),並確保Apache使用PHPINIDir指向正確的PHP目錄文件,我可以做些什麼來解決這個問題?謝謝。

回答

5

你好

你也應該更新配置Apache的PHP模塊


@soju - 即固定它,謝謝,但我想我會爲別人這一點更清晰。

Apache需要php模塊來提供php文件。在Windows上它來作爲一個.dll文件。這將被稱爲:php5apache2_2.dll - 位於您的PHP文件夾。奇怪的是,在升級php文件夾的更新版本時,你可能會發現apache仍然使用舊的php模塊文件。因此,雖然php -v正確地報告了新版本,但Apache仍然會查看舊的php模塊(由phpinfo報告)。要找出您擁有的模塊版本,您可以:右鍵單擊.dll文件>選擇屬性 - >查看詳細信息選項卡。或者只是懸停在文件上。

details screen of php5apache.dll file

如果此版本是不是你想要的,你可能需要找一個新的版本,並替換它。好主意先備份。此外,php5apache.dll文件與並需要文件:php5ts.dll - 所以確保這些文件是相同的版本。

與指令httpd.conf文件:

LoadModule php5_module "\path to\php5apache2_2.dll" 

您可以重新啓動Apache和微笑!

+0

在你的httpd.conf中看到類似於「LoadModule php5_module C:\ path \ to \ php.dll」的行。 – rik 2011-02-14 13:15:59

+0

謝謝,如果你的意思是通過更新Apache的php模塊是@rik說的話,那麼這行代碼就是:LoadModule php5_module「C:/applications/php/php5apache2_2.dll」 - 正確指向dll文件。 – 2011-02-14 13:26:29

1

您的命令行(CLI)php是除Apache以外的其他版本。檢查兩個使用相同的php.ini。當你打電話給你的Windows機器

c:\path\to\php\php.exe -v 

c:\path\to\php\php-win.exe -v 

c:\path\to\php\php-cli.exe -v 

上他們都可以返回不同的版本。當升級到新的WAMP版本並忘記刪除舊版本時,通常會發生這種情況。我相信你會找到匹配相同版本的可執行PHP二進制文件。在Windows上使用php.exe或php-win.exe代替php-cli.exe也是省力的。