インストールと起動


戻る

インストール

esehttpdは現在のところ、GNU/Linuxでのみ動作確認しています。一部のソースがGNU libc独自の関数を必要とするため、他のUnixシステムではコンパイルできない可能性があります。
esehttpdをコンパイル・実行するにはOpenSSLが必要ですので、インストールする前にOpenSSLをあらかじめインストールしておいてください。 またRubyモジュール(cgi-ruby)を組み込むためにはRubyのshared libraryがインストールされている必要があります。cgi-rubyを組み込む場合はRubyを--enable-sharedでビルドし、インストールしてからesehttpdをビルドしてください。
esehttpdをインストールするには、バイナリRPMパッケージが使える場合はそれを使い、使えない場合はソースからコンパイルしてください。RPMパッケージからインストールした場合には/usr/以下にインストールされ、ソースからコンパイルした場合には/usr/local/以下にインストールされます。

Esehttpdのソースからのコンパイル・インストール

Esehttpdのtar.gzファイルを展開したら、できたディレクトリにcdして
  $ ./configure
  $ make
と実行します。ソースがコンパイルできたら、
  # make install
と実行すると、/usr/local/以下にインストールされます。インストール完了後は、
  # /usr/local/sbin/esectl start
  # /usr/local/sbin/esectl stop
でそれぞれesehttpdを起動・停止できます。起動後は/usr/local/lib/esehttpd/log/error_logにエラー等のログが残ります。

RPMパッケージによるインストール

RPMバイナリパッケージが利用できるシステムでは、esehttpdのRPMパッケージをインストールするだけでesehttpdが利用できます。
  # rpm -Uvh esehttpd-????.i586.rpm
のようにしてインストールしてください。この場合esehttpd関連のファイルは主に/usr/以下にインストールされます。起動と停止はそれぞれ、
  # /etc/rc.d/init.d/esehttpd start
  # /etc/rc.d/init.d/esehttpd stop
で行います。エラー等のログは/usr/lib/esehttpd/log/error_logに残ります。

RPMパッケージをソースから作ってインストール

RPMバイナリパッケージは無い場合でも、RPMが使えるシステムならesehttpdのソースコードからRPMバイナリパッケージを作り、それをインストールすることができます。
  # rpmbuild -ta esehttpd-????.tar.gz
とすればしばらくしてRPMバイナリパッケージが出来上がりますので、それを先の「RPMパッケージによるインストール」の手順でインストールしてください。

Rubyモジュールの組み込み

Rubyモジュール(cgi-ruby)を組み込むには、ソースからコンパイルする必要があります。configure時に
    $ ./configure --with-ruby
と指定するとRubyモジュールが組み込まれるようになります。(cgi-rubyを組み込んでビルドするとrealtime signalを利用せずにビルドされます。これは、cgi-rubyを組み込むとrubyインタプリタによってシグナルハンドラを設定され、動作に支障が出ることがあるためです。)

起動

インストール直後の設定ではポート80でesehttpdが起動するようになっています。他のプログラムがポート80にバインドされていないことを確かめてから、先述の方法でesehttpdを起動してください。esehttpd起動後、Webブラウザからhttp://localhost/を開くとテストページが表示されます。

esehttpdのコマンド行引数

先述のesectlと/etc/rc.d/init.d/esehttpdはいずれもesehttpd起動のためのスクリプトで、esehttpdデーモン自体は
  /usr/local/sbin/esehttpd
  /usr/sbin/esehttpd
のいずれか(インストール方法によって場所が異なる)にあります。このデーモン本体を引数無しで直接実行することによってもesehttpdを起動することができます。さらにこの実行形式には次のような引数を渡すことができます。
-n
forkせずにフォアグラウンドで実行します。このオプションが付いてない時は起動後すぐにforkしてバックグラウンドで実行します。
-s
エラーログをファイルではなく標準エラー出力に出します。また、このオプションを付けると暗黙のうちに-nオプションも付けたことになります。
-d
デバグモードで実行します。コンパイル時に-DDEBUGを付けてコンパイルした場合には、このオプションを付けることによって大量のデバグ用メッセージが出ます。ただし通常の方法でコンパイルした場合は-DDEBUGは付けずにコンパイルされるため、このオプションはほとんど役にたちません。このオプションを付けると暗黙のうちに-sオプションも付けたことになります。
-l FILENAME
エラーログの出力先をFILENAMEにします。これを指定しない場合のエラーログの出力先は、
  /usr/local/lib/esehttpd/log/error_log
  /usr/lib/esehttpd/log/error_log
のいずれかになります。
-f FILENAME
設定ファイルをFILENAMEから読み込みます。これを指定しない場合の設定ファイルの場所は、
  /usr/local/lib/esehttpd/conf/esehttpd.conf
  /usr/lib/esehttpd/conf/esehttpd.conf
のいずれかになります。
-p
realtime signals対応でビルドされている場合でも、realtime signalsを使わずに常にpollを使います。これを付けると、realtime signalsが使える環境でビルドしたesehttpdを、realtime signalsが使えない環境でも実行することができます。このオプションを付けずに異なる環境でビルドした実行形式を無理矢理実行すると、一見動作しているようでも接続のハングアップなどの誤動作をすることがあります。たとえばLinux 2.4以降の環境でビルドしたesehttpdを、Linux 2.2カーネルで動作させるためにはこの -p オプションを付けて起動する必要があります。

戻る
Akira Higuchi