yohasebe.com


Mon Sep 04 23:47:00 +0900 2006

Rails 環境で PHP を使う方法

Apache + Rails という環境の中で PHP スクリプトを共存させるにはどうしたらいいのでしょうか。Google で検索をしても、参考になる情報があまり出てきません。気になっている人は多いと思うんですけどね。わかると簡単なことなので、取り上げるに値しないのかもしれません。個人的にはこれで結構悩んだので、メモを残しておきます。

RAILS_ROOT/public/ 以下に PHP スクリプトの入ったディレクトリを展開し、同じ public 直下の .htaccess に次のような設定を行います。

RewriteEngine On

# 以下の php_directory0x の所を適当なディレクトリ名に置き換える

RewriteCond %{REQUEST_URI} /php_directory01/?$ [OR]
RewriteCond %{REQUEST_URI} /php_directory02/?$ [OR]
RewriteCond %{REQUEST_URI} /php_directory03/?$
RewriteRule .* - [L]

RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

要するに、Apache の mod_rewrite モジュールを利用して、特定のディレクトリ以下を Rails の管理から外してやるわけです。なお、RewriteCond 文の後に [OR] を使うことで、リストはいくらでも増やしていくことができます。

とは言っても、public の下にスクリプトをたくさん置くと、何だかごちゃごちゃしてキレイじゃないですね。Subversion でバージョン管理 + Capistrano で自動デプロイ、といったことをする際にも、都合がよくない気がします。適当なサブドメインを作って、そちらに飛ばす方がベターかもしれません。

Prev entry | | Next entry



大学関係


計算機プログラミング


その他いろいろ


--