2013年8月12日月曜日
RaspberryPiでのapache2
暫く他のことをしていたため更新が滞ってしまいました。
外部サーバーにapacheをたててRaspberryPiから外部サーバーに接続してコントロールする構成にしていましたが、たまにコマンドが詰まってしまって外部サーバーのdaemonを再起動しないと動作しなくなってしまう現象が起きていたので接続方法を変えることにしました。
今回は、RaspberryPiにapacheを立てて、ここからha1control daemonをcgi経由で叩くようにしました。
外部との接続は別途作ることにして取り敢えずはLAN内でうまく動作するようにしていきます。
まずはRaspberryPiにapache2とphpをinstallします。phpは将来の拡張用です。
# sudo apt-get install apache2
# sudo apt-get install libapache2-mod-php5
# a2enmod rewrite
/etc/apache2/ports.confを編集してapache2のLAN内でのアクセス方法を設定します。
ServerName hogehoge.jp
NameVirtualHost *:47911
Listen 47911
<IfModule mod_ssl.c>
Listen 47910
</IfModule>
あとで外部サーバーを立てるときのためにWANとLANで同じアクセスで出来るようにhttps経由にします。
ただRaspberryPiにはSiri-proxyのportもhttpsの443で開けているのでapache2側のhttpsのポートを他のところに移動します。どこでも構わないのですが今回は47910を使いました。
LAN内でのアクセス件debug用に47911にhttpのportも開けておきます。ここを開ける場合はLANのWiFiのSecurityをきちんと設定しないと危険です。
/etc/apaches/site-available/defaultの編集
<VirtualHost *:47911>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Includes ExecCGI FollowSymLinks
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
Options ExecCGI SymLinksIfOwnerMatch
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
/etc/apaches/site-available/default-sslの編集
<IfModule mod_ssl.c>
<VirtualHost *:47910>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www>
Options Includes ExecCGI FollowSymLinks
AllowOverride None
Order allow,deny
allow from all
AuthUserFile /etc/apache2/htpasswd
AuthName "HA-1 Control authentication"
AuthType Basic
require valid-user
SSLOptions +FakeBasicAuth +StdEnvVars
SSLRequireSSL
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
Options ExecCGI SymLinksIfOwnerMatch
AllowOverride None
Order allow,deny
Allow from all
SSLOptions +StdEnvVars
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/private_ha1server.crt
SSLCertificateKeyFile /etc/apache2/ssl/private_ha1server.key
SSLCACertificateFile /etc/apache2/ssl/ha1server_cert.pem
SSLVerifyClient require
SSLVerifyDepth 1
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
</VirtualHost>
</IfModule>
sslの設定を有効にします。
# a2ensite default-ssl
# service apache2 reload
RaspberryPiのIPアドレスが192.168.0.100だとすると、PCのbrowserで http://192.168.0.100:47911/ を開いた時に'It works!'のメッセージが表示されるのを確認します。
ここまで出来れば、とりあえずhttpアクセスのapacheの動作としてはOKです。
ha1control daemonへの接続とhttpsアクセスの設定についてはまた今度。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿