Personal tools
You are here: Home Wiki FastCGI
FrontPage >> Log >>

FastCGI

Document Actions
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 "$@"
      
      になります。

  • 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型です

 
そちらのOSの時刻なので 正確性はあなた次第
 
こういう意味のないの好き
 
本をお勧め中
 
CDもお勧め中
のだめカンタービレ ベスト100
ドラマの演奏とは違います。でもこの感じでこの価格ならアリかと
 
消耗品や家電
 
よく使うサイト
社名ロゴ88×631
 
ぐぐってみる
 
誰が使うんだろう
 

Powered by Plone