web-dev-qa-db-ja.com

Php5-fpmとnginxを使ったWordpress

私はphp5-fpmとnginxを使って、リモートサーバー上のデータベースでwordpressのインストールを完了しようとしています。しかし、wordpressは私がリモートデータベースに接続することを可能にするためにmysqlの存在を認識しません。

Mysqlエクステンションがロードされているかどうかをチェックするコード(php)は、エクステンションがロードされていないと言います。

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

の結果:

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

それでも、どこにでも必要な必要な部分(php5-fpm、php5-mysql、mysql-client、wordpress)があることを示しているようです。ローカルサーバは、リモートサーバ上にあるため、mysql-serverを実行している必要はありません。

それでは、extension_loaded( 'mysql')が正しい状態になるようにするために、他のすべてのものと一緒に何を探すべきですか?


インストールされているさまざまな依存関係の出力は以下のとおりです。

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もインストールされています。

私のワードプレス版:

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

PHP 5のバージョン

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

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

ああ、私の問題はphp5-fpmの問題から生じていました。本質的には、 "古い"ものとして実行されているphp5-fpmサービスがあったので、私がウェブからmysqlにアクセスしようとしたとき、それは検出されませんでした。しかし、私がcli経由でアクセスしようとしたとき、それは検出されました。それは私のためにphp5-fpmにそれを絞り込んだ、そしてそれから私はしなければならなかった:

Sudo killall php5-fpm
Sudo service php5-fpm start

さて、ウェブ側はmysqlを問題なく認識し始めました。

サービスが再起動を認識していなかったことがphp-fpmプロセスの原因となったことがまだよくわかりませんが、注意が必要です。

1
Kzqai