it-swarm.com.de

Wordpress mit PHP5-FPM und Nginx

Ich versuche, eine Installation von WordPress mit php5-fpm und nginx mit einer Datenbank auf einem Remote-Server abzuschließen. Allerdings erkennt WordPress die Existenz von MySQL nicht, damit ich eine Verbindung zur entfernten Datenbank herstellen kann.

Code, um zu überprüfen, ob die mysql-Erweiterung von PHP geladen ist, sagt, dass die Erweiterung nicht geladen ist:

<?php
var_dump(extension_loaded('mysql'));
mysql_connect();

Ergebnisse in:

bool(false)
PHP message: PHP Fatal error:  Call to undefined function mysql_connect() in /path/www/check.php on line 3

Dennoch scheint überall darauf hinzudeuten, dass die Teile, die notwendig sein sollten (php5-fpm, php5-mysql, mysql-client, wordpress), gerade vorhanden sind Auf dem lokalen Server muss -NOT- mysql-server ausgeführt werden, da dieser sich auf dem Remote-Server befindet.

Nach was sollte ich also suchen, um zu versuchen, die extension_loaded ('mysql') zusammen mit allem anderen in den richtigen Zustand zu versetzen?


Die Ausgabe der verschiedenen installierten Abhängigkeiten sieht wie folgt aus:

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 ist ebenfalls installiert.

Meine WordPress-Version:

 wp core version --extra
WordPress version: 4.1.1
Database revision: 30133
TinyMCE version:   4.107 (4107-20150118)

PHP5-Version:

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

Die php5-fpm Konfiguration

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, mein Problem ergab sich aus einem Problem mit php5-fpm. Im Wesentlichen gab es PHP5-FPM-Dienste, die "alt" waren, und als ich versuchte, über das Web auf MySQL zuzugreifen, wurde dies nicht erkannt. Aber als ich versuchte, über CLI darauf zuzugreifen, wurde es erkannt. Das hat es für mich auf php5-fpm reduziert, und dann musste ich Folgendes tun:

Sudo killall php5-fpm
Sudo service php5-fpm start

Und voila, die Webseite hat angefangen, MySQL zu erkennen.

Ich bin mir immer noch nicht sicher, was genau zu einem PHP-FPM-Prozess geführt hat, dessen Neustart dem Dienst nicht bekannt war, aber es ist etwas zu beachten.

1
Kzqai