本記事ではさくらのサーバーでPHPのバージョンを切り替える方法をご紹介しています。
この記事を読むと分かること
- 管理画面からPHPバージョンを切り替える方法(全ドメイン共通)
- .htaccessを利用してドメイン・ディレクトリ毎にPHPバージョンを切り替える方法
ご利用の環境(WordPress、プラグイン、テーマ)によってはPHPのバージョンを上げることで相性問題などの不具合が発生する可能性もあります。本手順は特定の環境下での手順を示したものであり、ご利用の環境によっては本手順通りにならない場合もありますので、自己責任でお願いいたします。
PHPのバージョンを切り替える前にやっておくべき事前準備
PHPバージョンを切り替えるとサイトが正常に動かなくなったり、画面が真っ白になる不具合が起きる場合があります。
変更前のバージョンをメモしておき、もしトラブルがあったら元のバージョンに戻せるようにしておきましょう。
なお、さくらの場合スタンダードプラン以上で「ステージング機能(テストサーバー環境)」を利用できます。
不安な方は先に試したいPHPバージョンが実行されるステージング環境を作成し、そこに本番環境のスナップショットを移動させることで動作テストを行うといったことも可能です。
管理画面からPHPバージョンを切り替える方法(ドメイン共通)
まず、管理画面からPHPバージョンを切り替える方法を解説していきます※サーバー共通の設定なのでサーバー内のドメイン全てが共通で切り替わります。
さくらのサーバーで1個のドメインだけを運用している、または他のドメインも全て切り替えたい場合に本手順を利用します。
- サーバーコントロールパネルにログインする
- 「言語のバージョン設定」からPHPを推奨バージョンに変更する
(STEP. 1) サーバーコントロールパネルにログインする
まず始めにさくらのレンタルサーバーのサーバーコントロールパネルにログインしましょう。
以下のURLをクリックして「ドメイン名」「パスワード」をそれぞれ入力してから、「ログイン」をクリックします。
https://secure.sakura.ad.jp/rs/cp/
※パスワードがわからない方は、契約時の「[さくらのレンタルサーバ] 仮登録完了のお知らせ」というメールにIDとパスワードが記載されています。
これでサーバーコントロールパネルが表示されたはずです。
(STEP. 2) 「言語のバージョン設定」からPHPを推奨バージョンに変更する
サーバーコントロールパネルが開かれたら「スクリプト設定」→「言語のバージョン設定」をクリックします。
ここでPHPのバージョンを変更できるのですが、本例ではPHPのバージョンを推奨バージョンである8.0に切り替えてみます。
PHPバージョンを選択すると、PHPのモード(モジュールモード、CGIモード)を設定する項目が表示されます。
PHPモジュールモードとCGIモードの違いの説明については長くなるので割愛しますが、さくらのサーバーでは動作不良等がなければ実行パフォーマンスの点で優れている「モジュール版」の利用を推奨しています。
動作不良等がなければ「モジュール版」の利用をおすすめします。PHPの実行パフォーマンスが大幅に改善されます。
ですのでここでは「モジュールモード」を選択して「保存する」をクリックしましょう。
これで「現在の設定」に表示されているPHPバージョンが8.0に変更されているのが確認できたら、設定は完了です。
ドメイン・ディレクトリ毎にPHPバージョンを切り替える方法
さくらのレンタルサーバーでドメイン、あるいはサブディレクト・サブドメイン毎にPHPバージョンを変更させたい場合は管理画面からは設定できず、以下の手順で行っていく必要があります。
- .htaccessファイルを作成(または既存.htaccessを編集)する
- php.cgiファイルを作成する
- PHPを切り替えたいディレクトリにファイルをアップロードする
- php.cgiのパーミッションを「705」に変更する
- PHPバージョンが切り替わったかどうかを確認する
(STEP. 1) .htaccessファイルを作成する
まずは.htaccessファイルを作成しましょう。
以下の内容をペーストしたファイルを作成し、「.htaccess」という名前で保存します。(※すでに.htaccessファイルが存在する場合は追記すればOKです。)
1 2 |
Action myphp-script /php.cgi AddHandler myphp-script .php .html |
なおこちらの「/php.cgi」箇所は、ドメイン単位でPHPバージョンを変更する場合はこのままで構いませんが、ルートディレクトリ以下のサブディレクトリ単位でPHPバージョンを変更したい場合は「/サブディレクトリ名/php.cgi」に変更してあげる必要があります。
※「/php.cgi」はphp.cgiファイルのルートディレクトリからのパスを表しています。
(STEP. 2) php.cgiファイルを作成する
.htaccessファイルが作成できたら、次にphp.cgiファイルを作成しましょう。
お使いのテキストエディターを開いて以下のコードをペーストしてから「php.cgi」という名前で保存します。
1 2 |
#!/bin/sh exec /usr/local/php/8.0/bin/php-cgi |
なお記述したコードのうち「8.0」と書かれた箇所がPHPのバージョンを指定している箇所になるので、ここを「7.4」や「5.6」としてあげれば、切り替えたいPHPバージョンに変更してあげることが可能です。
上記例では「8.0」として進めていきます。
(STEP. 3) PHPを切り替えたいディレクトリにファイルをアップロードする
php.cgiファイルの作成ができたら、作成したファイルをPHPを切り替えたいディレクトリにアップロードしましょう。
ドメイン単位で切り替えたい場合は以下のようにドメイン直下のルートディレクトリにアップロードすればOKです。
また、既存の「.htaccessファイル」がサーバー上にない方はあわせてアップロードしましょう。既存の.htaccssに追記した方はなにもしなくてもOKです。
(STEP. 4) php.cgiのパーミッションを「705」に変更する
ここまでできたら、最後にphp.cgiのパーミッションを変更してあげましょう。
デフォルトでは「604」と設定されているので、「705」に変更してあげます。
FTPソフトでサーバーに接続している状態でphp.cgiを右クリックし、「パーミッションの変更」をクリックします。(※例ではFilezillaを使用。)
ここでパーミッションの属性値を「604」→「705」に変更し、「OK」をクリックします。
これで設定は完了です。対象となるドメインにアクセスしてエラーが出ていないことを確認しましょう。
(STEP. 5) PHPバージョンが切り替わったかどうかを確認する
なお、PHPバージョンが本当に切り替わっているかどうかを確認するには以下の方法で確かめることができます。
WordPressサイトの場合
WordPressの管理画面で「ツール」→「サイトヘルス」をクリックします。
「サイトヘルス」画面が開くと上部にタブがあるので、これを「情報」タブに切り替え、「サーバー」をクリックします。
「サーバー」をクリックすると下に隠しメニューが表示されます。
この中に「PHPバージョン」という項目があるので、そこで現在使用中のPHPバージョンを確認することができます。
WordPressサイト以外の場合
WordPressサイト以外の場合は、使用中のPHPに関する設定情報などを表示させる関数であるphpinfo関数を使用してPHPバージョンを確認することができます。
テキストエディターを開き、以下のコードを貼り付けてから「phpinfo.php」という名前でファイルを保存します。
1 |
<?php phpinfo();?> |
あとは作成したphpinfo.phpファイルをPHPバージョンを確認したいディレクトリ上にアップロードし、ブラウザからファイルにアクセスすればOKです。
これでWordPressサイト以外でもPHPバージョンを確認することができました。
(補足): 500、404エラーが出た際に確認すべきこと
なお、ここまでの設定で500エラーや404エラーが出てしまった方もおられると思います。
そんな方は以下の手順でエラーの原因を確認されると良いです。
さくらのサーバーの管理画面で「サーバーステータス」→「アクセスログ」をクリックします。
「本日のエラーログ」をクリックします。
ここで、その日に起こったエラーログの詳細・原因が上から下に表示されていきます。
なお(STEP. 4)で解説したパーミッションの変更を行わなかった場合は500エラーが表示され、以下のようなエラーログが残っているはずです。
[Wed Nov 03 10:01:19.801379 2021] [cgi:error] [pid 2636] [client 133.106.214.150:0] AH01215: suexec policy violation: see suexec log for more details: /home/FTPアカウント名/www/-----/php.cgi
[Wed Nov 03 10:01:19.801422 2021] [cgi:error] [pid 2636] [client 133.106.214.150:0] End of script output before headers: php.cgi
また、(STEP. 1)で解説した.htaccessファイルの「/php.cgi」箇所のパスが間違っている場合は、「Not Found(404エラー)」が表示されて、以下のようなエラーログが残ります。
[Wed Nov 03 10:23:00.102315 2021] [php7:error] [pid 2636] [client 133.106.214.150:0] script '/home/FTPアカウント名/www/-----' not found or unable to stat
まとめ
まとめです。今回はさくらのサーバーでPHPバージョンを切り替える方法についてをご紹介しました。
さくらのサーバーの場合、管理画面から設定する方法(ドメイン共通)と、.htaccessを使って切り替える方法(ドメイン・ディレクトリ毎の設定が可能)の二つがあります。
- 管理画面からPHPバージョンを切り替える方法(全ドメイン共通)
- .htaccessを利用してドメイン・ディレクトリ毎にPHPバージョンを切り替える方法
古いバージョンのPHPを使用していてWordPressのダッシュボードに「PHPの更新を推奨」といったアラートが表示されている方は、推奨のPHPバージョンにアップデートを検討しましょう。
■(参考)「PHPの更新を推奨」アラート
今回は以上になります。最後までご覧頂き、ありがとうございました。
関連記事
個別指導形式のスクールでは、自分の知りたいことをピンポイントで学習・達成でき、自分で更新もできるというメリットもあります。
教室の無料事前相談もしておりますので、まずはお気軽にご登録ください。
YouTubeチャンネル開設しました!
最大月間50万PVの当ブログをベースに、Youtube動画配信にてWordPress、ホームページ作成、ブログのことについてお役立ち情報を随時配信していきます。
ご興味ある方はぜひチャンネル登録をしていただけますと幸いです。