Raspberry Pi 4 に dhcpstatusを導入する

技術

インストール

事前にisc dhcp serverをインストール&設定しておく。

apache2も。

$ sudo apt-get install apache2

ここを参考に設定(2014年の記事だけどいけた)

dhcpstatusでIPアドレスリース状況を確認する(dhcpstatusのCPU100%対策) - ままれのblog
RaspberryPiはDHCPサーバを兼ねているので、dhcpstatusを使...

上記記事+追加設定

dhcpstatus.conf 置き場はここ

慣れてたhttpdとディレクトリ構成が違ったので手間取った。

pi@raspberrypi:/etc/apache2/sites-available $ more dhcpstatus.conf
Alias /dhcpstatus/ /var/www/dhcpstatus/
<Directory /var/www/dhcpstatus/>
	DirectoryIndex dhcpstatus.cgi
	AllowOverride None
	Options ExecCGI
	Order allow,deny
	Allow from all
</Directory>

有効化する必要あり

pi@raspberrypi:/etc/apache2/sites-available $ sudo $ sudo a2enmod cgid

pi@raspberrypi:/etc/apache2/sites-available $ sudo a2ensite dhcpstatus.conf
Enabling site dhcpstatus.
To activate the new configuration, you need to run:
  systemctl reload apache2

pi@raspberrypi:/etc/apache2 $ sudo systemctl reload apache2

エラー対応

Can’t locate timelocal.pl


Can't locate timelocal.pl in @INC (@INC contains: /usr/local/dhcpstatus /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at /usr/local/dhcpstatus/dhcpstatus/Lease.pm line 59

ここを参考に

古いCGIが動かない・500エラーでの対応方法 jcode.pl timelocal.pl perl5 以降の場合 | Web Juice
新しいサーバーに移設した際に、CGIが動作しない。 perl4のサーバーから、perl5.xx のサーバーへ移動した際に、エラーで動作しなくなりました。 ※パーミッションに関しては、各サーバーにてご確認ください。(サーバー環境としてCGIが動作する状態でのエラーが前提です) jcode.plでのエラー

該当行を以下に置換

use Time::Local;

Can’t locate CGI.pm

Can't locate CGI.pm in @INC (you may need to install the CGI module) (@INC contains: /usr/local/dhcpstatus /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at /usr/local/dhcpstatus/dhcpstatus/display_html.pm line 27.
BEGIN failed--compilation aborted at /usr/local/dhcpstatus/dhcpstatus/display_html.pm line 27.
Compilation failed in require at /usr/local/dhcpstatus/dhcpstatus/dhcpstatus_cgi.pm line 27.
BEGIN failed--compilation aborted at /usr/local/dhcpstatus/dhcpstatus/dhcpstatus_cgi.pm line 27.
Compilation failed in require at /var/www/dhcpstatus/dhcpstatus.cgi line 28.
BEGIN failed--compilation aborted at /var/www/dhcpstatus/dhcpstatus.cgi line 28.

ライブラリのインストールで対応

$ sudo apt install libcgi-session-perl

最終ディレクトリ構成(確認用)

pi@raspberrypi:/var/www/dhcpstatus $ ls -al
合計 12
drwxr-xr-x 2 www-data www-data 4096  6月 28 01:55 .
drwxr-xr-x 6 www-data www-data 4096  6月 28 03:07 ..
-rwxr-xr-x 1 www-data www-data 1369  8月 12  2001 dhcpstatus.cgi

pi@raspberrypi:/usr/local/dhcpstatus $ ls -al
合計 16
drwxr-xr-x  3 root root 4096  6月 28 03:32 .
drwxr-xr-x 11 root root 4096  6月 28 01:52 ..
drwxr-xr-x  2 root root 4096  6月 28 03:22 dhcpstatus
-rw-r--r--  1 root root 1927  6月 28 03:31 dhcpstatus.ini

無事動いた

コメント

タイトルとURLをコピーしました