【发布时间】:2010-01-20 08:03:46
【问题描述】:
我正在运行一个经过调整的网络邮件应用程序。但是,由于某种原因,未加载 openssl 扩展。我在 php.ini 中启用了它,但是当我运行我的应用程序并使用 get_loaded_extensions 检查加载的扩展时,openssl 不在加载的扩展数组中。这里有什么问题? php_openssl.dll 物理上就在那里——我正在运行一个 wampserver,它看起来还不错。但是在执行端它不起作用。
【问题讨论】:
我正在运行一个经过调整的网络邮件应用程序。但是,由于某种原因,未加载 openssl 扩展。我在 php.ini 中启用了它,但是当我运行我的应用程序并使用 get_loaded_extensions 检查加载的扩展时,openssl 不在加载的扩展数组中。这里有什么问题? php_openssl.dll 物理上就在那里——我正在运行一个 wampserver,它看起来还不错。但是在执行端它不起作用。
【问题讨论】:
根据 php_openssl.dll 的构建/链接方式,它取决于 libeay32.dll 和/或 ssleay32.dll。 Windows 必须能够(也)将这两个 .dll 加载到运行 php 的进程中,以使 php_openssl.dll 可用/正常运行。
由于 windows 在可执行文件的目录中搜索 .dll(以及其他位置),请尝试将 libeay32.dll 和 ssleay32.dll 放在 apache/bin 目录(httpd.exe 所在的位置)并重新启动网络服务器。
另请参阅:Dynamic-Link Library Search Order
和How to use Dependency Walker
【讨论】:
您是否尝试过重新启动您的 apache 服务器?
DLL 在正确的位置吗?
【讨论】:
这可能会对您有所帮助。复制windows和windows/system32文件夹中的dll文件,然后重启Apache服务器。
【讨论】: