1台のホストを複数サイトに見せかける仮想ホスト機能は、 標準で提供されているSiteAccessプロダクト(Site Root)で実現できます。 しかし、SiteAccess Enhanced(VirtualHostMonster)なら、より柔軟な仮想ホストが簡単に構築できます。
SiteAccess Enhancedは 以下のサイトからダウンロードできます。
http://www.zope.org/Members/sfm/SiteAccessEnhanced (英語)
zopeのプロダクトフォルダは一般に「zopeをインストールしたディレクトリ」の lib/python/Productsです。
※ あなたがDebianを使っており、Debianのパッケージシステム(.deb)からzopeをインストールした場合、 zopeのプロダクトフォルダは/var/lib/zope/Prouctsになります。
実際に展開するには以下のコマンドを使います。:
# tar -xzvf SiteAccess.tgz -C 「zopeのプロダクトフォルダ」
zopeのプロダクトフォルダが/usr/local/zope/lib/python/Productsだとすると、これは以下のようになります。:
# tar -xzvf SiteAccess.tgz -C /usr/local/zope/lib/python/Products
zopeの管理画面から、Root FolderにあるControl_Panelにアクセスして、zopeを再起動してください。 zopeが起動していないなら、起動してください。
これでSiteAccess Enhanced(Virtual Host Monster)が使えるようになります。
Zopeのroot以下に、次のようにフォルダを作成します:
/weekend
/cmfrocks
/mojix_wiki
やはりroot直下に、VirtualHostMonsterを作成します。 つづいて、そのeditタブで以下のように対応を書いていきます:
Domain Path
www.zopeweekend.com /weekend/
www.cmfrocks.org /cmfrocks/
wiki.mojix.org /mojix_wiki/
注) ZopeはDNSの設定まではやってくれないので、別途DNSの設定が必要です:-) また、手っ取り早い方法として、*.yourdomain.tldを、Aレコードとして登録するとサブドメインはいくらでも作れるようになります。
ZopeをApacheのバックエンドに使っている場合、http://www.apache.site1/ へのアクセスをZopeの /sitefolder1 に、http://www.apache.site2/ へのアクセスを /sitefolder2 に渡したいときがあります。
以下のようにSiteAccess Enhancedで仮想ホストを作っておき、Apacheのmod_rewriteを使って、URLを書き換えてやれば簡単に実現できます:
SiteAccess Enhancedの設定
Domain Path
www.apache.site1 /sitefolder1/
www.apache.site2 /sitefolder2/
Apacheの設定
LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so
RewriteEngine On
RewriteMap lowercase int:tolower
RewriteCond ${lowercase:%{SERVER_NAME}} ^www.apache.site1$
RewriteRule /(.*)$ http://localhost:9673/VirtualHostBase/http/www.apache.site1:80/sitefolder1/$1 [P,L]
RewriteCond ${lowercase:%{SERVER_NAME}} ^www.apache.site2$
RewriteRule /(.*)$ http://localhost:9673/VirtualHostBase/http/www.apache.site2:80/sitefolder2/$1 [P,L]
注) Zopeは、Apacheと同じマシンの、ポート番号9673で動作しているものとします。より柔軟な仮想ホストが簡単に構築できます。
| Last edited Sat, 09 Sep 2006 17:11:37 +0900 | Edit this page |