Develop and Download Open Source Software

Recent Changes

2010-05-04
2010-02-04
2010-01-31
2010-01-24
2010-01-23

Wiki Guide

Side Bar

FastCGI環境下による高速化

FastCGIはCGIを常駐化させるソフトウェアであり、FastCGIに対応したCGIスクリプトを高速化させることが出来ます。

img0chもまたFastCGI対応しているため、FastCGIを使って動作を高速化させることが出来ます。

FastCGIをインストール

FastCGIをインストールします。サーバーによっては最初からインストールされている場合もあります。

FastCGIは以下のURLから入手できます。

cpanシェルからインストールする場合は以下になります。

  cpan install FCGI

拡張子fcgiのファイルを移動させる

/test/img0ch/3/Img0ch/FCGI/bin/にある拡張子がfcgiのファイルを /test/ディレクトリに移動させます。拡張子をcgiに変更して上書きすることが出来ますが、拡張子がcgiのファイルをバックアップをとってことを推奨します。

設定を作成する(Apache)

FastCGI環境下で動作させるための設定ファイルを作成し、以下の内容を書き込みます。 /PATH/TO/にはimg0chがインストールされている相対URLを指定します。ここではApacheで動作させる場合の例をとります。

拡張子がfcgiの場合はmod_rewriteのインストールが必要になりますが、拡張子がcgiの場合はAddHandlerをSetHandlerに変更し、 RewriteEngine以下の行を削除してください。

  FastCgiIpcDir /tmp/.fcgi
  AddHandler fastcgi-script .fcgi
  RewriteEngine On
  RewriteCond %{REQUEST_URI} ^/PATH/TO/test/[\w\-]+\.cgi
  RewriteRule ^.*/test/([\w\-]+)\.cgi(.*)$ /PATH/TO/test/$1.fcgi/$2 [L]

httpd.confの中に記述しても問題はありませんが、なるべくなら別ファイルとして作成することをお薦めします。別ファイルとして作成した場合は

  # /path/to/img0ch.confはパス例
  Include /path/to/img0ch.conf

をhttpd.confに追加する必要があります。

サーバを再起動させる

サーバーを再起動させます。

FastCGI環境下による高速化(外部サーバとして起動させる場合)

上記に加えて外部サーバとして起動させる場合の方法です。

FastCGIのインストール

FastCGIをインストールします。サーバーによっては最初からインストールされている場合もあります。

FastCGIは以下のURLから入手できます。

cpanシェルからインストールする場合は以下になります。

  cpan install FCGI

img0ch-fcgi.plを稼働させる

/test/img0ch/3/Img0ch/FCGI/bin/img0ch-fcgi.plを web公開パス以下以外の任意のパスに移動させ、実行権限をあたえます。

img0ch-fcgi.plを稼働させます。以下は実行例です。 img0ch-fcgi.pl内にもドキュメントがかかれています。

  img0ch-fcgi.pl \
    -c /path/to/test/img0ch-config.cgi \
    -i /PATH/TO/test/img0ch/ \
    -l /tmp/img0ch-fcgi.sock \
    -n 5
-c:: img0ch-config.cgiのパスを指定します -i:: img0chのライブラリパスを指定します -l:: はソケットのパスを指定します。ファイルのパス、あるいは HOST:PORT形式のリモートホスト先を引数にとります -n:: 起動時のプロセス数を指定します。

設定ファイルを作成する

設定ファイルを追記または作成をします。以下は設定例です。

  # Apacheの場合
  # -socketにSTEP.3での-lで指定したソケットのパスを指定する
  # mod_rewriteが必要
  FastCgiExternalServer /tmp/img0ch.fcgi -socket /tmp/img0ch-fcgi.socket
  RewriteCond %{REQUEST_URI} ^.*/test/[\w\-]+\.cgi
  RewriteRule ^.*/test/[\w\-]+\.cgi(.*)$ /tmp/img0ch.fcgi/$1 [L]
  # lighttpdの場合
  # 引数の"socket"にSTEP.3での-lで指定したソケットのパスを指定する
  $HTTP["url"] =~ "/test/[\w\-]+\.cgi" {
    fastcgi.server = (
      ".cgi" => (
        "localhost" => (
          "socket"      => "/tmp/img0ch-fcgi.socket",
          "check-local" => "disable"
        )
      )
    )
  }

SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.