エラーメッセージ
Fedora25にアップグレードして久々にWordPressを鯖設定するというか設定済なので
localのWordPressを開くと、
以下のように言われました。
他サイトさまの解決方法
エラーメッセージだけで判断するとFedoraだからPHPのバージョンが新しいすぎるのかなあと思ったのですが
ググった限りではPHP 7系統でも動いている様子。
当然次にやることはこのエラーメッセージでググることですね。
ぐぐるとまあ、出てくるわ出てくるわ色んなサイトがひっかっかります。よくある問題みたいです。
大きくは、2つのことが原因のようです。
- MySQLのPHP拡張が入っていない。
- /etc/php.iniファイルの の設定が不十分。
対策
答えを最初に書くと、/etc/php.iniが古くなっていたのか、php.iniファイルを一旦削除してphp-commonパッケージを再インストールしたら直りました。 コマンドで書くと、
sudo rm /etc/php.ini sudo dnf reinstall php-common
sudo systemctl restart httpd
とすれば直りました。
詳細
以下これより先はことの顛末を記述しています。
とりあえず、MySQLのPHPが拡張が入ってないかどうかはパッケージがインストールされてるかどうかですね。
そこで、以下のコマンドを実行して入っているか確認します。
rpm -q php-mysql
とすると
パッケージ php-mysql はインストールされていません。
と言われました。 あれ?入ってないのおかしいなあということでもう少し広めにパッケージデータベースを検索してみます。
rpm -qa|grep php-mysql
としてみると
php-mysqlnd-7.0.14-1.fc25.x86_64
と返ってきました。パッケージ名が変わったんですかね。
それでは、/etc/php.iniの設定がおかしいのかなあと変更してみます。 /etc/php.iniファイルをsudoで開いて
;extension=msql.so
の;を削除してコメントアウトを外します。つまり以下のようにします。
extension=msql.so
に書き直します。そして設定変えたのでhttpdサービスを再起動します。
sudo systemctl restart httpd
としてwordpressを開いてみてもエラーメッセージは変わらず…
そして、
php -m | grep mysql
してみても何も返事がなく…
ここで、ではwordpressのバージョンが古いのかなと考え今あるディレクトリをリネームして新しいバージョンを落としてきます。
wordpress Latestをダウンロードして/var/www/htmlに展開します。
が、結果変わらず。
php -m
してみると、なんと
PHP Warning: PHP Startup: Unable to load dynamic library './zip.so' - ./zip.so: cannot open shared object file: No such file or directory in Unknown on line 0
とズラズラーッとWarningが出るではありませんか。
確かに/etc/php.iniファイルを弄ったのに変化ないし、弄ってなくてもタイトル通りのエラーが出ていたのでひょっとして/etc/php.iniファイルが壊れてるのかと思い、
sudo rm /etc/php.ini sudo dnf reinstall php-common
してみました。パッケージ名がphp-commonとわかったのは
sudo dnf provides /etc/php.ini
としてphp.initの在り処がphp-commonと表示されたからです。
php -m |grep mysql
を再度実行してみると
mysqli mysqlnd
と表示され、エラーもなくなりました。
早速httpdを再起動させるとエラーメッセージなくWordPressのインストール画面が!!
無事解決してなによりです。 実はこれ以外にも一度データベースを削除しないといけなくなったりしましたが、 これは別記事にする予定。
参考: お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。 KUJIRA NOTE
コメント