PHPのバージョンを上げたところ、MySQLに接続できなくなりました。
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
これは非常に単純なケアレスミスによる MySQL モジュールのインストールミスに対する解決策の記事です。
環境
元のサーバーはさくらVPSです。PHP5.4系で WordPress が動いていました。
php -v
PHP 5.4.45 (cli) (built: Sep 30 2015 15:56:06)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
PHP5.4というのは古いので更新したくなりました。
OS を確認します。
cat /etc/redhat-release
CentOS release 6.6 (Final)
CentOS6系のようです。ここからいきなりPHP7にするのは飛び越している感じがしたので、5.6に上げることにしました。
アップデートの手順
参考サイト1を元にPHP5.4系を削除して、5.6系のインストールを実行しました。
sudo yum remove php-*
PHP5.4系が削除されました。
sudo yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
インストールされたのでバージョンを確認します。
php -v
PHP 5.6.34 (cli) (built: Feb 28 2018 10:26:09)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
PHP5.6になっています。問題無さそうです。
httpdを再起動しておきました。
sudo /etc/init.d/httpd restart
WordPressのページを確認します
WordPressのページを確認します。
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
あれなんでしょう。MySQL拡張が読み込まれていなようです。
MySQL 拡張を確認
拡張があるか調べます。
ll /usr/lib64/php/modules/ | grep mysql
でてきません\(^o^)/
インストール時に入っていなかったみたいです。
インストールコマンドを見直すと、php-mysql
がないですね。
php-mysqlnd をインストール
まずは PHP を消してみました。
sudo yum remove php-*
php-mysql
を追加してインストールします。
sudo yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-mysql
略
==============================================================================================================================================================================================================================================
パッケージ アーキテクチャ バージョン リポジトリー 容量
==============================================================================================================================================================================================================================================
インストールしています:
php x86_64 5.6.34-1.el6.remi remi-php56 2.7 M
php-devel x86_64 5.6.34-1.el6.remi remi-php56 1.2 M
php-gd x86_64 5.6.34-1.el6.remi remi-php56 79 k
php-mbstring x86_64 5.6.34-1.el6.remi remi-php56 970 k
php-mcrypt x86_64 5.6.34-1.el6.remi remi-php56 50 k
php-mysqlnd x86_64 5.6.34-1.el6.remi remi-php56 277 k
php-pdo x86_64 5.6.34-1.el6.remi remi-php56 119 k
php-xml x86_64 5.6.34-1.el6.remi remi-php56 221 k
依存性関連でのインストールをします。:
php-cli x86_64 5.6.34-1.el6.remi remi-php56 4.0 M
php-common x86_64 5.6.34-1.el6.remi remi-php56 1.1 M
php-pecl-jsonc x86_64 1.3.10-2.el6.remi.5.6 remi-php56 52 k
php-pecl-jsonc-devel x86_64 1.3.10-2.el6.remi.5.6 remi-php56 31 k
php-pecl-zip x86_64 1.15.2-1.el6.remi.5.6 remi-php56 53 k
トランザクションの要約
==============================================================================================================================================================================================================================================
インストール 13 パッケージ
インストール済み容量: 41 M
これでいいですか? [y/N]
略
前回と比較すると php-mysqlnd
が追加されています。
MySQL拡張を確認します。
ll /usr/lib64/php/modules/ | grep mysql
-rwxr-xr-x 1 root root 49440 2月 28 18:28 2018 mysql.so
-rwxr-xr-x 1 root root 134232 2月 28 18:28 2018 mysqli.so
-rwxr-xr-x 1 root root 276856 2月 28 18:28 2018 mysqlnd.so
-rwxr-xr-x 1 root root 28352 2月 28 18:28 2018 pdo_mysql.so
今度はmysql.so
が入っています。
httpdを再起動します。
sudo /etc/init.d/httpd restart
WordPressを確認
今度は**お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。**という表示がでずに、通常の WordPress の画面が表示されました。
最後に
PHP5.6系も2018年までのサポートということはまた上げなくてはいけないのか(☝ ՞ਊ ՞)