Server

【WordPress】古いPHPを最新版にアップデートする方法(MIRACLE LINUX対応)

WordPressの管理画面で「PHPのバージョンが古いです」という警告が表示され、困っていませんか? PHPはWordPressを動かすための重要なプログラミング言語です。PHPのバージョンが古いと、セキュリティのリスクが高まるだけでなく、WordPressやプラグインの機能が正常に動作しなくなることがあります。

この記事では、MIRACLE LINUX 8 または 9 をご利用の方に向けて、PHP 7.4.33 から最新版(PHP 8.2または8.3)へ安全にアップデートする手順を、具体的なコマンドとあわせて詳しく解説します。

PHPのバージョンアップは、Webサイトの安定性に影響を与える可能性があります。作業に取り掛かる前に、必ず以下の準備と注意点を確認してください。

🚨 作業前の重要事項:必ずバックアップを取りましょう!

WordPressのPHPバージョンアップは、サイトに予期せぬ問題を引き起こす可能性があります。万が一に備え、以下のバックアップを必ず取得してください。

  1. WordPressのファイルとデータベースのバックアップ:
    • WordPressの管理画面からバックアッププラグイン(UpdraftPlusなど)を使用するか、FTP/SCPで全ファイルをダウンロードし、phpMyAdminやmysqldumpコマンドでデータベースをエクスポートします。
  2. サーバーのスナップショット(可能であれば):
    • ご利用のVPSやクラウドサービスでスナップショット機能があれば、システム全体のバックアップを取得しておくと安心です。

ステップ1:現在のPHPバージョンの確認

まず、現在のPHPバージョンが7.4.33であることを確認します。

Bash

php -v

上記コマンドを実行し、PHP 7.4.33と表示されることを確認してください。

ステップ2:必要なツールとRemiリポジトリの導入

MIRACLE LINUXのようなRHEL系OSでは、新しいPHPバージョンを簡単に導入するために「Remiリポジトリ」を利用するのが一般的です。

最初に、必要なツールとRemiリポジトリを導入します。

Bash

sudo dnf install -y epel-release dnf-utils

次に、ご自身のMIRACLE LINUXのバージョンに合わせて、以下のどちらかのコマンドを実行してRemiリポジトリを有効にします。

MIRACLE LINUX 9 の場合:

Bash

sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm

MIRACLE LINUX 8 の場合:

Bash

sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

ステップ3:既存のPHPパッケージの削除

古いPHP 7.4.33に関連するすべてのパッケージを削除します。

🚨 注意:このコマンドはPHP関連のパッケージをすべて削除します。必ずバックアップが完了していることを確認してから実行してください。

Bash

sudo dnf remove -y php*

ステップ4:新しいPHPバージョンのインストール(PHP 8.2 または 8.3)

いよいよ新しいPHPバージョンをインストールします。WordPressはPHP 8.0以上を推奨しており、PHP 8.2以上が活発にサポートされています。ここでは安定性を考慮し、PHP 8.2 のインストールを推奨します。

PHP 8.2 をインストールする場合

Bash

sudo dnf module reset php
sudo dnf module enable -y php:remi-8.2
sudo dnf install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-json php-opcache php-bcmath php-intl

上記コマンドには、WordPressで一般的に必要となる主要なPHP拡張モジュールが含まれています。

PHP 8.3 をインストールする場合(推奨)

もし最新版のPHP 8.3をインストールしたい場合は、以下のコマンドを実行してください。

Bash

sudo dnf module reset php
sudo dnf module enable -y php:remi-8.3
sudo dnf install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-json php-opcache php-bcmath php-intl

ステップ5:新しいPHPバージョンの確認

インストールが完了したら、PHPのバージョンが正しく更新されたか確認します。

Bash

php -v

ここで、インストールしたバージョン(例: PHP 8.2.x または PHP 8.3.x)が表示されていれば成功です。

ステップ6:PHP-FPMの設定と起動

NginxなどのWebサーバーではPHP-FPM (FastCGI Process Manager) を使用してPHPを動作させます。PHP-FPMサービスを起動し、自動起動設定を行います。

Bash

sudo systemctl enable php-fpm
sudo systemctl start php-fpm
sudo systemctl status php-fpm

sudo systemctl status php-fpm の結果が active (running) となっていれば正常に動作しています。

ステップ7:Webサーバーの設定変更と再起動

Webサーバー(ApacheまたはNginx)が新しいPHP-FPMと通信するように設定を確認・変更し、再起動します。

Nginxをご利用の場合

Nginxの設定ファイル(通常 /etc/nginx/nginx.conf または /etc/nginx/conf.d/default.conf など)を開き、PHPファイルをPHP-FPMに渡す設定を確認します。

通常は以下のようになります。

Nginx

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php-fpm/www.sock; # または 127.0.0.1:9000
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

設定が正しいことを確認したら、Nginxを再起動します。

Bash

sudo systemctl restart nginx

Apacheをご利用の場合

ApacheでPHP-FPMを使用する場合、mod_phpが有効であれば無効化し、mod_proxy_fcgiを有効にしてPHP-FPMにリクエストを転送する設定を行います。

(httpd.confや仮想ホスト設定ファイルにて)

Apache

<FilesMatch \.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

設定変更後、Apacheを再起動します。

Bash

sudo systemctl restart httpd

ステップ8:WordPressの動作確認

すべての作業が完了したら、WebブラウザでWordPressサイトにアクセスし、正常に表示されるか確認してください。

WordPressの管理画面にログインし、「ツール」→「サイトヘルス」→「情報」タブの「サーバー」セクションで、PHPバージョンが更新されていることを確認します。

もしサイトが表示されない、エラーが出るなどの問題が発生した場合は、以下の点を確認してください。

  • PHPのエラーログ: 通常 /var/log/php-fpm/www-error.log やWebサーバーのエラーログを確認します。
  • WordPressのデバッグモード: wp-config.php に以下の行を追加し、詳細なエラーメッセージを表示させます。(本番環境ではWP_DEBUG_DISPLAYfalseにしてください)PHPdefine( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
  • ファイルパーミッション: WordPressのファイルやディレクトリのパーミッションが、Webサーバーの実行ユーザー(apachenginxなど)に適切に設定されているか確認します。

これで、WordPressのPHPバージョンアップ作業は完了です。定期的にWordPress本体、テーマ、プラグインのアップデートを行い、サイトを安全に保ちましょう。

-Server
-, , , ,