さくらのレンタルサーバで特定ドメインのみPHP5.3など過去バージョンのPHPを利用する方法

さくらのレンタルサーバでは、サーバコントロールパネルの “スクリプト設定” > “言語バージョン設定” のページで全体のPHPのバージョンを設定することが出来ますが、個別にドメイン単位やディレクトリ単位で設定することも出来ます。

今回は、”test.example.com” というドメインを新規に追加(※公開ディレクトリは ~/www/test/example.com)して “test.example.com” のみ PHP5.3 が利用出来るようになるまでの内容を書いて行きます。

提供されているPHPバージョンの確認

PHPバージョン確認

SSHやFTPで接続してPHPのディレクトリ内の確認します。

% cd /usr/local/php/
% ll
total 32
drwxr-xr-x  7 root  wheel  512 Aug  6 11:35 4.4
drwxr-xr-x  7 root  wheel  512 Aug  6 11:36 5.2
drwxr-xr-x  7 root  wheel  512 Aug  6 11:39 5.3
drwxr-xr-x  7 root  wheel  512 Aug  6 11:42 5.4
drwxr-xr-x  7 root  wheel  512 Aug  6 11:44 5.6
drwxr-xr-x  8 root  wheel  512 Sep 27 18:29 7.3
drwxr-xr-x  8 root  wheel  512 Sep 27 18:30 7.4
lrwxr-xr-x  1 root  wheel    3 Sep 27 18:30 cpanel -> 5.6
lrwxr-xr-x  1 root  wheel    3 Sep 27 18:30 default -> 7.4
drwxr-x---  8 root  www    512 Nov 30 13:12 modules

提供されているPHPバージョンの確認

PHP7.4がデフォルトになっていますが、非推奨の PHP7.3 や サポートが終了している PHP5.6、PHP5.4、PHP5.3、PHP5.2、PHP4.4 も提供されていることが確認できます。

設定ファイルを用意する(.htaccess、php.cgi)

.htaccess

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

新規に .htaccess ファイルを作成するか既存ファイルに上記2行を追加します。

一行目の “/php.cgi” はこの後追加する実行するPHPバージョンを設定するファイルが配置されている場所を対象ドメインの公開ディレクトリのルート(/)から指定します。

今回は、”~/www/test.example.com” 以下に配置しますので “/php.cgi” としています。(※php.cgi のファイル名は php_test.cgi など任意のもので問題ありません)

php.cgi

#!/bin/sh
#exec /usr/local/php/7.4/bin/php-cgi
#exec /usr/local/php/7.3/bin/php-cgi
#exec /usr/local/php/5.6/bin/php-cgi
#exec /usr/local/php/5.4/bin/php-cgi
exec /usr/local/php/5.3/bin/php-cgi
#exec /usr/local/php/5.3/bin/php-cgi
#exec /usr/local/php/4.4/bin/php-cgi

実行するPHPのバージョンを設定します。複数のPHPバージョンの設定を記載しておりますが、今回は PHP5.3 を利用出来るようにしたいため PHP5.3 の行のみ行頭のコメントを外します。

保存する際、文字コードは UTF-8(BOMなし)改行コードは LF にする必要があります。

またパーミッションを “0705” に変更する必要もあります。

サブディレクトリに別のバージョンのPHPを設定する

上記でドメイン毎のPHPバージョンの利用設定は出来ましたので、次はサブディレクトリに異なるバージョン(PHP7.3)を設定してみたいと思います。

ドメイン毎の設定ど同じ要領で設定ファイル(.htaccess、php_child.cgi)を用意してサブディレクトリ “~/www/test.example.com/child” に配置します。

.htaccess

Action myphp-script /child/php_child.cgi
AddHandler myphp-script .php .html

設置したディレクトリが “~/www/test.example.com/child” ですので “/child/php_child.cgi” と指定します。

php_child.cgi

#!/bin/sh
#exec /usr/local/php/7.4/bin/php-cgi
exec /usr/local/php/7.3/bin/php-cgi
#exec /usr/local/php/5.6/bin/php-cgi
#exec /usr/local/php/5.4/bin/php-cgi
#exec /usr/local/php/5.3/bin/php-cgi
#exec /usr/local/php/5.3/bin/php-cgi
#exec /usr/local/php/4.4/bin/php-cgi

PHP7.3を利用出来るようにするため PHP7.3の行頭のコメントを外します。

文字コード・・・UTF-8(BOMなし)改行コード・・・LFパーミッション・・・ 0705 も忘れずに設定します。

以上で、”http://test.example.com/” は PHP5.3、”http://test.example.com/child/” は PHP7.3 とドメイン毎、ディレクトリ毎に異なるPHPバージョンを利用することが出来ます。

コメント

タイトルとURLをコピーしました