さくらのレンタルサーバーでドメイン毎にPHPバージョンを変える
さくらサーバーのコントロールパネルではPHPバージョンを指定(変更)することが可能である。

これはマスター設定というかサーバ全体に効いてしまうため、初期ドメインを含めたマルチドメインに対して全て同一のPHPバージョンを使うことになってしまう。
これは意外に困るのだ。
マルチドメイン可能とはいえ、実際のところひとつのサーバ契約の中に複数ドメインを入れ込むことはほぼない。
しかし、困る場面はPHPのバージョンアップである。
例えばPHP 8.2から8.3へバージョンアップをしたい時には当然試験が必要である。
まぁ「ちょっとくらいサイトが止まってもよい」という覚悟でいきなり上げることもあるかもしれないが、試験を行うのが望ましい。
ここで、ドメイン毎あるいは特定サイトに対して別バージョンのPHPを利用できるならばとても便利。
そんなときは、こんな方法がある。
PHPバージョンを指定したシェルスクリプトを間にはさむやり方だ。
まずは下記の内容をphp.cgiとして、「PHPバージョンを変更したいドキュメントルートに配置する」
----------
#!/bin/sh
exec /usr/local/php/8.2/bin/php-cgi
----------
8.2の部分は利用したいPHPのメジャーバージョン.マイナーバージョン。
sshで接続して、php-cgiが置いてある実際のパスを確認するのが良い。

このシェルスクリプトはパーミッションを705にする。
そして、.htaccessに下記を記述する。
一番上で良いのではないか。
----------
Action myphp-script /php.cgi
AddHandler myphp-script .php .html
----------
AddHandlerの .html は任意。
シェルスクリプトを通してCGIモードで動作させることになる。
さくらサーバーとしてドメイン毎のバージョン変更を管理画面からできれば嬉しいが、できなくしている理由がなにかあるのでしょう。
