Eu tenho um VPS que veio de uma imagem chamada CentOS 6.4 x64, Nginx, php-fpm e MariaDB .
PHP e MariaDB são ambos instalados, mas parece que o PHP não tem o driver do MySQL instalado. Eu tentei primeiro adicionar
extension=mysql.so
para o meu php.ini
, mas isso me causa o seguinte erro:
Starting php-fpm: [12-Dec-2013 17:23:27] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mysql.so' - /usr/lib64/php/modules/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
Eu tentei yum install php-mysql
, mas recebo o seguinte:
Resolving Dependencies
--> Running transaction check
---> Package php-mysql.x86_64 0:5.4.23-1.el6.remi will be installed
--> Processing Dependency: php-pdo(x86-64) = 5.4.23-1.el6.remi for package: php-mysql-5.4.23-1.el6.remi.x86_64
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: php-mysql-5.4.23-1.el6.remi.x86_64
Package mysql-libs-5.5.35-1.el6.remi.x86_64 is obsoleted by MariaDB-shared-5.5.32-1.i386 which is already installed
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_16)(64bit) for package: php-mysql-5.4.23-1.el6.remi.x86_64
Package mysql-libs-5.5.35-1.el6.remi.x86_64 is obsoleted by MariaDB-shared-5.5.32-1.i386 which is already installed
--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: php-mysql-5.4.23-1.el6.remi.x86_64
Package mysql-libs-5.5.35-1.el6.remi.x86_64 is obsoleted by MariaDB-shared-5.5.32-1.i386 which is already installed
--> Finished Dependency Resolution
Error: Package: php-mysql-5.4.23-1.el6.remi.x86_64 (remi)
Requires: libmysqlclient.so.18()(64bit)
Available: compat-mysql55-5.5.11-1.el6.remi.x86_64 (remi-test)
libmysqlclient.so.18()(64bit)
Available: compat-mysql55-5.5.34-1.el6.remi.x86_64 (remi-test)
libmysqlclient.so.18()(64bit)
Available: mysql-libs-5.5.34-1.el6.remi.x86_64 (remi)
libmysqlclient.so.18()(64bit)
Available: mysql-libs-5.5.35-1.el6.remi.x86_64 (remi)
libmysqlclient.so.18()(64bit)
Available: mysql-libs-5.1.71-1.el6.i686 (base)
Not found
Error: Package: php-mysql-5.4.23-1.el6.remi.x86_64 (remi)
Requires: libmysqlclient.so.18(libmysqlclient_16)(64bit)
Available: compat-mysql55-5.5.11-1.el6.remi.x86_64 (remi-test)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Available: compat-mysql55-5.5.34-1.el6.remi.x86_64 (remi-test)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Available: mysql-libs-5.5.34-1.el6.remi.x86_64 (remi)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Available: mysql-libs-5.5.35-1.el6.remi.x86_64 (remi)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Available: mysql-libs-5.1.71-1.el6.i686 (base)
Not found
Error: Package: php-mysql-5.4.23-1.el6.remi.x86_64 (remi)
Requires: libmysqlclient.so.18(libmysqlclient_18)(64bit)
Available: compat-mysql55-5.5.11-1.el6.remi.x86_64 (remi-test)
libmysqlclient.so.18(libmysqlclient_18)(64bit)
Available: compat-mysql55-5.5.34-1.el6.remi.x86_64 (remi-test)
libmysqlclient.so.18(libmysqlclient_18)(64bit)
Available: mysql-libs-5.5.34-1.el6.remi.x86_64 (remi)
libmysqlclient.so.18(libmysqlclient_18)(64bit)
Available: mysql-libs-5.5.35-1.el6.remi.x86_64 (remi)
libmysqlclient.so.18(libmysqlclient_18)(64bit)
Available: mysql-libs-5.1.71-1.el6.i686 (base)
Not found
Error: Package: php-mysql-5.4.23-1.el6.remi.x86_64 (remi)
Requires: php-pdo(x86-64) = 5.4.23-1.el6.remi
Installed: php-pdo-5.5.0-1.el6.remi.x86_64 (@remi-test)
php-pdo(x86-64) = 5.5.0-1.el6.remi
Available: php-pdo-5.3.3-26.el6.x86_64 (base)
php-pdo(x86-64) = 5.3.3-26.el6
Available: php-pdo-5.3.3-27.el6_5.x86_64 (updates)
php-pdo(x86-64) = 5.3.3-27.el6_5
Available: php-pdo-5.4.22-1.el6.remi.x86_64 (remi)
php-pdo(x86-64) = 5.4.22-1.el6.remi
Available: php-pdo-5.4.23-1.el6.remi.x86_64 (remi)
php-pdo(x86-64) = 5.4.23-1.el6.remi
You could try using --skip-broken to work around the problem
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
2:postfix-2.6.6-2.2.el6_1.x86_64 has missing requires of libmysqlclient.so.16()(64bit)
2:postfix-2.6.6-2.2.el6_1.x86_64 has missing requires of libmysqlclient.so.16(libmysqlclient_16)(64bit)
2:postfix-2.6.6-2.2.el6_1.x86_64 has missing requires of mysql-libs
O que devo fazer? Claro que não quero instalar o MySQL em si, apenas o driver PHP.
Observação: este é um post entre link , mas talvez seja mais adequado aqui do que o StackOverflow
Atualização 1
Após a sugestão de John, tentei yum install php-mysql --disablerepo=remi
.
No entanto, isso ainda me deu mais problemas:
Error: Package: php-mysql-5.3.3-27.el6_5.x86_64 (updates)
Requires: libmysqlclient.so.16(libmysqlclient_16)(64bit)
Available: mysql-libs-5.1.71-1.el6.x86_64 (base)
libmysqlclient.so.16(libmysqlclient_16)(64bit)
Error: Package: php-mysql-5.3.3-27.el6_5.x86_64 (updates)
Requires: libmysqlclient.so.16()(64bit)
Available: mysql-libs-5.1.71-1.el6.x86_64 (base)
libmysqlclient.so.16()(64bit)
Error: Package: php-mysql-5.3.3-27.el6_5.x86_64 (updates)
Requires: php-common(x86-64) = 5.3.3-27.el6_5
Installed: php-common-5.5.0-1.el6.remi.x86_64 (@remi-test)
php-common(x86-64) = 5.5.0-1.el6.remi
Available: php-common-5.3.3-26.el6.x86_64 (base)
php-common(x86-64) = 5.3.3-26.el6
Available: php-common-5.3.3-27.el6_5.x86_64 (updates)
php-common(x86-64) = 5.3.3-27.el6_5
Atualização 2
Se eu tentar yum install php-mysqlnd
, os erros de dependência serão reduzidos:
Error: Package: php-mysqlnd-5.4.23-1.el6.remi.x86_64 (remi)
Requires: php-pdo(x86-64) = 5.4.23-1.el6.remi
Installed: php-pdo-5.5.0-1.el6.remi.x86_64 (@remi-test)
php-pdo(x86-64) = 5.5.0-1.el6.remi
Available: php-pdo-5.3.3-26.el6.x86_64 (base)
php-pdo(x86-64) = 5.3.3-26.el6
Available: php-pdo-5.3.3-27.el6_5.x86_64 (updates)
php-pdo(x86-64) = 5.3.3-27.el6_5
Available: php-pdo-5.4.22-1.el6.remi.x86_64 (remi)
php-pdo(x86-64) = 5.4.22-1.el6.remi
Available: php-pdo-5.4.23-1.el6.remi.x86_64 (remi)
php-pdo(x86-64) = 5.4.23-1.el6.remi
Portanto, tudo o que preciso é encontrar alguma fonte para o php-mysqlnd 5.5 que aparentemente não está disponível em remi-test
. Alguma idéia de onde eu posso encontrar isso? Eu só quero este pacote em particular, então talvez eu devesse apenas baixá-lo e construir a partir do código-fonte?