さくらインターネットでPHPを.htmlで動かす.htaccessの設定方法


ホームページでPHPを動かす場合は通常は.phpという拡張子でファイルを作ります。
でも、アドレスに.phpって入るのがなんとなく嫌だという人も多いと思います。
PHPを.phpではなくて、.htmlファイルとして動すこともできます
サーバーによっていろいろと設定方法がありますが、
さくらインターネットでの設定方法をメモとして残しておきます。

php.cgiを作成してさくらサーバーへアップロードする

まずは、以下のようなコードを書いたphp.cgiをさくらサーバーにアップロードします。

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

トップページのファイルが置かれている場所にアップしてください。
php.cgiをアップ

php.cgiファイルのパーミッションを設定

そのままでは上手く動かないので、パーミッションを設定します。
ソフトによりますが、php.cgiファイル上で右クリックすると、メニューの中に「パーミッションの変更」があります。
パーミッションの変更
php.cgiのパーミッションを705にしてください。
パーミッションの変更

.htaccessファイルを作成してアップロードする

次に以下の内容を書いた.htaccessファイルを作成します。
.で始まるファイルはwindowsのエクスプローラー上では作成できないので、
FTPソフトの上などでファイル名を変更して.htaccessファイルを作成してください。

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

php.cgiと同じく、トップページのファイルが置かれている場所にアップします。
.htaccessのアップロード
これで、.htmlファイルでもPHPが動くようになります。

が、ですよ。
最近、さくらインターネットの契約をした人はこれでは動かないかもしれませんので、その場合は次に説明しますね。

.htaccessファイルを作成してアップロードする モジュール版

上記の方法で動かない場合、最近さくらインターネットの契約をした人はPHPの動作環境が変わっているはず。
以前はcgi版として提供されていたのが、モジュール版(?)になったらしい。

ということで、最新の.htaccessはこちら。

AddType application/x-httpd-php .html

php.cgiはいりません。
上記の内容で.htaccessを上げると、phpを.htmlで動かすことができるようになります。

補足
サブドメインとかを使うときに、
The requested URL /php.cgi/index.html was not found on this server.
と出たことがあります。
これについては、php.cgiの位置が問題でした。
サブドメインのフォルダにphp.cgiを持っていくと直りました。
さくらのインターネット(拡張子HTMLでPHPを実行する)

ロリポップでの設定方法はこちら

[RelService] [Service]