Windows 上的 PHP 5.3.2 升级

Windows 上的 PHP 5.3.2 升级

我有一个运行 Windows XP、Apache 2.2.15 Mysql 和 PHP 5.2.6 的开发箱

大约一个月前,我将 Apache 更新到了最新版本,一切进展顺利。但将 PHP 升级到最新版本后,却没有取得同样的成功。

我备份了我的 PHP 目录,然后将其删除。使用 Windows Installer 安装了 PHP 5.3.2,作为 Apache 2.2.X 模块安装。我可以看到“Hello World”和 phpinfo(),但无法连接 mysql。我在 php.ini 中取消了对扩展的注释,由于我没有更改 PHP 的目录,所以实际上不必修改 Apache httpd.conf 文件。

不确定我在这里做错了什么。我必须把这件事做好,然后升级 Live Server,所以我想把这件事做好。

我尝试使用网络上的安装指南,但没有成功。任何与此问题相关的信息都非常有用。我还担心其他 PHP 模块可能无法加载,但除了 mysql 无法正常工作之外,我什么也说不出来。

这是 phpinfo() 中显示的内容

mysqlnd
mysqlnd enabled
Version     mysqlnd 5.0.7-dev - 091210 - $Revision: 294543 $
Compression     supported
Command buffer size     4096
Read buffer size    32768
Read timeout    31536000
Collecting statistics   Yes
Collecting memory statistics    No 

尽管 mysql、mysqli 等似乎已经安装,但我不明白如何启用它们。

答案1

由于您收到错误Fatal error: Call to undefined function mysql_connect(),这意味着 PHP 未加载 MySQL 扩展。这是在您的 php.ini 文件中配置的。

要找到 php.ini 文件的位置,请创建一个 php 文件并在其中粘贴以下内容。
<?php phpinfo(); ?>

在页面(靠近顶部)上,您将看到一个标记为加载配置文件。检查已加载的这个文件是否确实是您希望它加载的文件。就我个人而言,我的加载来自C:/php/php.ini,但如果我没记错的话,当我最初设置它时,它试图从中读取C:/Windows/php.ini(不存在),因此对所有内容都使用默认值,其中不包括我想要的一些额外模块。

用您最喜欢的文本编辑器打开该文件,其中应该有几行以 开头的行extension=xxxxx.dll

查看模块列表并检查是否extension=php_mysql.dll列出,并且行的第一个字符不是分号 ( ;)。如果没有列出,只需将其添加到列表中 - 如果行首有分号,请删除分号并保存文件。

您还应该检查 的值extension_dir,并验证文件系统上是否存在此路径。这应该类似于c:/php/ext

一旦您对 php.ini 文件进行了更改,您将需要重新启动 Apache 以便重新读取配置文件。

重新启动 Apache 后,刷新 phpinfo 页面并检查其是否列出了 MySQL 的部分。

您可能还想检查是否C:\php包含在您的 PATH 环境变量中。

如果仍然有问题,请尝试启动命令行并 cd 到 C:\php 并输入php -v。这将输出 PHP 版本,但通常会输出比加载网页时显示的更多的错误消息

相关内容