私の管理するWordPressサイトで実際に発生した事例の対処メモです。
ドメインが参照するディレクトリにWordPressサイトを1つ、さらにディレクトリを作って別のWordPressサイトをインストールしてという形態はよく使われるのではないでしょうか。
私が管理する一部のサイトもそんな形にしていて、結果的には検索エンジンから1つのサイトとして認識はされるものの、それぞれのサイトで必要な機能やデザインを適用できるようになるので効率がいいです。
さて、そんな構成のサイトの1つだけ、なぜかサイトヘルス画面やダッシュボードに「PHPバージョンをアップデートしてください」「お使いのPHPが古くなっています」などという警告が出たままになっていたんです(すでに対処済で正確な文章やスクリーンショットがなくてごめんなさい)。
このサイトは前述のようにメインとなるWordPressサイトの下に2つのサブディレクトリがあり、それぞれ別のWordPressが稼働しているという環境、このうちの1つのサブディレクトリのサイトだけに警告が出ているのです。
そのサイトがあるのは今ご覧になっているサイトと同じカラフルボックス
サーバーに収容しているもので、PHPのバージョン管理自体はcPanelのMultiPHPマネージャーという設定から変更することができ、そこの設定はドメイン(またはサブドメイン)単位で変更ができ、問題なくPHP8.3になっているのにも関わらずです。
そこで昔昔の記憶を呼び起こしてみると、この問題となっているサイトはもともとメインのサイトとして稼働させていたものをサブディレクトリへ移動した経緯がありました。
もしかして..と.htaccessを確認してみると..ありましたありました、cPanelが追加したPHPバージョンに関する記述が!!
その部分を削除すると、無事問題解消、.htaccess で移動した当時のPHPバージョンのまま維持するように指定されていたのですね。
.htaccessファイルは上位ディレクトリに記述されている指示に対して下位のディレクトリに同じ指示がなければ、上位のものが継承される、下位のディレクトリに別の指示があればそれをそのディレクトリに適用するという動作をするので、そのような指示通りに動作していたということなんですね。
単純な話でしたが、cPanelを使ってPHPバージョンの管理をするサーバーを使用していて、私のようにWordPressサイトをディレクトリ間で移動させた際には、.htaccessに古い記述が残っていないかをチェックするようにすれば、この問題の発生は防げると思います。
ちなみにcPanelからPHPバージョンの指定をした際に追記されるのは以下のような記述です(PHP8.3の例です)。
# END cPanel-generated php ini directives, do not edit
# php -- BEGIN cPanel-generated handler, do not edit
# “ea-php83” パッケージを既定の “PHP” プログラミング言語として設定します。
<IfModule mime_module>
AddHandler application/x-httpd-ea-php83 .php .php8 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
なお、削除する際は必ず現行の記述のバックアップを取って、不具合が出たら元に戻せるようにしてくださいね。
コメントを残す