WordPressのページでPHPコードがそのまま表示される場合の対処方法とは

😱 WordPressのページでPHPコードがそのまま表示されるのは、WebサーバーがPHPを処理できていない状態です。OSのアップグレード後にありがちなトラブルで、PHPモジュールの未設定やApache/Nginxの構成ミスなどが原因です。


🔍 考えられる原因とは

これまで正常に動作していたHPがOSのバージョンアップで上記のような現象となった場合、次が考えられます。

  • PHPが無効化されている
  • ApacheやNginxがPHPを処理する設定になっていない
  • PHPのバージョン変更により旧設定が無効化された

本稿では、Apache環境での解決策を紹介します。


🛠 Apache環境での対処手順とは

① PHPモジュールのインストール(例:PHP 8.3)

sudo apt update
sudo apt install php libapache2-mod-php php-mysql

② ApacheにPHPモジュールを有効化

sudo a2enmod php8.3
sudo systemctl restart apache2

php8.3 はインストールされたバージョンに合わせて変更してください。


🧠 PHPバージョンの確認

php -v
  • WordPressは PHP 7.4以上 を推奨。PHP 8.1〜8.3でも動作しますが、一部プラグインとの互換性に注意が必要と言われているようです。

WordPressが ApacheNginx のどちらで動作しているかを確認するには

psコマンドで調べると、Apache と Nginxが療法動作しているケースがあります。例えば、Nginxがリバースプロキシとして動作し、ApacheがバックエンドでPHPを処理しているケースなどです。この場合、Nginxが外部からのリクエストを受け取り、Apacheに渡しているため、両方のプロセスが存在します

🕵️‍♂️ WordPressが ApacheNginx のどちらで動作しているかを確認するには、以下の方法が有効です。


🔎 ポート80番のリスナーを確認する

sudo lsof -Pn -i tcp:80 | grep LISTEN
  • 出力例
    apache2 1234 root 6u IPv4 ... TCP *:80 (LISTEN)
    nginx 5678 root 7u IPv4 ... TCP *:80 (LISTEN)
  • COMMAND欄に表示されるプロセス名で、どちらがポート80をリッスンしているかが分かります。
  • WordPressがアクセスされるポート(通常は80または443)をどちらが担当しているかが鍵です。