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