Apache 2経由でアクセスするときには、URL等がZopeサーバの時とは変更になります。そのため VirtualHostMonster という Zope に標準で入っているプロダクトを使用して、
VirtualHostMonster を選択して追加します。Idは何でもいいですが、わかりやすくするために VirtualHostMonster というIdにしておきます。
次に、Apache 2をインストールします。
Vine Linuxにインストールする場合は簡単で、下記のコマンドを実行するだけです。
% sudo apt-get install apache2
この段階で、Apache 2を起動しWeb browserでアクセスしてトップページが表示されることを確認します。
Apache 2とZopeを連携させる設定を行ないます。例として以下のような設定を行なうこととします。
エディタでApache 2の設定ファイルを開きます。Windowsでは
C:\Program Files\Apache Group\Apache2\conf\httpd.conf
Vine Linuxでは /etc/apache2/conf/httpd.conf に設定ファイルがあります。
まず ServerAdmin という行があるので、もし # でコメントアウトされていたらそのコメントアウトをはずして、管理者のメールアドレスを記述します。::
ServerAdmin admin@example.com
次に ServerName という行があるので、もし # でコメントアウトされていたらそのコメントアウトをはずして、サーバ名を記述します。::
ServerName www.example.com:80
Apache 2とZopeが連携できるように、Apach 2のproxyモジュール(mod_proxy)と、URL書き換えモジュール(mod_rewrite)を使用できるようにします。もし、以下の行が # でコメントアウトされていたら、コメントをはずして有効にします。::
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule rewrite_module modules/mod_rewrite.so
最後に、実際にApache 2とZopeを連携させるためのバーチャルホストの設定をファイルに追加します。:
NameVirtualHost *
<VirtualHost *>
ServerName www.example.com
RewriteEngine On
RewriteRule ^/Zope(.*) http://localhost:8080/VirtualHostBase/http/www.example.com:80/VirtualHostRoot/_vh_Zope/$1 [L,P]
</VirtualHost>
<VirtualHost *>
ServerName blog.example.com
RewriteEngine On
RewriteRule ^(.*) http://localhost:8080/VirtualHostBase/http/blog.example.com:80/blog/VirtualHostRoot/$1 [L,P]
</VirtualHost>
編集が終了したら、設定ファイルを保存します。
設定終了後、Apache 2を再起動します。再起動する場合は、まず最初に設定ファイルに文法的に間違いがないかチェックしてから、行ないます。
% sudo /etc/init.d/apache2 configtest % sudo /etc/init.d/apache2 reload
Apache 2が再起動したら、Web browserで下記のURLにアクセスし、正しく画面が表示されることを確認します。
ここまでの設定でApache 2とZopeサーバの連携は行なえますが、Zopeサーバ側でWeb browserのIPアドレスがとれるようにするために、以下の設定を行なうことをおすすめします。
それは、信頼できる proxyサーバを指定する trusted-proxy です。ここにproxyとして設定したApache 2サーバのIPアドレスを指定します。ZopeサーバとApache 2が同じマシン上で動作している場合は、以下の記述を zope.conf ファイルに追加します。
trusted-proxy 127.0.0.1
zope.conf の編集後、Zopeサーバの再起動を行ないます。こうすることにより、Zopeサーバ側でも REQUEST.getClientAddr() とすると Web browser のIPアドレスを取得できるようになります。
以上で、Apache 2とZopeの連携を行なえるようになりました。
ただし、上記の設定は基本的な設定です。他にもApache 2側で、キャッシュの設定や、ワームのログを出さないようにしたり、各VirtualHost毎にアクセスログを出力したりといった設定を行なったほうが、より安全で利便性があがります。
これらの設定については Apache 2のログ出力設定 を参照してください。