さくらのレンタルサーバでは、サーバコントロールパネルの “スクリプト設定” > “言語バージョン設定” のページで全体の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バージョンを利用することが出来ます。
コメント