search
LoginSignup
40

More than 3 years have passed since last update.

posted at

updated at

さくらインターネットで、異なるバージョンのPHPを使う

html内でPHPを使う

さくらインターネットでは
.htacees
php.cgi
の2ファイルが必要です。

.htaccess

以下の2行を追加して、マルチドメインやサブドメインを設定したディレクトリにupします。

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

php.cgi

.htaccessと同じ階層に、php.cgiを追加します。
テキストエディタで以下の文言を記載し、php.cgiという名前で保存。
パーミッションは705にします。(755かも?)

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

PHPのバージョン設定を変えたいとき

現在サーバーで使用しているPHPのバージョンは、
さくらのサーバーコントロールパネル>アプリケーションの設定>PHPのバージョン選択で確認できます。
TeraTermなどSSHでログインをしていれば、php -vとコマンドを打ってもよいでしょう。

コントロールパネルからだと、PHPのバージョン選択>新しいバージョンで、どのバージョンが使用できるかが選択できます。
既にPHPで作られたサイトを同じサーバーで運営している場合、安易に変更をすると、サーバーエラーの原因になります。

でも、使える関数の関係で、現在のバージョンとは違うバージョンを使用したいときがあります。
※今回namespaceを使いたいけど、PHP5.3からしか使えない。でも使用サーバーは5.2だったという経緯があります。。

php.cgiの変更

.htaccessの
Action myphp-script /php.cgi
では、同じ階層にあるphp.cgiを読み込んでます。

で、このphp.cgiは、/usr/local/bin/php-cgiを読み込んでいて、これがデフォルトのPHPのバージョンになっています。

なので、php.cgiを以下のように変更します。
こちらから引用させて頂きました)

php.cgi
#!/bin/sh
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.2/bin/php-cgi
#exec /usr/local/php/4.4/bin/php-cgi

使えるバージョンは、さくらのコントロールパネルから確認するか、
サーバーにFTPかSSH接続して、/usr/local/php/ を確認します。

使いたいバージョンと、該当するファイルを希望のものに設定し、
execのコメントアウトを外して保存してください。
確認したところ、/home/rs/php/でしたが、リンクされるみたいなのでそのまま引用させて頂きました。

.htaccessとphp.cgiを適応したいディレクトリに入れます。

任意の階層だけバージョンを変更

同じドメインであっても、任意の階層だけバージョンを変更することもできます。が、よくないのだろうか、どうなんだろう?

例)
ドメイン以下はサーバーで設定したバージョンで使用し、
ドメイン/testディレクトリ以下だけphp5.6にする。

ドメイン直下にup

.htaccess
Action myphp-script /php.cgi
AddHandler myphp-script .php .html
php.cgi
#!/bin/sh
exec /usr/local/bin/php-cgi

ドメイン/testディレクトリに.htaceesとphp.cgiをup
ややこしいので、php.cgiをphp56.cgiという名前に変更しました。

.htaccess
Action myphp-script /test/php56.cgi
AddHandler myphp-script .php .html
php56.cgi
#!/bin/sh
exec /usr/local/php/5.6/bin/php-cgi

これで共存ができました!

参考

さくらインターネットのレンタルサーバーでHTMLのファイルでもPHPが使えるようにする方法
HTML上でPHPを動かす(さくらサーバー:改訂)
さくらレンタルサーバでマルチドメイン毎にPHPの設定やバージョンを切り替える
2015-07現在:さくらスタンダードでhtmlをphpとして動作の際の注意2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
40