さくらのサーバーでhtmlをphpとして実行する方法

さくらインターネットのレンタルサーバー スタンダードプランで html を php として実行する方法です。

『そんな方法たくさん公開されてるよっ』と思うかもしれませんけど、セキュリティーリスクも最小に抑えてますので多分これが最適だと思います。それと【サーバコンロトールパネル】の【PHPのバージョン選択】と【PHP設定ファイルの編集】に対応してます。

設定方法

php.cgi と .htaccess ファイルを使用します。

初期ドメイン example.sakura.ne.jp の場合はルートディレクトリは /home/example/www となります。私の設定を参考になさるかたはご自身の環境に置き換えてください。

私は cgi のファイルは cgi-bin にまとめることにしてますのでルートディレクトリ直下に cgi-bin ディレクトリを作成します。 /home/example/www/cgi-bin のパーミッションは 755 か 705 どちらでもいいですよ。

cgi-bin ディレクトリの中に a31fqubf.cgi ファイルを作成します。 a31fqubf の部分はランダムに名前を付けてください。直接アクセスされてもエラーが返るので大丈夫なんですけど念のためです。(php.cgiでも問題ない大丈夫)


#!/bin/sh
export PHPRC="/home/example/www"
/usr/local/bin/php-cgi

a31fqubf.cgi の中身は上記の通りです。/home/example/www/cgi-bin/a31fqubf.cgi のパーミッションは 755 か 705 どちらでも大丈夫です。改行コードは LF に統一してください。さくらインターネットのレンタルサーバーの CGI を動作させるには拡張子が cgi となってますので a31fqubf.cgi というファイル名にしてます。CGI・PHP・SSI について

【export PHPRC="/home/example/www"】の文が【サーバコンロトールパネル】の【PHP設定ファイルの編集】に対応します。

【/usr/local/bin/php-cgi】は【/usr/local/bin/php-cgi-wrapper】へのシンボリックリンクになってますので【PHPのバージョン選択】に対応します。【サーバコンロトールパネル】の設定に追従するということは php のセキュリティーアップデートがあっても気にする必要がありません。

phpそのものをコピーしてくるとセキュリティーアップデートがあっても更新前の php を使用し続けることになるので不具合や脆弱性を抱えたままです。それに【Loaded Configuration File】がデフォルトの php.ini を読むようになって(例えば【/usr/local/php/5.6/etc/php.ini】とかね)【PHP設定ファイルの編集】したとしても反映されなくなります。PHP 5.3.0 以降は .user.ini 利用できますけどね。

php実行のためのcgiファイル

html を php として実行させたいディレクトリを決めます。ルートディレクトリにするとすべての html が php として実行されてしまうのでここでは testphp フォルダにします。

ルートディレクトリ直下に testphp ディレクトリを作成します。/home/example/www/testphp のパーミッションは 755 か 705 どちらでも大丈夫です。

testphp ディレクトリの中に .htaccess ファイルを作成します。htaccess ファイルを作成してから .htaccess にリネームしてもいいです。/home/example/www/testphp/.htaccess のパーミッションは 644 か 604 にしてください。.htaccess ファイルの中身は、


Action application/x-httpd-php-cgi /cgi-bin/ws6rev0d.cgi
<FilesMatch ".+\.html$">
    SetHandler application/x-httpd-php-cgi
</FilesMatch>

になります。もちろん改行コードは LF に統一です。

AddHandler を使用した例をよく見かけるけれどこれは意図しない php の実行をすることがありますので使用しないほうがいいですよ。(AddHandler の場合は example.html.txt も php として実行されますのでセキュリティー上の懸念がっ)

設定は以上です。おつかれさまでした。 testphp ディレクトリの中に html ファイルを置くと php として実行してくれるようになりました。

php実行のための.htaccess

動作確認

定番の phpinfo(); を index.html に書き込んで php の環境変数などを確認してみます。無事に表示されたら設定は終わりです。【サーバコンロトールパネル】から php のバージョンを変更したり php の設定ファイルを変更したりしても追従するかも確認してみてください。


<?php
    phpinfo();

シェアする

コメント

トラックバック

トラックバック用URL
http://www.youyoukankan.net/cms/action.php?action=plugin&name=TrackBack&tb_id=177
トラックバック
このエントリにトラックバックはありません