Запуск PHP: Не мог загрузить динамическую библиотеку '/usr/lib/php/20151012/php_openssl.dll'

У меня есть человечность 14.04., php 7 и nginx.

Я хочу использовать mysql ssl, таким образом, я включил путем удаления""; перед extension=php_openssl.dll в

/etc/php/7.0/fpm/php.ini 
/etc/php/7.0/cli/php.ini

Перезапущенный php и nginx сервисы. Теперь я получаю ошибку:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_openssl.dll' - /usr/lib/php/20151012/php_openssl.dll: cannot open shared object file: No such file or directory in Unknown on line 0

Файл "/usr/lib/php/20151012/php_openssl.dll" действительно не существует.

Сценарий PHP, с которым я пытаюсь соединиться на mysql ssl:

$con=mysqli_init();
if (!$con){
    die("mysqli_init failed");
}

mysqli_ssl_set($con, "/var/www/certs/client-key.pem","/var/www/certs/client-cert.pem","/var/www/certs/ca-cert.pem",NULL, null);

if (!mysqli_real_connect(
    $con,"localhost","user", 'password',"db", 3306)){
    die("Connect Error: " . mysqli_connect_error());
}
mysqli_close($con);

Полномочия на всех файлах сертификата в порядке, испытанное остроумие 644, 664, 777.

Попробованный для выполнения сценария по браузеру и по консоли.

Где я могу найти недостающий пакет?

Спасибо

ОБНОВЛЕНИЕ 1: Если я комментирую назад "extension=php_openssl.dll" в файлах php.ini затем, я получаю другую ошибку:

PHP Warning:  mysqli_real_connect(): this stream does not support SSL/crypto in /var/www/tmp.php on line 70

phpinfo: enter image description here

0
задан 18 July 2016 в 15:10

2 ответа

Если Вы используете mysql ssl, не используют localhost, используют IP-адрес сервера для хоста базы данных.

0
ответ дан 28 September 2019 в 23:03

Динамически подключаемые библиотеки (DLLs) являются определенной для Windows технологией и не работают над Ubuntu. Поскольку PHP может быть выполнен в различных операционных системах, его конфигурационные файлы содержат примеры для того, как настроить его в различных операционных системах:

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension
;
; For example, on Windows:
;
;   extension=msql.dll
;
; ... or under UNIX:
;
;   extension=msql.so
;
; ... or with a path:
;
;   extension=/path/to/extension/msql.so

Обычно, сборка Linux PHP уже идет со встроенной поддержкой SSL, в отличие от сборки Windows, где Вам нужен DLL, Вы упомянули. Но Вы, кажется, используете стороннюю сборку PHP 7 (возможно, от PPA?), потому что Ubuntu 14.04 идет с PHP 5 по умолчанию. Таким образом, эта сторонняя сборка могла бы обработать SSL по-другому.

3
ответ дан 28 September 2019 в 23:03

Другие вопросы по тегам:

Похожие вопросы: