前に何度か話題にしていた、さくらのレンタルサーバを使ってのMovable Type稼動とphp化。
簡単かと思いきや、なかなか作動しない。色々と手こずり、様々なサイトを見て無事稼動させる事が出来ましたが、私が躓いた場所の全てをまとめたサイトが見つからなかったので自分なりにキチンとまとめて見ることにしました。
さくらのレンタルサーバでは、自分の借りている鯖の状態を確認する事が重要
アチコチのサイトを見ると「通常はXXX、時々OOOなサーバーあり」のような表現が多数あり、サーバー管理に詳しくないと「自分の使っているサーバはどっちなんだよ(´Д`;)」と頭を抱えたり、両方試したりと悪戦苦闘します。
そんな時は、さくらのレンタルサーバの「管理メニュー 」から「サーバ設定 」に進み、「サーバ情報の表示 」≫「サーバに関する情報 」を選択します。
様々な解説サイトで見かける『phpファイルは通常「/usr/local/bin/php」にある』などの表記は、ここを見て自分のサイトと照らし合わせる事が重要。
さくらのレンタルサーバでhtmlをphpとして作動させたいけど、上手く作動しない
私の場合は、別にphpはphpのまま作動させても良いんだけど「1年前から存在するURLを変更したくない。でもphp化を行いたい。」ってな理由で敢行しました。簡単に出来ると思いきや、すごい苦戦しました。
苦戦の理由は以下2点
1.さくらのレンタルサーバでは、マルチドメインを行っているとhtmlファイルをphp化できない。
これは.htaccessに記述する内容が関係あるのかな?
対応策:マルチドメインをエイリアス設定にしてやり、1ディレクトリ1ドメインに設定しなおしたら大丈夫になった。どっちか片方だけの対応でも大丈夫かもしんないけど未確認。
2.php.cgiをftpソフトで何度もアップロード、ダウンロードを繰り返してしまった。
これに気が付くまでに凄い時間がかかりました(´Д`;)
Wiki | さくらのレンタルサーバ非公式FAQの以下の記述
AddHandler myphp-script .js
- /usr/local/bin/phpを~/www/somewhereにphp.cgiという名前でコピーして、実行権を付けておく。 (サーバーによっては上記ディレクトリでなく、/usr/local/php-4.4.7/bin/phpにあることも。例:サーバー1264)
- .htaccessを設定する(下記例は.jsで使う場合)
Action myphp-script /somewhere/php.cgi
これの通りにやっているけど中々うまく行かない。
phpファイルは、サーバー上にアップしてから「php.cgi」とリネームする事。
(2009.05.30追記:「php」ではなく「php-cgi」ファイルを「php.cgi」にリネームして使用するサーバーもあるようです)
そして、リネーム後はダウンロードしたりアップロードしたりしない。.cgiファイルをアスキーモードで転送するのが原因だと思うけど、転送の度にファイル容量が変わっている(イコール中身が変更されてしまってる)
上記1.のマルチドメインで上手く作動しない問題を抱えている間、phpファイルの転送を繰り返してました。ドツボにはまってたワケです。
現在はエイリアス設定した各独自ドメインのルートにそれぞれにphp.cgiを置き、.htaccessに
DirectoryIndex index.html index.php .ht
Action myphp-script /php.cgi
AddHandler myphp-script .php .html
と書いて無事作動しています。
ちなみに使用するドメインの、「ルート以外の任意のディレクトリ」のみでhtmlをphp化して作動させたい場合は、作動させたいディレクトリのみにphp.cgiを置き、そのディレクトリに.htaccessを置いて
DirectoryIndex index.html index.php .htと書いて作動させます
Action myphp-script /任意のディレクトリ/php.cgi
AddHandler myphp-script .php .html
参考リンク
cgiとphp < Wiki | さくらのレンタルサーバ非公式FAQ
小粋空間: Movable Type の PHP化(その2:.html のままPHPを有効にする)
Movable Typeのphp化は意外と簡単に出来るのですが、php以外の拡張子でphpを作動させようと思うと、初めての人には意外と多くの落とし穴があるみたいです。