Em um servidor Debian, e depois da instalação e remoção do SquirrelMail (com algum downgrade e upgrade do php5, mysql ...) a extensão MySQL do PHP parou de funcionar.
Eu tenho o php5-mysql instalado, e quando tento me conectar a um banco de dados através do php-cli, eu me conecto com sucesso, mas quando eu tento conectar de uma web servida pelo Apache eu não consigo conectar.
Este script, executado pelo php5-cli:
echo phpinfo();
$link = mysql_connect('localhost', 'user, 'password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
Imprime o phpinfo, que inclui "/etc/php5/cli/conf.d/mysql.ini", e também a seção MySQL com toda a configuração: SOCKET, LIBS ... E então ele imprime "Conecta com sucesso" .
Mas quando executado pelo apache acessado pelo navegador da web, ele exibe o phpinfo, que inclui "/etc/php5/apache2/conf.d/mysql.ini", mas a seção MySQL está faltando, e o script morre imprimindo " Erro fatal: Chame a função indefinida mysql_connect () ".
Note que tanto "/etc/php5/cli/conf.d/mysql.ini" e "/etc/php5/apache2/conf.d/mysql.ini" são na verdade a mesma configuração, porque eu tenho debian a estrutura:
/etc/php5/apache2
/etc/php5/cgi
/etc/php5/cli
/etc/php5/conf.d
E ambos apontam para o mesmo diretório:
/etc/php5/apache2/conf.d -> ../conf.d
/etc/php5/cli -> ../conf.d
Onde /etc/php5/conf.d/mysql.ini consiste em uma linha:
extension=mysql.so
Então, minha pergunta é: por que a extensão do MySQL para PHP não funciona se eu tiver a configuração incluída da mesma maneira que no php-cli, o que está funcionando?
Muito obrigado!