我在我的机器上下载了以下内容
来自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时它会抱怨。
有人有任何建议吗?
答案 0 :(得分:0)
这就是我解决它的方式。
我认为我必须在php.ini文件中切换某些内容的值。我拿了windows php安装程序,运行它,让它覆盖现有的php.ini文件。
之后,我使用了压缩版本的php并将其删除以替换Windows安装程序版本,但我保存了php.ini文件。之后它运作良好,没有问题。