PHP Openssl 未加载为什么?
我正在运行一个经过调整的网络邮件应用程序。但是,由于某种原因,openssl 扩展未加载。我已在 php.ini 中启用它,但是当我运行应用程序并使用 get_loaded_extensions 检查加载的扩展时,openssl 不在加载的扩展数组中。这里有什么问题吗? php_openssl.dll 实际存在 - 我正在运行 wampserver,它看起来不错。但在执行端它不起作用。
I am running a tweaked webmail application. However, for some reason the openssl extension isn't loading. I have enabled it in the php.ini, but when I run my application and check for loaded extensions using get_loaded_extensions, the openssl is not in the array of loaded extensions. What is wrong here? The php_openssl.dll is physically there - I am running a wampserver and it looks ok. But on the execution end it is not working.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据 php_openssl.dll 的构建/链接方式,它取决于 libeay32.dll 和/或 ssleay32.dll。 Windows 必须能够(也)将这两个 .dll 加载到运行 php 的进程中,以使 php_openssl.dll 可用/起作用。
由于 Windows 在可执行文件的目录中搜索 .dll(以及其他位置),请尝试将 libeay32.dll 和 ssleay32.dll 放入 apache/bin 目录(httpd.exe 所在的位置)并重新启动 Web 服务器。
另请参阅:动态链接库搜索顺序
以及如何使用 Dependency Walker
Depending on how php_openssl.dll was built/linked it depends on libeay32.dll and/or ssleay32.dll. Windows must be able to (also) load those two .dlls into the process running php in order to make the php_openssl.dll available/functional.
Since windows searches for .dlls (amongst other places) in the directory of the executable try placing libeay32.dll and ssleay32.dll in the apache/bin directory (where the httpd.exe resides) and restart the webserver.
see also: Dynamic-Link Library Search Order
and How to use Dependency Walker
您是否尝试过重新启动您的 apache 服务器?
DLL 是否位于正确的位置?
Have you tried restarting your apache server?
And is the DLL in the right place?
这可能对你有帮助。复制 windows 和 windows/system32 文件夹中的 dll 文件,然后重新启动 Apache 服务器。
This may help you. Copy dll files in windows and windows/system32 folders and then restart Apache server.