FreeBSD 9.1にapcupsdをインストール(2/2)

NAS,パソコン・インターネット

APC(シュナイダーエレクトリック)のUPS、「APC ES 500」を使っています。

今は、後継機が出ています。

[amazonjs asin="B0039P72UE" locale="JP"]

この装置は、鉛蓄電池を使っています。最近、リチウムイオン電池を使った機種が発売されました。

[amazonjs asin="B00D2P22SI" locale="JP"]

前回は、apcupsdのインストールまで説明しました。

今回は、apcupsdの状態を、web画面で確認できる様に設定します。

httpサーバは、Apache 2.4を使っています。

ちゃんと動作させるまで、かなりハマりました…。

apcupsdの設定状態を見るcgiは、"multimon.cgi"(バイナリファイル)なのですが、最初に設定していた時は、このファイルそのもののダウンロードが始まっちゃうのです。

さんざん調べた結果、次の手順で設定することで、きちんと動作させることができました。

  1. cgiファイルのコピー
  2. httpd.confの設定
  3. apache再起動
  4. 動作確認

それでは、順を追って説明します。

1. cgiファイルのコピー

apcupsdをビルドする時に、CGI-BINオプションを設定していれば、"/usr/local/etc/apcupsd/cgi"ディレクトリに、次の4つのファイルができているはずです。

$ ls /usr/local/etc/apcupsd/cgi/
multimon.cgi	upsfstats.cgi	upsimage.cgi	upsstats.cgi

これを、ApacheのCGIディレクトリにコピーします。

$ sudo cp -p /usr/local/etc/apcupsd/cgi/* /usr/local/www/apache24/cgi-bin/

2. httpd.confの設定

Apacheの設定ファイル"/usr/local/etc/apache24/httpd.conf"を編集します。

まず、CGI関係のモジュールをロードする様にします。次の行のコメントを外します。

LoadModule cgi_module libexec/apache24/mod_cgi.so
LoadModule cgid_module libexec/apache24/mod_cgid.so

実は、これが最大のハマった原因でした。次のウェブページで解決することができました。ありがとうございます。

次に、cgi-binにあるファイルを、CGIとして実行できる様に設定します。

AddHandlerがコメントアウトされているはずなので、コメントを外します。

AddHandler cgi-script .cgi

これだけで基本設定は終了です。

次の設定は好みの問題です。

“/usr/local/etc/apache24/Includes/apcupsd.conf"と言うファイルを作って、次の内容を記載します。

Redirect permanent /apcupsd/ /cgi-bin/multimon.cgi

ファイルを作らなくても、httpd.confに直接記述しても構いません。

こうすることで、ウェブサーバの"/apcupsd/"をアクセスすることで、multimon.cgiが起動します。

次のページを参考にしました。Thank you!

3. apache再起動

Apacheを再起動します。

$ sudo /usr/local/etc/rc.d/apache24 restart

エラーなく起動する事を確認してください。

4. 動作確認

では、実際にアクセスしてみます。サーバのURL"http://example.com/apcupsd/"にアクセスすると、次の"http://example.com/cgi-bin/multimon.cgi"にリダイレクトされて、UPSの状態が表示されます。

URLは、各自の環境で違いますので、読み替えてください。

次の様に、表示されれば成功です。USBケーブルで接続している場合です。

apcupsd USB

停電になり、バッテリー動作に切り替わると、次のようになります。

apcupsd USB バッテリー動作

Ehter netでslave動作をしている時は、次の画面になります。

apcupsd slave

Posted by お市のかた