FrontPage
>>
Log
>>
FastCGI
last edited 7 years ago by jack
この情報は古い情報です
意味のない情報ではないですが、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 "$@"
になります。
- Zope の設定
- Apache の設定
から 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 に渡らないかもしれないことです。
- httpd.conf