2011-02-14 76 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也是省力的。