先日、家族でプールに行ったら日焼け止めを塗り忘れて肌がボロ雑巾のようになってしまった、こーやんです。
今回の記事は、KAGOYA共用サーバでWordPressを利用している方にとって関係がある内容かもしれません。
WordPress5.2.2では、動作要件でPHPバージョン7.3以上、MySQLバージョン5.6以上が推奨となりました。これまではPHPバージョン5系も要件範囲にありましたが、ついに非推奨となりました。
そこで、PHPバージョンを7系へ変更したのですが、その時に発生した不具合とその対処方法についてまとめました。
ちなみにPHP5と7では処理速度が2倍になるそうなので、SEO的にもやるべきと考えています。
KAGOYAサーバでPHPバージョン変更
僕が複数運用しているサイトの中でKAGOYAサーバ
他社サーバと比べると高めの価格帯と感じてしまいますが、平日は22時まで電話対応してくれるなど、サポート体制が充実していることもあって5年以上契約しています。
ちなみに僕が使っているサーバのプラン内容をまとめるとこんな感じです。
- KAGOYA:共用サーバS21
- Webサーバ容量:200GB
- MySQL:10GBまで
- 初期費用3,240円
- 月額2,160円(12か月払いの場合は20,736円)
- 対応PHPバージョン:5.6.x 7.0.x 7.1.x 7.2.x
ブログや小規模サイトで利用する上では特に問題がないスペックではないでしょうか。僕がこれまで使っていて感じたのは、アクセス数が数百ユーザーと急激に増えてもサーバダウンしなかった事です。
それにしてもPHPバージョンが5.6系を使い続けるのはマズイ感じでしたので、7.2系へバージョンアップすることにしました。
PHPバージョン変更したら不具合発生
PHPのバージョンアップについてネットで調べてみると、サイトが真っ白になったり表示の不具合に関する記事がありましたので、サーバとDBバックアップをしてからバージョンアップ作業することにしました。
KAGOYAのPHPバージョンアップは管理画面内で簡単に変更することができ、すぐに戻すこともできるので「まぁ何か問題が起きたら戻せばいいじゃん」という軽い気持ちで変更しました。
変更方法はめっちゃ簡単。
KAGOYAサーバの管理画面にログインしたら、「Webサイト→バージョン管理→PHP」へ進みます。そこで変更するPHPバージョンを選択して設定変更するだけで完了。
ところがここで問題発生・・・。
WordPressサイト内をチェックしたところ、管理画面内のメディアで今までアップロードした画像が無い!!
よく見ると読み込みをしている状態でグルグル(ローディング中)してます。
ブラウザを再読み込みしたり、使用しているプラグインを全て停止しても改善されませんでした。
PHPバージョンを戻すしかないかも・・・。
PHPバージョンを5.6系に戻せば解決できる事は分かっていましたが、非推奨のPHPバージョンなので戻したくありません。
試しに運用サイトとは別に新たにPHP確認用のテストサイトを構築して、シンプルな構成で確認しても同じ不具合が発生していました。
KAGOYA以外のさくらサーバも契約しているので、同じ現象があるかどうか検証してみると再現できない・・。
・・・ということはです。
KAGOYAサーバとWordPressの組み合わせでPHPバージョン変更すると、不具合が発生するんじゃないか、という事に至ったわけです。
そこで、KAGOYAサポートへメールへ対処方法を問い合わせしてみたところ、約3時間ほどで返信がきて教えてもらう事ができました。
この対応の早さに感謝です。
KAGOYAサーバ様、ありがとうございます。
サーバへファイルをアップするだけで解決
KAGOYAサポートセンターから教えていただいた内容は、output_handler = noneと記述した.user.iniファイルを作成してWordPressのディレクトリにアップする方法でした。
拡張子の問題で作成が困難な場合がありますので、かんたんにできる方法をご紹介します。
まず、テキストファイル(.txt)を新規作成します。
次にテキストファイルを開いて「output_handler = none」と入力し、保存してファイルを閉じます。そして、ファイル名を「.user.ini」と変更したらファイルの完成です。
「.txt」と書かれた拡張子も書き換えてファイル名を変更してください。
Windowsの場合、「拡張子を変更すると、ファイルが使えなくなる可能性があります。変更しますか?」とメッセージが表示されますが、「はい(Y)」で進んで大丈夫です。
そして、このファイルをWordPressがインストールされたディレクトリに設置すれば完了です。
僕のサイトでは、この設定後にメディアを確認してみたところ、アップロードした画像が正しく表示されるようになりPHP7系でも不具合が解消することができました。
WordPressのバージョンアップ時にも影響されない
今回ご紹介した方法とは別に、wp-admin/admin-ajax.phpの記述変更があるようです。
しかし、コアファイルを変更してしまうと、WordPressのバージョンアップ時に記述が戻ってしまう可能性も考えられたことや、あまりコアファイルを変更したくないなぁという個人的な考えから、KAGOYAサポートへ対処方法を相談しました。
「.user.ini」ファイルなら、WordPressののバージョンアップ時にも影響は無さそうなので、様子を見ながら今回はこれで完了とします。