Назад | Перейти на главную страницу

Включение openssl с помощью PHP / nginx

Я получаю следующую ошибку при попытке подключиться к SMTP + SSL через PHP с помощью nginx + PHP 5,

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.

Строка, о которой вы говорите, действительно активирует PHP-расширение openssl на машинах с Windows, хотя я сомневаюсь, что вы используете nginx в Windows.

extension = openssl.so загружает расширение openssl в мой ящик, вам необходимо, чтобы PHP был скомпилирован с поддержкой openssl:

--with-openssl[=DIR]

или / и посоветуйте Управлению пакетами вашего дистрибутива правильно / правильно построить расширение.

Файл php_openssl.dll не существует на моем сервере

Затем вам необходимо установить его (для этого также требуется совместимая установка openSSL). Вглядываясь в свой хрустальный шар, я вижу, что вы работаете в MSWindows - вы использовали пакетную установку для PHP? Если да, то какой?

Бинарный дистрибутив с php.net включает dll-заглушку php - если ее нет на вашем компьютере, вам может потребоваться переустановить php. затем установить openssl и разрешите загрузку расширения.

В качестве альтернативы вы можете просто направить SMTP-трафик через шпилька/станнель