J'essaye de terminer une installation de wordpress en utilisant php5-fpm et nginx, avec une base de données sur un serveur distant. Cependant, wordpress ne reconnaît pas l'existence de mysql pour me permettre de me connecter à la base de données distante.
Code pour vérifier si l'extension mysql est chargée, depuis php, indique que l'extension n'est pas chargée:
<?php
var_dump(extension_loaded('mysql'));
mysql_connect();
Résulte en:
bool(false)
PHP message: PHP Fatal error: Call to undefined function mysql_connect() in /path/www/check.php on line 3
Pourtant, partout semble indiquer que les éléments qui devraient être nécessaires (php5-fpm, php5-mysql, mysql-client, wordpress) sont en place, juste le serveur local ne fonctionne pas forcément avec mysql-server car il se trouve sur le serveur distant.
Que dois-je donc rechercher pour que l'extension_loaded ('mysql') soit dans le bon état, avec tout le reste?
La sortie des différentes dépendances installées suit ci-dessous:
apt-cache policy mysql-client
mysql-client:
Installed: 5.5.43-0ubuntu0.14.04.1
Candidate: 5.5.43-0ubuntu0.14.04.1
Version table:
*** 5.5.43-0ubuntu0.14.04.1 0
500 http://mirror.rackspace.com/ubuntu/ trusty-updates/main AMD64 Packages
500 http://mirror.rackspace.com/ubuntu/ trusty-security/main AMD64 Packages
100 /var/lib/dpkg/status
5.5.35+dfsg-1ubuntu1 0
500 http://mirror.rackspace.com/ubuntu/ trusty/main AMD64 Packages
apt-cache policy mysql-server
mysql-server:
Installed: (none)
Candidate: 5.5.43-0ubuntu0.14.04.1
Version table:
5.5.43-0ubuntu0.14.04.1 0
500 http://mirror.rackspace.com/ubuntu/ trusty-updates/main AMD64 Packages
500 http://mirror.rackspace.com/ubuntu/ trusty-security/main AMD64 Packages
5.5.35+dfsg-1ubuntu1 0
500 http://mirror.rackspace.com/ubuntu/ trusty/main AMD64 Packages
php5-mysql est également installé.
Ma version wordpress:
wp core version --extra
WordPress version: 4.1.1
Database revision: 30133
TinyMCE version: 4.107 (4107-20150118)
Version php5:
php --version
PHP 5.5.9-1ubuntu4.9 (cli) (built: Apr 17 2015 11:44:57)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
La configuration php5-fpm
php5-fpm -i | grep mysql
/etc/php5/fpm/conf.d/20-mysql.ini,
/etc/php5/fpm/conf.d/20-mysqli.ini,
/etc/php5/fpm/conf.d/20-pdo_mysql.ini,
mysql
MYSQL_SOCKET => /var/run/mysqld/mysqld.sock
MYSQL_INCLUDE => -I/usr/include/mysql
MYSQL_LIBS => -L/usr/lib/x86_64-linux-gnu -lmysqlclient_r
mysql.allow_local_infile => On => On
mysql.allow_persistent => On => On
mysql.connect_timeout => 60 => 60
mysql.default_Host => no value => no value
mysql.default_password => no value => no value
mysql.default_port => no value => no value
mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock
mysql.default_user => no value => no value
mysql.max_links => Unlimited => Unlimited
mysql.max_persistent => Unlimited => Unlimited
mysql.trace_mode => Off => Off
mysqli
MYSQLI_SOCKET => /var/run/mysqld/mysqld.sock
mysqli.allow_local_infile => On => On
mysqli.allow_persistent => On => On
mysqli.default_Host => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_pw => no value => no value
mysqli.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock
mysqli.default_user => no value => no value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.reconnect => Off => Off
PDO drivers => mysql, pgsql
pdo_mysql
pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock
Ah, mon problème a fini par provenir d'un problème avec php5-fpm. En fait, certains services php5-fpm fonctionnant étaient "anciens" et, par conséquent, lorsque j'ai essayé d'accéder à mysql à partir du Web, ils n'ont pas été détectés. Mais quand j'ai essayé d'y accéder via cli, cela a été détecté. Cela l'a réduit à php5-fpm pour moi, et ensuite je devais faire:
Sudo killall php5-fpm
Sudo service php5-fpm start
Et voila, le côté web a commencé à reconnaître mysql!
Je ne suis toujours pas sûr de ce qui a conduit à un processus php-fpm dont le service n'a pas connaissance pour redémarrer, mais c'est une chose à surveiller.