5

我已经在开发机器(Windows 7 机器)上升级到 PHP 5.3。

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 如图 从 phpinfo 页面转储

加载的配置文件为 5.3正确加载了正确的 php.ini 文件配置文件 (php.ini) 路径错误地显示为:C:\Windows - 我没有在上述路径上安装 PHP。然而,我已经对该文件中的 PHP 文件夹和文件进行了递归搜索,但搜索结果一无所获。

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

除了删除 PHP 文件夹并从头开始(我已经这样做了),并确保 Apache 使用 PHPINIDir 指向正确的 PHP 目录之外,我还能做些什么来解决这个问题?谢谢。

4

2 回答 2

6

你好

您还应该更新 apache php 模块


@soju - 修复了它,谢谢,但我想我会让其他人更清楚一点。

Apache 需要 php 模块来提供 php 文件。在 Windows 上,它以 .dll 文件的形式出现。这将被称为:php5apache2_2.dll - 位于您的 php 文件夹中。奇怪的是,在将 php 文件夹升级为较新版本的过程中,您可能会发现 apache 仍然使用旧的 php 模块文件。因此,虽然 php -v 正确报告了新版本,但 Apache 仍然查看旧的 php 模块(由 phpinfo 报告)。要找出您拥有的模块版本,您可以:右键单击 .dll 文件 > 选择属性 -> 查看详细信息选项卡。或者只是将鼠标悬停在文件上。

php5apache.dll 文件的详细信息屏幕

如果此版本不是您想要的,您可能需要寻找更新的版本并替换它。好主意先备份。此外,php5apache.dll 文件适用于并需要以下文件:php5ts.dll - 因此请确保这些文件的版本相同。

使用带有指令的 httpd.conf 文件:

LoadModule php5_module "\path to\php5apache2_2.dll"

您可以重新启动 apache 并微笑!

于 2011-02-14T13:14:05.393 回答
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 也可以节省。

于 2011-02-14T13:24:16.140 回答