この情報は古い情報です
意味のない情報ではないですが、VHM について問題があります。イマイチ設定メモとして残しておきます。参照は ApacheConf2をどーぞ。
- FastCGIによる接続とは ソケットを使って、Apache と Zope を通信させる方法。ZServerも並行して動いています。 Apache と Zopeのホストを分けたいときにも必要です。 - 具体的な方法 - Zope の設定 /usr/local/zope/startの中の最後の行
exec /usr/local/zope/bin/python $cwd/z2.py "$@"
exec /usr/local/zope/bin/python $cwd/z2.py -F 10999 "$@"
にします。10999は適当なポート番号。ヨソとあたらなきゃなんでもいいです(8000番以降がいいですが)。 - 同一マシン上の場合には named pipe も使えます。 sniffer にひっかからないなどのメリットがあるかもしれません - named pipe の作りかた
  mknod /usr/local/zope/var/fcgi.soc p
# unix屋にとっては常識だけど、普通、知りませんよね(^^;; このときは
exec /usr/local/zope/bin/python $cwd/z2.py -F $cwd/var/fcgi.soc "$@"
になります。 - Apache の設定 http://www.fastcgi.com/dist/ から mod_fastcgi-2.x.x.tar.gz をダウンロードします。
tar xzvf mod_fastcgi-2.x.x.tar.gz
cd mod_fastcgi-2.x.x
cp Makefile.AP2 Makefile
Makefile の中で
top_dir = /usr/local/apache2
となっているところを必要に応じて変えます(RedHat9,OS Xは /etc/httpd でした)
make
make install (要 root)
- httpd.conf
LoadModule fastcgi_module modules/mod_fastcgi.so
を追加、apacheを再起動します。
# 再度再起動が必要だが、ここでインストールエラーを切りわけたいので。 httpd.confの最後のほうにこんなエントリをかきます。
NameVirtualHost zope.who.com
<VirtualHost zope.who.com>
  ServerName zope.who.com
  DocumentRoot /usr/local/zope/doc/who
  <Location />
    SetHandler fastcgi-script
  </Location>
</VirtualHost>
FastCgiExternalServer /usr/local/zope/doc/who \
        -host localhost:10999 \
        -pass-header Authorization
を追加し、apacheを再起動します。 /usr/local/zope/doc/who はファイルもディレクトリもなくてもokです。 Apache的には - URL からどこを観にいくか算出 - それが !FastCgiExternalServer で指定した場所やその下だったら - -host での指定ホスト:ポートを見にいく みたいなので、 - !VirtualHostを設定し、 - !DocumentRoot を適当に指定し - !FastCgiExternalServer を同一にすると !VirtualHost で指定したサイト全体が zope にforwardされる。ということのようです。 Zope の /plone に plone site を作り、それを http://plone.who.com/ でアクセスさせたいときは
NameVirtualHost plone.who.com
<VirtualHost plone.who.com>
  ServerName plone.who.com
  DocumentRoot /usr/local/zope/doc/who
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=^/plone
  RewriteRule ^/(.*) /plone/%{REQUEST_URI} [L]
</VirtualHost>
で・・・動きますが、/plone の直下には plone で始まるオブジェクトは作れません。 FastCGIの利点は、SiteRoot を使わなくていいことです。 欠点はちょっとめんどいのと、proxy 型でないため、場合によっては情報がZope に渡らないかもしれないことです。 # RewriteRule + VHM + SiteRoot はproxy型です