サブディレクトリにある一部のサイトだけPHPのバージョンが異なる原因と対処方法

公開日:2025(令和7)年7月25日/最終更新日:

WordPress Trouble Shooting and Repair | Personal WP Customization Notes (PWCN)

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

私の管理するWordPressサイトで実際に発生した事例の対処メモです。

ドメインが参照するディレクトリにWordPressサイトを1つ、さらにディレクトリを作って別のWordPressサイトをインストールしてという形態はよく使われるのではないでしょうか。

私が管理する一部のサイトもそんな形にしていて、結果的には検索エンジンから1つのサイトとして認識はされるものの、それぞれのサイトで必要な機能やデザインを適用できるようになるので効率がいいです。

さて、そんな構成のサイトの1つだけ、なぜかサイトヘルス画面やダッシュボードに「PHPバージョンをアップデートしてください」「お使いのPHPが古くなっています」などという警告が出たままになっていたんです(すでに対処済で正確な文章やスクリーンショットがなくてごめんなさい)。

このサイトは前述のようにメインとなるWordPressサイトの下に2つのサブディレクトリがあり、それぞれ別のWordPressが稼働しているという環境、このうちの1つのサブディレクトリのサイトだけに警告が出ているのです。

そのサイトがあるのは今ご覧になっているサイトと同じカラフルボックス ColorfulBoxサーバーに収容しているもので、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

なお、削除する際は必ず現行の記述のバックアップを取って、不具合が出たら元に戻せるようにしてくださいね。

Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPress Trouble Shooting and Repair | Personal WP Customization Notes (PWCN)
画面上部に「PHP Notice: ob_end_flush(): Failed to send buffer of zlib output compression (0) in…」という表示が出る原因と対処