2017-02-22 06:00 AM

前回のブログで紹介したOrange Pi PCのルータ化(hostapd+dnsmasq)により、WiFi経由でPCまたは携帯端末からOrange Pi PCに直接アクセスすることができるようになりました。Raspberry Pi, Orange Piなどのコンピュータボードにおける従来のWiFiネットワーク設定(市販ルータのアクセスポイントとパスワードの入力)は、SSH接続によりターミナルからコマンド入力で設定するか、ボードにモニターを接続し画面上の表示メニューに従い設定しなければなりませんでした。しかし、コンピュータボード自体をネットワーク対応製品として成立させるためには、このネットワーク設定を他の端末から簡単に設定できるようにすることが必要条件となります。Rasberry Pi向けに配布されているRaspAPはこの条件を満たすウェブフロントエンドの一つです。今回これをマニュアルインストールすることでOrange Pi PCにも同様の機能を持たせています。


■ 対象ハードとOS

前回のブログ内容と同じ条件です。

Orange Pi PC: ARMBIAN 5.25 stable Debian GNU/Linux 8 (jessie) 3.4.113-sun8i

■ 設定プロセス

  1. lighttpd, php5-cgi のインストール
  2. gitによるウェブフロントエンドダウンロード
  3. ウェブ画面上の各ボタン操作を有効にするためのアクセス権の設定

1. lighttpd, php5-cgi のインストール

簡易ウェブサーバとしての機能を追加するため以下コマンドによりlighttpd, php5-cgiインストールします。

$ sudo apt-get install lighttpd php5-cgi

lighttpdのfastcgiモジュールを有効にし再起動します。

$ sudo lighty-enable-mod fastcgi-php
$ sudo service lighttpd restart

2. gitによるウェブフロントエンドダウンロード

lighttpdのインストールにより/var/wwww/htmlフォルダが作成されます。/var/www/htmlフォルダの中身を全て削除し、このhtmlフォルダ内にgitによりRaspAPフロントエンドコンテンツ一式をダウンロードします。

$ sudo rm -rf /var/www/html/*
$ sudo git clone https://github.com/billz/raspap-webgui /var/www/html

htmlフォルダ内の全ての所有権をwww-dataに付与します。

$ sudo chown -R www-data:www-data /var/www/html

RaspAPの設定ファイルraspap.php/etc/raspapフォルダ作成後ここにコピーしwww-dataに所有権を付与します。

$ sudo mkdir /etc/raspap
$ sudo mv /var/www/html/raspap.php /etc/raspap/
$ sudo chown -R www-data:www-data /etc/raspap

3. ウェブ画面上の各ボタン操作を有効にするためのアクセス権の設定

ネットワーク設定に関係する各種デーモンはシステムが管理しているため、www-data(ウェブサーバ)には本来これらを操作する権限がありません。www-dataにデーモン操作の権限を付与するため/etc/sudoersの文末に以下を追加します。

$ sudo nano /etc/sudoers
## www-data ALL=(ALL) NOPASSWD:/sbin/ifdown wlan0
## www-data ALL=(ALL) NOPASSWD:/sbin/ifup wlan0
www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wpa_supplicant/wpa_supplicant.conf
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant.conf
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli scan_results
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli scan
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli reconfigure
## www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/hostapddata /etc/hostapd/hostapd.conf
## www-data ALL=(ALL) NOPASSWD:/etc/init.d/hostapd start
## www-data ALL=(ALL) NOPASSWD:/etc/init.d/hostapd stop
## www-data ALL=(ALL) NOPASSWD:/etc/init.d/dnsmasq start
## www-data ALL=(ALL) NOPASSWD:/etc/init.d/dnsmasq stop
## www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dhcpddata /etc/dnsmasq.conf
www-data ALL=(ALL) NOPASSWD:/sbin/shutdown -h now
www-data ALL=(ALL) NOPASSWD:/sbin/reboot

hostapdやdnsmasqに関わる設定は変更できないようにコメントとしています(有効にするかどうかは任意)。

システムの停止・再起動、市販ルータへのアクセスに関わる箇所だけに権限を付与しています。

システムを再起動しブラウウザにホストネームまたはhostapdによるOrange Pi PCのIPアドレスを入力して動作を確認して下さい。

 

アクセス後ユーザ名とパスワードを入力します。デフォルトユーザ名はadmin、パスワードはsecretです。

 

ダッシュボード画面にOrange Pi PC本体のアクセスポイントインターフェイス、IPアドレスなどが表示されます。

 

市販ルータとOrange Pi PCとのWiFi接続設定はここで行います。市販ルータのSSIDとパスワードを入力して下さい。ここを設定することでOrange Pi PCに接続されたPCや携帯端末からインターネットにアクセスできるようになります。

 

Orange Pi PCをアクセスポイントにする設定です。hostapdによる設定が表示されます。上記項目3の設定によりここは表示のみとなっています。

 

DHCPサーバ(dnsmasq)の設定です。Orange Pi PCのIPアドレスと接続端末へリリースされるIPアドレスなどを設定します。上記項目3の設定によりここは表示のみとなっています。

 

Gateway APにブラウザからアクセスするときに必要なゲートウェイのユーザ名とパスワードの設定ページです。

 

システムの停止・再起動のページです。