Fedora 25へアップグレードしたら PHP が 7.0 になって、いろいろとハマった件

By | 2017年7月20日 , Last update: 2019年2月16日

はじめに

自宅サーバでFedora 24から25へのアップグレードをしてみたところ、大きな問題が起こらなかったので、調子に乗ってWordpressが入っているサーバ(このサイトではないです。仮にこの記事では「Wordpressサーバ」と呼ぶことにします。)をFedora 25にアップグレードしてみたところ、PHPが7.0になってしまい、いろいろとハマったので、別記事を立てて書いていくことにしました。

スポンサーリンク

PHPのバージョンは…

本題に入る前にPHPのバージョンを調べてみました。以下の通りです。

PHP 7.0.21 (cli) (built: Jul 5 2017 12:15:55) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

 

MariaDBのSSL接続の設定の変更

このWordpressサーバ自体ではデータベースサーバは稼働しておらず、別のMariaDBのサーバにSSL接続しているのですが、Fedora 25にアップグレードした後に、WordpressサーバのトップページのURLにアクセスしたところ、無情にも、

データベース接続確立エラー

とブラウザに表示されてしまいました。

「これはヤバいぞ…」と思いつつ、ぐぐってみると、こんなページを見つけたので、wp-config.phpの

define(‘MYSQL_CLIENT_FLAGS’, MYSQL_CLIENT_SSL);

 

となっている部分を

define(‘MYSQL_CLIENT_FLAGS’, MYSQLI_CLIENT_SSL);

 

と変更してみました。MYSQL_CLIENT_SSLの代わりにMYSQLI_CLIENT_SSLと設定してみたわけです。これで、再度トップページにアクセスしてみたところ、「データベース接続確立エラー」とは表示されなくなったものの、今度はHTTPステータスコード500が返されてしまいました。

エラーが発生するWordpressプラグインの削除

次はapache httpdのログを見てみます。すると、spam-byebyeプラグインの初期化に失敗している旨のメッセージが出力されていました。そこで、ここでいったん落ち着いて、spam-byebyeプラグインのディレクトリをWordpressからは読めないところにいったん移動してから、もう一度トップページにアクセスしてみたところ、無事トップページが正常に表示されました。

(以下、2017/07/22補足)

…と思っていたのですが、


スポンサーリンク

WordPressサーバで運用しているブログの記事だけが表示されていなかったので、再度apache httpdのログを見てみました。すると、Ktai styleプラグインの実行時に、

「preg_replace関数の’/e’オプションはもうサポートされてないからpreg_replace_callback関数に置き換えな。」

っていうエラーが出力されていました。

実は、Ktai styleプラグインはもう使っていなかったので、spam-byebyeと同様に、Ktai styleプラグインのディレクトリをWordpressからは読めないところにいったん移動してから、もう一度トップページにアクセスしてみたところ、今度は記事も正常に表示されました。

MediaWikiのExtensionの更新+α

以下のようなメッセージがapache httpdのerror_logに出力されるので、それらに対する対応を行いました。

MediaWikiのExtensionの更新

最初は、以下のメッセージへの対応です。

[Wed Jul 26 22:33:01.495072 2017] [php7:warn] [pid 1359] [client 192.168.0.1:44294] PHP Warning: Parameter 1 to GraphViz::onOutputPageParserOutput() expected to be a reference, value given in /usr/share/mediawiki/includes/Hooks.php on line 195, (以下省略)

 

これは、以下の手順でMediaWikiのExtensionを更新すると、Warningが表示されなくなります。

  1. 以下のコマンドを実行し、composer.pharをダウンロードする。
    wget https://getcomposer.org/composer.phar
  2. MediaWikiのインストールディレクトリ(当該サーバでは/usr/share/mediawikiでした。)でroot以外の権限で以下のコマンドを実行する。
    $ sudo php composer.phar require mediawiki/graph-viz ‘*’

EditPage.phpの修正

次に、以下のメッセージを表示させないようにするための対応を行います。

[Wed Jul 26 23:20:51.140759 2017] [php7:warn] [pid 32670] [client 192.168.0.1:44314] PHP Warning: Parameter 1 to ConfirmEditHooks::showEditFormFields() expected to be a reference, value given in /usr/share/mediawiki/includes/Hooks.php on line 195, (以下省略)

 
これは、EditPage.phpを直接修正することになります。以下のように修正してみました。他にも、ApiBase.phpで同様の修正が必要だったので、修正を行っています。

スポンサーリンク

まとめ

今回のOSアップグレードでspam-byebyeプラグインをいったんアンインストールすることとなりました。今回アップグレードの対象としたWordpressサーバではコメント欄は閉じています。したがって、コメント欄にspamがやってくることはないので、思い切ってアンインストールをしたわけですが、当面の間はこの状態で様子を見ることにしました。

なお、MediaWikiのEditPage.phpへの修正はあくまでも一時的なものです。追加で修正の必要が生じた場合には、別途本記事を修正していきます。

この記事は以上です。