にわタコ's Labo

にわタコのちょっと専門的な試行錯誤

さくらのレンタルサーバーにてhtmlの中でphpを動かす

拡張子がhtmlのファイルの中で
まるでphpファイルかのようにphpプログラムを実行したいときは、
htaccessに
AddType application/x-httpd-php .htm .html
と書けばオッケーです。


さくらのレンタルサーバーでこれをやろうとすると
残念ながらphpは実行されず、
正体不明のファイルとなってしまい
htmlが表示されるどころか
ファイルとしてダウンロードされてしまいました。

どうやら一工夫いるようです。

1.さくらのサーバーで自分に与えられたフォルダの更に上へ行き、
  共用のphpファイルをコピーしてくる(SSH接続で!)
2.それを自分のディレクトリに配置して
3.htaccessでゴニョゴニョする。

という訳で、少し難易度が高いです。
SSH接続辺りがです。

Macは簡単で、ターミナルにて
ssh アカウント@アカウント.sakura.ne.jp
と打ち込むと接続できてしまいます。

Windowsだとtelnetやらなにやらを使うとか何とか。
WinSCPというソフトが、
FFFTPのようなクライアントソフトになっているので
使いやすいかもしれません。
ただそれでうまくいくのかは分からないです。

私はMacで片付けました。

まぁ、それは後回しにして、
何をしたらいいのかだけ確認します。

FFFTPでさくらのサーバーに接続してみます。
/home/ユーザー名/www以下に自分のサイトが入っていますね?

今回はhomeより上に行きます。
home/に行くと、
同じサーバーに入っているお隣さんのユーザー名を見ることができます。
が、それには目もくれずもっと上に行きます。

/ に行くと、
usr というフォルダを見つけることができます。
ここへ入ります。
/use/local/php
まで来ます。

そしたらそこにphpのフォルダが幾つかあります。
その中で自分が使っているバージョンのフォルダに入ります。

※自分が使っているPHPのバージョンは、
サーバーコントロールパネルの
サーバー情報の表示>サーバに関する情報
にて確認することができます。

ここに目当てのファイルがあります。
ネット上にはphp-cgiを、と書いている情報が多々ありますが
最近の場合、php-cgi-mysql5.5が目当てのファイルだったりと、
いろいろ環境によって変わるようです。

最近サーバーを借りた人は、
基本的に自分が使用しているバージョンのphpフォルダの、
自分の使用しているMySQLのバージョンの名前がついた
php-cgiを探せば良い、と考えてください。

で、これを自分のフォルダに、
php.cgiという名前にしてコピーします。

MacのターミナルでSSHに接続する場合、
ssh アカウント@アカウント.sakura.ne.jp
パスワードを入力
Are you sure you want to continue connecting (yes/no)?
Welcome to FreeBSD!

となったら
cp /usr/local/php/5.2.17/bin/php-cgi-mysql5.5 /home/niwatako/www(/任意のディレクトリ)/php.cgi
と打ち込みます。
これで完了。

cpはコピー、
/usr/local/php/5.2.17/bin/php-cgi-mysql5.5
がコピー元ファイル、
/home/niwatako/www(/任意のディレクトリ)/php.cgi
がコピー先と名前の指定です。
要するにコピーするというわけです。

SSHを使って、各自の環境に合わせてこれを完了してください。

あとは3.のhtaccessの配置です。
次のように書きます。

DirectoryIndex index.html index.php
Action myphp-script /php.cgi
AddHandler myphp-script .html .php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*).html+ $1.php

これで、php.cgiとhtaccessのあるディレクトリ以下は
htmlの中でphpが実行できるようになります。

このエントリーをはてなブックマークに追加
はてなブックマーク - さくらのレンタルサーバーにてhtmlの中でphpを動かす