我已将 php 添加为 Apache 2.2.11 的模块:

LoadModule php5_module "c:/php/php5apache2_2.dll"

并且还添加了

AddType application/x-httpd-php .php

在 PHP.ini 中,我的扩展目录设置为: extension_dir = "C:\php\ext"

是的, ,目录正确并且所有文件确实存在。

但是当我启动 apache 时,出现以下错误:

PHP 警告:PHP 启动:无法加载动态库 'C:\php\ext\php_mysql.dll' - 找不到指定的模块。 在第 0 行的未知中
PHP 警告:PHP 启动:无法加载动态库 'C:\php\ext\php_pdo_pgsql.dll' - 找不到指定的模块。 在第 0 行的未知中
PHP 警告:PHP 启动:无法加载动态库 'C:\php\ext\php_pgsql.dll' - 找不到指定的模块。 在第 0 行的未知中

[Sun May 17 03:46:01 2009] [通知] Apache/2.2.11 (Win32) PHP/5.2.9-2 已配置 -- 恢复正常操作
[Sun May 17 03:46:01 2009] [通知] 服务器建成:2008 年 12 月 10 日 00:10:06
[Sun May 17 03:46:01 2009] [通知] 家长:创建子进程 4652

PHP 警告:PHP 启动:无法加载动态库 'C:\php\ext\php_mysql.dll' - 找不到指定的模块。 在第 0 行的未知中
PHP 警告:PHP 启动:无法加载动态库 'C:\php\ext\php_pdo_pgsql.dll' - 找不到指定的模块。 在第 0 行的未知中
PHP 警告:PHP 启动:无法加载动态库 'C:\php\ext\php_pgsql.dll' - 找不到指定的模块。 在第 0 行的未知中

[Sun May 17 03:46:01 2009] [通知] 儿童 4652:子进程正在运行
[Sun May 17 03:46:01 2009] [通知] 儿童 4652:获取启动互斥体。
[Sun May 17 03:46:01 2009] [通知] 儿童 4652:启动 64 个工作线程。
[Sun May 17 03:46:01 2009] [通知] 儿童 4652:启动线程侦听端口 80。

所以我可能在这里忘记了一些简单的事情,有人可以告诉我我忘记了什么吗?

有帮助吗?

解决方案

为了向 PHP 添加 MySQL 和 PostgreSQL 支持,您不仅需要 PHP 扩展的 DLL。您还需要 MySQL 和 PostgreSQL 本机库。PHP 扩展的 DLL 可能找不到它们所依赖的某些 DLL,因此无法启动。

确保您安装了 MySQL 和 PostgreSQL 客户端,并将它们的 DLL 放置在某个可定位的位置。

IE。例子:

  • php_mysql.dll 依赖于 libmysql.dll

因此,请确保 PHP 能够找到 libmysql.dll(我相信这个是 Windows PHP 的二进制发行版附带的。但不确定)。

其他提示

要添加到巴勃罗圣克鲁斯的建议。在Windows中可以包括在PATH环境所需的库。 (没有必要复制到Windows文件夹)。当加载库寡妇看起来PATH目录以及

如果使用标准的Win32二进制分发从php.net为PHP5.2,则包应包含在包的根所有的依赖关系。所以,如果你已经安装了PHP5.2到C:\php,这个目录添加到PATH ENVAR。重新启动Apache和我期望扩展到正常加载。

我有一个问题,PHP在Windows的特定版本。问题是的libmysql。我发现从有同样的问题有人在php.net网站发布的错误。

我使用的以前的PHP释放和工作的libmysql。看看你使用PHP发行票据。我认为,一个特定的版本后,他们提到有关的libmysql的新政策。

从你提什么PHP是无法找到的扩展。确保您已设置指定了扩展位于php.ini中的路径,即扩展存在,并且该文件夹可以被访问(读取权限)。

如果所有的失败尝试,努力扩展迁移到Windows / SYSTEM32找到什么可能是真正的问题。

此致

的那些扩展取决于其通过的MySQL和PostgreSQL二进制分发提供的本地库。安装它们,把库中的apache的bin文件夹的例子。这些分别是LIBMYSQL.DLLLIBPQ.DLL

我通常做的,而不是污染Windows/System32文件夹和他们在一起,因为我的系统只在Apache / PHP是这些数据库的客户端,也这让我的Apache / PHP的设置更加便于携带。

在我的经验,PHP在Windows上是在后面的一个重大的痛苦。我通常会得到它最终会工作,但总有涉及很多谷歌上搜索和试错的 - 至少对我来说

于是,我终于厌倦了它,只是安装Ubuntu服务器在虚拟机上,把它并在几分钟内运行。这是否是一个选择或不,我不能说,但如果是它肯定会为你节省很多头痛的,从长远来看。更何况,你可以随时移动你的虚拟机,创建快照和做所有其他花哨的东西,虚拟机是良好的。

我有同样的问题。我得到那些烦人的弹出窗口的错误之一,每次我尝试登录到phpMyAdmin。我在用户名和密码输入,然后将引发的误差。

什么解决了这个问题对我来说,也被复制libmysql.dl到apache的bin目录。奇怪的是apparantly其中包括正确的,但仍然需要我这样做的扩展。

我尝试了其中的几种解决方案,其中一个或多个有效......重新启动是这里的关键。在这些更改之间我没有重新启动,但重新启动后它可以工作:

  • 将 postgres DLL 添加到 apache lib 目录
  • 将 postgres 路径添加到系统 PATH
  • 将 postgres DLL 添加到 system32

我相信仅路径就可以工作,但这里没有时间清洁,所以就这样吧。

这里的问题是,阿帕奇加载PHP,但PHP是无法加载其扩展名(MySQL和PostgreSQL,...)。 我想你应该在UNIX格式(请勿使用反斜杠字符作为目录分隔符)你的php.ini文件中输入路径值。所以在php.ini文件中更改此:

的extension_dir = “C:/ PHP / EXT”

我也有同样的问题,并通过添加解决“PostgreSQL的” bin路径到系统环境变量

路径:C:\ Program Files文件\的PostgreSQL \ 8.4 \ BIN 可以在检查的phpinfo()也

当我安装PostgreSQL,设定成系统路径错过。我手动添加然后重新启动系统。

我有这个问题太,并抄送相关(.DLL文件),以SYSTEN 32和它仍然没有为我工作。我运行Windows 7 64位。为了得到这个工作对我来说,我不得不在同样的libmysql.dll复制到ext目录。该错误消息离开Apache日志并装载有具有良好的反应(连接如建立)。

的页面

我有同样的问题,并试图将libmysql.dll拷贝到apache的bin文件夹,它解决了这个问题(我设置PHP 5.2.5 64位)。 非常感谢。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top