使用 PHP/nginx 启用 openssl

使用 PHP/nginx 启用 openssl

尝试使用 nginx + PHP 5 通过 PHP 连接到 SMTP + SSL 时出现以下错误,

Could not connect to smtp host 'ssl://smtp.gmail.com' (5) (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?)

在 phpinfo 中我看到:

OpenSSL support     disabled (install ext/openssl) 

这使我相信我错误地安装了 OpenSSL。

我读过很多地方,我应该取消注释以下行:

extension = php_openssl.dll

此行不存在,因此我将其添加到 php.ini 的末尾,但无济于事。php_openssl.dll 文件不存在于我的服务器上的任何地方。

答案1

您提到的行确实在 Windows 机器上激活了 openssl PHP-Extension - 尽管我怀疑您是否在 Windows 上运行 nginx。

extension=openssl.so 在我的 Box 上加载 openssl 扩展,您需要使用 openssl 支持编译 PHP:

--with-openssl[=DIR]

或/并建议您的发行版的包管理完全/正确地构建扩展。

答案2

我的服务器上不存在 php_openssl.dll 文件

然后您需要安装它(它还需要兼容的 openSSL 安装)。透过我的水晶球,我看到您正在 MSWindows 上运行 - 您是否使用了 PHP 的打包安装?如果是,哪一个?

php.net 的二进制发行版包含 php stub dll - 如果您的机器上没有它,您可能需要重新安装 php。然后安装 openssl并启用扩展的加载。

或者,您也可以通过以下方式路由 SMTP 流量螺柱/隧道

相关内容