本記事は広告が含まれる場合があります さくらサーバー

【さくらのサーバー】PHPバージョン切り替え方(ドメイン毎/共通)

本記事ではさくらのサーバーでPHPのバージョンを切り替える方法をご紹介しています。
 

この記事を読むと分かること

  • 管理画面からPHPバージョンを切り替える方法(全ドメイン共通)
  • .htaccessを利用してドメイン・ディレクトリ毎にPHPバージョンを切り替える方法

 

 
ご利用の環境(WordPress、プラグイン、テーマ)によってはPHPのバージョンを上げることで相性問題などの不具合が発生する可能性もあります。本手順は特定の環境下での手順を示したものであり、ご利用の環境によっては本手順通りにならない場合もありますので、自己責任でお願いいたします。
 

PHPのバージョンを切り替える前にやっておくべき事前準備

PHPバージョンを切り替えるとサイトが正常に動かなくなったり、画面が真っ白になる不具合が起きる場合があります。

変更前のバージョンをメモしておき、もしトラブルがあったら元のバージョンに戻せるようにしておきましょう。

なお、さくらの場合スタンダードプラン以上で「ステージング機能(テストサーバー環境)」を利用できます。

不安な方は先に試したいPHPバージョンが実行されるステージング環境を作成し、そこに本番環境のスナップショットを移動させることで動作テストを行うといったことも可能です。

ステージングサーバーで試したいPHPを選択しておく

 

 

管理画面からPHPバージョンを切り替える方法(ドメイン共通)

まず、管理画面からPHPバージョンを切り替える方法を解説していきます※サーバー共通の設定なのでサーバー内のドメイン全てが共通で切り替わります

さくらのサーバーで1個のドメインだけを運用している、または他のドメインも全て切り替えたい場合に本手順を利用します。

管理画面からPHPバージョンを切り替える手順(ドメイン共通)

  1. サーバーコントロールパネルにログインする
  2. 「言語のバージョン設定」からPHPを推奨バージョンに変更する

 

(STEP. 1) サーバーコントロールパネルにログインする

まず始めにさくらのレンタルサーバーのサーバーコントロールパネルにログインしましょう。

以下のURLをクリックして「ドメイン名」「パスワード」をそれぞれ入力してから、「ログイン」をクリックします。

https://secure.sakura.ad.jp/rs/cp/

さくらサーバーのログイン画面
 

※パスワードがわからない方は、契約時の「[さくらのレンタルサーバ] 仮登録完了のお知らせ」というメールにIDとパスワードが記載されています。

[さくらのレンタルサーバ] 仮登録完了のお知らせ
 

これでサーバーコントロールパネルが表示されたはずです。

さくらサーバーのサーバーコントロールパネル

 

(STEP. 2) 「言語のバージョン設定」からPHPを推奨バージョンに変更する

サーバーコントロールパネルが開かれたら「スクリプト設定」→「言語のバージョン設定」をクリックします。

「スクリプト設定」→「言語のバージョン設定」をクリック
 

ここでPHPのバージョンを変更できるのですが、本例ではPHPのバージョンを推奨バージョンである8.0に切り替えてみます。

切り替えたいPHPバージョンを選択する
 

PHPバージョンを選択すると、PHPのモード(モジュールモード、CGIモード)を設定する項目が表示されます。

PHPモードを選択する
 

PHPモジュールモードとCGIモードの違いの説明については長くなるので割愛しますが、さくらのサーバーでは動作不良等がなければ実行パフォーマンスの点で優れている「モジュール版」の利用を推奨しています

動作不良等がなければ「モジュール版」の利用をおすすめします。PHPの実行パフォーマンスが大幅に改善されます。

ですのでここでは「モジュールモード」を選択して「保存する」をクリックしましょう。
 

「モジュールモード」を選択して「保存する」をクリック
 

これで「現在の設定」に表示されているPHPバージョンが8.0に変更されているのが確認できたら、設定は完了です。

「現在の設定」に表示されているPHPバージョンを確認
 

なお、さくらのサーバーの場合は管理画面からはドメイン毎のPHPバージョン切り替え設定ができません。どうしてもドメイン毎に切り替えたい場合は以下の手順で設定することができます。

 

ドメイン・ディレクトリ毎にPHPバージョンを切り替える方法

さくらのレンタルサーバーでドメイン、あるいはサブディレクト・サブドメイン毎にPHPバージョンを変更させたい場合は管理画面からは設定できず、以下の手順で行っていく必要があります。

さくらのサーバーでドメイン毎にPHPバージョンを切り替える方法

  1. .htaccessファイルを作成(または既存.htaccessを編集)する
  2. php.cgiファイルを作成する
  3. PHPを切り替えたいディレクトリにファイルをアップロードする
  4. php.cgiのパーミッションを「705」に変更する
  5. PHPバージョンが切り替わったかどうかを確認する

 

(STEP. 1) .htaccessファイルを作成する

まずは.htaccessファイルを作成しましょう。

以下の内容をペーストしたファイルを作成し、「.htaccess」という名前で保存します。(※すでに.htaccessファイルが存在する場合は追記すればOKです。)

 

なおこちらの「/php.cgi」箇所は、ドメイン単位でPHPバージョンを変更する場合はこのままで構いませんが、ルートディレクトリ以下のサブディレクトリ単位でPHPバージョンを変更したい場合は「/サブディレクトリ名/php.cgi」に変更してあげる必要があります。

「.htaccess」ファイルを作成する際の注意点
 

「/php.cgi」はphp.cgiファイルのルートディレクトリからのパスを表しています。

 

(STEP. 2) php.cgiファイルを作成する

.htaccessファイルが作成できたら、次にphp.cgiファイルを作成しましょう。

お使いのテキストエディターを開いて以下のコードをペーストしてから「php.cgi」という名前で保存します。

 

なお記述したコードのうち「8.0」と書かれた箇所がPHPのバージョンを指定している箇所になるので、ここを「7.4」や「5.6」としてあげれば、切り替えたいPHPバージョンに変更してあげることが可能です。

php.cgiファイルの記述例
 

上記例では「8.0」として進めていきます。

 

(STEP. 3) PHPを切り替えたいディレクトリにファイルをアップロードする

php.cgiファイルの作成ができたら、作成したファイルをPHPを切り替えたいディレクトリにアップロードしましょう。

ドメイン単位で切り替えたい場合は以下のようにドメイン直下のルートディレクトリにアップロードすればOKです。

ルートディレクトリに.htaccessファイルとphp.cgiファイルをアップロード
 

なおサブディレクトリ・サブドメインのみPHPバージョンを切り替えたい場合はサブディレクトリ内にファイルをアップロードします。

また、既存の「.htaccessファイル」がサーバー上にない方はあわせてアップロードしましょう。既存の.htaccssに追記した方はなにもしなくてもOKです。

 

(STEP. 4) php.cgiのパーミッションを「705」に変更する

ここまでできたら、最後にphp.cgiのパーミッションを変更してあげましょう。

デフォルトでは「604」と設定されているので、「705」に変更してあげます。

FTPソフトでサーバーに接続している状態でphp.cgiを右クリックし、「パーミッションの変更」をクリックします。(※例ではFilezillaを使用。)

php.cgiを右クリックし、「パーミッションの変更」をクリック
 

ここでパーミッションの属性値を「604」→「705」に変更し、「OK」をクリックします。

パーミッションの属性値を「604」→「705」に変更し、「OK」をクリック
 

これで設定は完了です。対象となるドメインにアクセスしてエラーが出ていないことを確認しましょう。

 

(STEP. 5) PHPバージョンが切り替わったかどうかを確認する

なお、PHPバージョンが本当に切り替わっているかどうかを確認するには以下の方法で確かめることができます。

 

 WordPressサイトの場合

WordPressの管理画面で「ツール」→「サイトヘルス」をクリックします。

「ツール」→「サイトヘルス」をクリック
 

「サイトヘルス」画面が開くと上部にタブがあるので、これを「情報」タブに切り替え、「サーバー」をクリックします。

上部にあるタブを「情報」タブに切り替え、「サーバー」をクリックして隠しメニューを開く
 

「サーバー」をクリックすると下に隠しメニューが表示されます。

この中に「PHPバージョン」という項目があるので、そこで現在使用中のPHPバージョンを確認することができます。
「PHPバージョン」で現在使用中のPHPバージョンが確認できる

 

WordPressサイト以外の場合

WordPressサイト以外の場合は、使用中のPHPに関する設定情報などを表示させる関数であるphpinfo関数を使用してPHPバージョンを確認することができます。

テキストエディターを開き、以下のコードを貼り付けてから「phpinfo.php」という名前でファイルを保存します。

 

あとは作成したphpinfo.phpファイルをPHPバージョンを確認したいディレクトリ上にアップロードし、ブラウザからファイルにアクセスすればOKです。

phpinfo.phpの表示画面
 

これで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

 

ですので、上と同じようなエラーが出ている方は、それぞれ(STEP. 1)や(STEP. 4)で間違いがないかをよくチェックしてみられると良いかと思います。

 

まとめ

まとめです。今回はさくらのサーバーでPHPバージョンを切り替える方法についてをご紹介しました。
 
さくらのサーバーの場合、管理画面から設定する方法(ドメイン共通)と、.htaccessを使って切り替える方法(ドメイン・ディレクトリ毎の設定が可能)の二つがあります。
 

  • 管理画面からPHPバージョンを切り替える方法(全ドメイン共通)
  • .htaccessを利用してドメイン・ディレクトリ毎にPHPバージョンを切り替える方法

 

古いバージョンのPHPを使用していてWordPressのダッシュボードに「PHPの更新を推奨」といったアラートが表示されている方は、推奨のPHPバージョンにアップデートを検討しましょう。

■(参考)「PHPの更新を推奨」アラート

WordPressダッシュボード上に表示される「PHPの更新を推奨」アラート

 

今回は以上になります。最後までご覧頂き、ありがとうございました。

 

 

「業者に任せたけど、更新ができない」「本で独学は時間がかかりすぎる・・」そんなお悩みの方も多いのではないでしょうか。

個別指導形式のスクールでは、自分の知りたいことをピンポイントで学習・達成でき、自分で更新もできるというメリットもあります。

教室の無料事前相談もしておりますので、まずはお気軽にご登録ください。

詳細はこちら

YouTubeチャンネル開設しました!

WEBST8 YouTube Channel 開設
最大月間50万PVの当ブログをベースに、Youtube動画配信にてWordPress、ホームページ作成、ブログのことについてお役立ち情報を随時配信していきます。

ご興味ある方はぜひチャンネル登録をしていただけますと幸いです。

検索して記事を見つける

探したいキーワードを入力・検索して記事を見つけたい方はこちら

-さくらサーバー
-