【さくらインターネットサーバー】ドメインごと・ディレクトリごとにPHPのバージョンを変更する方法

  1. さくらインターネットで設定できるPHPのバージョンは基本的に1種類
  2. さくらインターネットで使用できるPHPのバージョン( 2023年5月現在 )
  3. さくらインターネットで「ドメインごと」にPHPのバージョンを変更する方法
  4. さくらインターネットで「ディレクトリごと」にPHPのバージョンを変更する方法
  5. エラー(Internal Server Error)になる場合
  6. さくらインターネットで提供されるPHPの各バージョンについて

さくらインターネットで設定できるPHPのバージョンは基本的に1種類

さくらインターネットのサーバーを使っていて、複数ドメインを持っていて、サイトによってPHPのバージョンを変えたいと思った事はありませんか?

さくらインターネットのサーバーは、管理画面からPHPのバージョンが設定できますが、 設定できるのは、全体で使用できる1種類のみです。
管理画面からPHPを古いバージョンに変更した場合、すべてのサイトに古いバージョンが適用されてしまうため、サイトによっては影響が出る恐れがあります。

例えばお客様からの依頼で、あるサイトのCMSが古いため、移転する前に新しいバージョンのPHPで動作するか検証しなければならない時などに、この方法が使えます。

ディレクトリごとに違うPHPのバージョンを設定する事も出来るので、状況によって使い分けてみてくださいね。

さくらインターネットで使用できるPHPのバージョン( 2023年5月現在 )

さくらインターネットのサーバーでは、2023年5月現在、以下のPHPバージョンが使用できます。

  • PHP8.1
  • PHP8.0
  • PHP7.4[非推奨]
  • PHP5.6[非推奨]
  • PHP5.4[非推奨]
  • PHP5.3[非推奨]
  • PHP5.2[非推奨]

画像は、さくらインターネットの管理画面、「スクリプト設定」→「言語バージョン設定」にあるPHPバージョン設定画面です。
通常は、ここでPHPのバージョンを変更します。

PHP7.4の1つ前のバージョンは、PHP5.6です。
7.2や7.1はリストにはありませんね。
これは脆弱性などの理由でリストから除外されたのかも?( 後術

PHP7.4より古いバージョン(5.6など)は「サポート終了」のため非推奨となっています。

現在さくらインターネットのサーバーでは、これら古いPHPのバージョンも使用できる状態ですが、将来的に使えなくなる可能性があると思います。

以前独自のプログラムを書いてアップデートしないまま運用していたり、古いバージョンのCMSをまだ使っていたりする場合、新しいPHPに変更した時に動かなくなる事が考えられるので、PHPのバージョンを変更する時は事前に検証を行ってくださいね。
2023年現在、さくらサーバーではPHP8以降が推奨されているので、このバージョンで動作するか確認すると良いでしょう。

さくらインターネットで「ドメインごと」にPHPのバージョンを変更する方法

さくらインターネットのサーバーで、ドメインごとにPHPのバージョンを変更する方法です。
※テキストエディタやFTPソフトの使い方が分かっている事を前提として手順をご紹介します。

(1)PHPのバージョンを指定するファイル(php.cgi)を作成

テキストエディタでファイルを新規作成、以下の2行を入力してください。
今回は、PHP7.4を指定します。

#!/bin/sh
exec /usr/local/php/7.4/bin/php-cgi

PHP5.6を使いたい場合は、上の「7.4」の部分を「5.6」に書き換えてください。
ファイル名は「 php.cgi 」で保存します。
拡張子(.cgiの部分)さえ変えなければ、ファイル名は好きな名前をつけてOKです。

保存したら、FTPソフトでphp.cgiを「ドキュメントルート」にアップロードします。
アップロードしたらこのファイルのパーミッションを「705」に設定してください。

(2).htaccessファイルを作成・追記

(1)と同じようにテキストエディタで「 .htaccess 」を作成します。
設定したいドメインの「ドキュメントルート」に、すでに.htaccessがある場合、そのファイルをダウンロードして、以下の2行を追記してください。

Action myphp-script /php.cgi
AddHandler myphp-script .php

ファイルを保存したら、FTPソフトからアップロードします。

(3)PHPのバージョンが変わったか確認

指定したPHPのバージョンに切り替わっているかを確認します。

サイト内でWordPressが動作している場合は、WP管理画面の「サイトヘルス」からPHPバージョンが確認できます。

WordPressが入っていない場合、ドメインが設定されているドキュメントルートに 「phpinfo関数」が入ったPHPファイルをアップロードして、ブラウザからそのファイルにアクセスします。
URL例:https://(ドメイン名)/phpinfo.php

phpinfoファイルの作り方は、テキストエディタで以下の内容を入力。

<?php phpinfo(); ?>

ファイル名を、例えば「phpinfo.php」とつけて保存します。(このファイル名は、できれば第三者から推測されにくい名前にしたほうが安全です)

アクセスすると以下のような画面が表示されます。

画面左上に「PHP Version ....」とありますが、この数字の部分が7.4.xxになっていればPHPが無事に切り替わったという事になります!

※phpinfo関数はバージョンの他に様々な設定情報が表示されます。
この状態だと、phpinfo関数が入ったファイルは外部からアクセスできる状態にあるので、 第三者に内容を見られないように、バージョンを確認したら必ず削除するようにしてください。

さくらインターネットで「ディレクトリごと」にPHPのバージョンを変更する方法

基本的には、ドメイン毎に設定する手順と同じ手順。(php.cgi、.htaccessに設定を記述する)
ディレクトリを指定する点が異なる程度です。

ここではディレクトリ名「/php_version_test/」に、PHP5.6を適用する手順を説明します。

(A)PHPのバージョンを指定するファイル(php.cgi)を作成

テキストエディタでファイルを新規作成、以下の2行を入力してください。
PHP5.6を指定します。

#!/bin/sh
exec /usr/local/php/5.6/bin/php-cgi

保存したら、FTPソフトでphp.cgiをディレクトリ「 /php_version_test/ 」にアップロードします。
アップロード後、ファイルのパーミッションを「705」に設定してください。

(B).htaccessファイルを作成・追記

「 .htaccess 」を作成し、以下の2行を入力します。

1行目の内容は、ドメイン名のルートからのパスを記述します。
例えば、php.cgiがあるディレクトリが、https://(ドメイン名)/php_version_test/ の場合、 /php_version_test/php.cgi です。

Action myphp-script /php_version_test/php.cgi
AddHandler myphp-script .php

ファイルを保存したら、FTPソフトからアップロードします。

(C)PHPのバージョンが変わったか確認

指定したPHPのバージョンに切り替わっているかを確認します。
phpinfoで、PHPのバージョンが5.6になっていれば設定完了です。

※詳しい確認方法はこちらをご確認ください。
※こちらの場合もphpinfo関数が入ったファイルは、バージョン確認したら速やかに削除するようにしましょう。

エラー(Internal Server Error)になる場合

Internal Server Errorが出る場合、以下の2点を確認してください。

  • htaccessに書いたphp.cgiのパスが正しいか
  • php.cgiのパーミッションは705に変更されているか

さくらインターネットは管理画面から「エラーログ」が確認できるので、こちらの内容も見ながら、エラーを修正してみてください。

さくらインターネットで提供されるPHPの各バージョンについて

最後に、現在さくらインターネットのサーバーで非推奨とされているPHPのバージョンについてです。

さくらインターネットでは、提供するPHPの各バージョンについてのサポート期間などの説明ページがあるので、こちらもあわせてご確認ください。

PHPの提供ポリシーを知りたい
https://help.sakura.ad.jp/rs/2256/

以下、一部引用。

ご利用のアプリケーションが最新バージョンに対応してない可能性があることを考慮し、現在もサポートが終了しているバージョン(PHP5.2、5.3、5.4、7.4)を提供しておりますが、以下のリスクがあり、急な提供終了が発生する可能性があります。 早急に新しいPHPバージョンへの対応をご検討ください。


出典:PHPの提供ポリシーを知りたい
https://help.sakura.ad.jp/rs/2256/

もし古いPHPで脆弱性が見つかった場合、急に使えなくなって、ホームページが動かなくなったりしたら困りますね。
さくらインターネットで、まだ古いPHPを使ってサイトを運営している場合、今のうちに新しいバージョンへの対応を進めておいたほうが良さそうです。

紹介された方法でやってみたけど、どうも上手くいかないなど、設置に関するお困り事がありましたら、 設置・設定代行を承っていますので、お気軽にご相談ください。

MovableType/WordPressを使ったホームページ制作、機能追加や設置代行などの改修、システム開発、サイトの保守を手掛けております。


アナタが実現させたい機能、やりたい事をお聞かせいただけませんか? そのイメージを一緒に実現しましょう!
お問い合わせは以下のページから!!

やまライダーのサイトへ

書いた人:やまライダー

やまライダーです。仙台市でブロガー兼システム寄りのWebディレクターとして働きながら嫁と一緒に子育て奮闘中!
タスク管理ツール「Todoist」でガントチャートが作成ができる補助ツール「Todoist ガントチャートコンバータ」作者。
鳥が好きでキンカチョウ(錦花鳥)を飼っています。

プロフィールを見る
やまライダーのTwitter(自転車用アカウント)
やまライダーのTwitter(システム寄りwebディレクター用)
やまライダーのInstagram