尝试使用 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并启用扩展的加载。