使用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文件不存在于我的服务器上的任何地方。

你提到的这个行的确在Windows机器上激活了openssl PHP-Extension – 尽pipe我怀疑你在Windows上运行的是nginx。

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

 --with-openssl[=DIR] 

或/并build议您的发行包pipe理,以正确地构build扩展。

php_openssl.dll文件不存在于我的服务器上的任何地方

然后你需要安装它(它也需要一个兼容的openSSL安装)。 看到我的水晶球,我看到你在MSWindows上运行 – 你使用PHP打包安装? 如果是的话哪一个?

从php.net的二进制分发包括PHP存根(stub)dll – 如果它不在你的机器上,你可能需要重新安装php。 然后安装openssl并启用加载的扩展。

或者,您可以通过stud / stunnel路由SMTPstream量