ZopeとXoopsの共存

Zopeは8080番ポートを使うため、アドレスが「http://hoge.com:8080/fuga」のようになるが、ポート指定するのが気持ち悪いというか見栄えが悪いように思えるので、Apacheのバーチャルホストを設定してやってこれを回避したい。
・Zopeの設定
Zopeの Root Folder にVirtual Host Monsterを追加する(IDは vhm とした)。

・Apacheの設定
mod_rewrite と mod_proxy が有効になっていることを確認し、バーチャルホストのディレクティブを設定する。

・Gentoo Linux & Apache 2.x の設定例

/etc/apache2/conf/apache2.conf
...
LoadModule proxy_module modules/mod_proxy.so
...
LoadModule rewrite_module modules/mod_rewrite.so
...
Include conf/vhosts/vhosts.conf
...


/etc/apache2/conf/vhosts/vhosts.conf
<VirtualHost hoge.com>
ServerAdmin webmaster@hoge.com
ServerName hoge.com
RewriteEngine on
RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/http/hoge.com/VirtualHostRoot/$1 [P,L]
</VirtualHost>


これでめでたく http://hoge.com でZopeにアクセスできる。Root Folder 以外のフォルダに誘導したい場合は、RewriteRule の後尾の部分を「(略)/VirtualHostRoot/FolderName/$1 [P,L]」のようにすればよい。


しかし一方でウチのPCではXoops日本公式)も動いているので、リクエストすべてをZopeに持っていくわけにもいかない。

方針としては「Xoopsサイトに来るリクエスト以外のリクエストはすべてZopeに渡す」という風にする。ということで mod_rewrite の RewriteCond を設定し、リクエストされたアドレスをチェックしたときに、Xoopsサイトの名前があった場合は Zope に渡さないという風にする。

Xoopsサイトのアドレスを http://hoge.com/xoops1 および http://hoge.com/xoops2 とすると次のようになる。
<VirtualHost hoge.com>
ServerAdmin webmaster@hoge.com
ServerName hoge.com
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(xoops1|xoops2).* # この行を追加 #
RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/http/hoge.com/VirtualHostRoot/$1 [P,L]
</VirtualHost>


・%{REQUEST_URI}
→リクエストされたアドレスをチェック

・!^/(xoops1|xoops2).*
→正規表現。「!」は否定。「^/(xoops1|xoops2).*」は xoops1 または xoops2 という言葉を含むことを表す。すなわち全体としては、xoops1 または xoops2 という言葉を含まない、ということを示す。この条件に当てはまったリクエストを RewriteRule に基づいて書き換える。

これで http://hoge.com/xoops1/ などXoopsに関係したアドレスはそのままに、それ以外のリクエストをZopeに渡すようになった。めでたしめでたし。
トラックバック用URL:
http://nagosui.org/Nagosui/COREBlog2/1/tbping
コメントを追加

下のフォームに記入してコメントを追加できます。平文テキスト形式。

(必須)
(必須)
(必須)
(Required)
Enter the word

このBlogについて
Plone, Zope, Pythonなどのトピックについてのメモです。
カテゴリ
Plone (98)
Plone Products (23)
COREBlog2 (31)
COREBlog1 (29)
ReadingCOREBlog (7)
Zope (66)
Turbogears (18)
Django (12)
Python (25)
Linux (30)
Nagosui (12)
Design (33)
Misc (48)
moblog (5)
最近のエントリ
浜松ブラスバンド定期演奏会2008 nyusuke 2008年11月24日
Glossy Horizontal Menuを使う nyusuke 2008年11月17日
第3回Python東海終了 nyusuke 2008年11月17日
Universalじゃない件 nyusuke 2008年11月15日
最近のコメント
Re:WebデザイナーのためのDjangoはじめの一歩 nyusuke 2007年06月01日
Re:WebデザイナーのためのDjangoはじめの一歩 pateo 2007年05月31日
Re:東海Python Workshop 01終了 nyusuke 2007年05月31日
Re:東海Python Workshop 01終了 kfuruhata 2007年05月30日