PHP加载模块,但Apache Start说没有 - LDAP

时间:2011-12-08 22:50:10

标签: php apache

我在我的机器上下载了以下内容

来自apachelounge的pache apache2.2.21

来自php.net的php 5.3.8线程安全压缩

Windows 7

我已将它们解压缩到计算机上的某个路径。我们称之为$ HOME。

所以我有$ HOME / apach2和$ HOME / php。

我已经成功地显示了phpinfo()页面,甚至安装了xdebug扩展,以便在netbeans中进行调试。

我的问题如下:

我在php.ini中取消注释'extension = php_ldap.dll',因为我需要ldap连接。

我将启动apache,显示器显示apache正在运行。然后我导航到我的index.php,但是发生错误,说ldap_connect不存在。

当我在命令行输入'php --rf ldap_connect'时,我得到函数原型没问题。

我甚至编写了一个PHP脚本,它将使用ldap扩展来执行ldap搜索。


$conn = ldap_connect( 'ldap://myhostsomewhere', 389 );

ldap_set_option( $conn, LDAP_OPT_PROTOCOL_VERSION, 3 );

ldap_bind( $conn, 'cn=admin,dc=emc,dc=com', 'secret' );


$rs = ldap_search( $conn, 'cn=jerry,ou=people,dc=example,dc=com', '(cn=jerry)');


$stuff = ldap_get_entries( $conn, $rs );


var_dump( $stuff );

上面的代码将返回一个包含所有结果的数组,我没有错误。

但是当我检查Apache错误日志时,我收到以下错误,

PHP警告:PHP启动:无法加载动态库'C:/Users/jerry/Documents/myprogs/php/ext/php_ldap.dll' - 找不到指定的模块。\ r \ n在Unknown on第0行。

我已经进行了双重检查和三重检查,目录就在那里,但是当apache尝试运行php时,它都没有加载。但是当我通过命令行运行PHP时,它加载正常。

我查看了phpinfo(),apache也正在加载正确的php.ini文件。

我不知道会发生什么。

奇怪的是,通常像这样的php错误可能会导致apache停止并导致某种错误。虽然这是一个PHP警告,并且apache启动很好但是当我尝试调用ldap_connect时它会抱怨。

有人有任何建议吗?

1 个答案:

答案 0 :(得分:0)

这就是我解决它的方式。

我认为我必须在php.ini文件中切换某些内容的值。我拿了windows php安装程序,运行它,让它覆盖现有的php.ini文件。

之后,我使用了压缩版本的php并将其删除以替换Windows安装程序版本,但我保存了php.ini文件。之后它运作良好,没有问题。