web-dev-qa-db-fra.com

Wordpress avec php5-fpm et nginx

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
1
Kzqai

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.

1
Kzqai