#html内でPHPを使う
さくらインターネットでは
.htacees
php.cgi
の2ファイルが必要です。
##.htaccess
以下の2行を追加して、マルチドメインやサブドメインを設定したディレクトリにupします。
Action myphp-script /php.cgi
AddHandler myphp-script .php .html
##php.cgi
.htaccessと同じ階層に、php.cgiを追加します。
テキストエディタで以下の文言を記載し、php.cgiという名前で保存。
パーミッションは705にします。(755かも?)
#!/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を以下のように変更します。
(こちらから引用させて頂きました)
#!/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
Action myphp-script /php.cgi
AddHandler myphp-script .php .html
#!/bin/sh
exec /usr/local/bin/php-cgi
ドメイン/testディレクトリに.htaceesとphp.cgiをup
ややこしいので、php.cgiをphp56.cgiという名前に変更しました。
Action myphp-script /test/php56.cgi
AddHandler myphp-script .php .html
#!/bin/sh
exec /usr/local/php/5.6/bin/php-cgi
これで共存ができました!
#参考
さくらインターネットのレンタルサーバーでHTMLのファイルでもPHPが使えるようにする方法
HTML上でPHPを動かす(さくらサーバー:改訂)
さくらレンタルサーバでマルチドメイン毎にPHPの設定やバージョンを切り替える
2015-07現在:さくらスタンダードでhtmlをphpとして動作の際の注意2