Inicialização PHP: Não é possível carregar a biblioteca dinâmica '/usr/lib/php/20151012/php_openssl.dll'

0

Eu tenho o Ubuntu 14.04., o PHP 7 e o nginx.

Eu quero usar o mysql ssl, então eu habilitei removendo ";" na frente da extensão = php_openssl.dll em

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

Serviços de php e nginx reiniciados. Agora estou com erro:

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

O arquivo "/usr/lib/php/20151012/php_openssl.dll" realmente não existe.

Script php com o qual estou tentando conectar no 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);

Permissões em todos os arquivos certificados estão ok, testadas com 644, 664, 777.

Tentou executar o script pelo navegador e pelo console.

Onde posso encontrar o pacote que está faltando?

Obrigado

UPDATE 1: Se eu comentar de volta "extension = php_openssl.dll" em arquivos php.ini, eu recebo outro erro:

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

phpinfo:

    
por iWizard 18.07.2016 / 13:55

2 respostas

0

Se você estiver usando o mysql ssl não use localhost, use o endereço IP do servidor para o host do banco de dados.

    
por iWizard 08.08.2016 / 12:53
3

Bibliotecas de vínculo dinâmico (DLLs) são uma tecnologia específica do Windows e não funcionam no Ubuntu. Como o PHP pode ser executado em sistemas operacionais diferentes, seus arquivos de configuração contêm exemplos de como configurá-lo em sistemas operacionais diferentes:

;;;;;;;;;;;;;;;;;;;;;;
; 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

Normalmente, a versão Linux do PHP já vem com suporte SSL embutido, em contraste com o Windows, onde você precisa da DLL que você mencionou. Mas você parece usar uma compilação de terceiros do PHP 7 (talvez um do PPA?), Porque o Ubuntu 14.04 vem com o PHP 5 por padrão. Portanto, essa compilação de terceiros pode lidar com o SSL de maneira diferente.

    
por Henning Kockerbeck 18.07.2016 / 14:10