前回コンパイルした、apache httpd を動かしてみます。
httpd を動かす前に設定ファイルの修正があります。apache は、最初複数の設定ファイルだったのが、一度 conf/httpd.conf にまとめられて、その後また Include を使ってファイルを読み込むことができるようになり、 conf/extra ディレクトリの下に各種設定ファイルがおかれるようになったと思います。
ここからは、Apache HTTP サーバ バージョン2.2 ドキュメント(http://httpd.apache.org/docs/2.2/) を参考に設定していきます。既にドキュメントが日本語になっていて助かります。
とりあえずは、extra 以下の設定は行わず、起動してみます。
Apache httpd の Order ディレクティブは、/etc/hosts.allow , /etc/hosts.deny とは少し異なります。
Order Deny,Allow : Deny に合わないか、Allow に合うものは許可(Allow がなければ許可)
Order Allow,Deny : Allow に合わないか、Deny に合うものは拒否(Deny がなければ拒否)
上の例でいくと、Directory / の場合は、すべて拒否、Directory /home/data/www 、/home/data/cgi-bin の場合は、
は、Allow条件に合う以外はすべて拒否となります。
/etc/hosts ファイルを修正すると共に、確認する PC のホストファイルを修正します。
/etc/hosts と C:\WINDOWS\system32\drivers\etc\hosts
に、www.example.co.jp の名前を、colinux マシンのIPアドレスに別名として設定します。
これで、ブラウザからみると、403 Forbidden が表示されました。ためしに /home/data/www に index.html を作成してみます。
テスト用に、localhost からは拒絶にしておきます。
console ウィンドウから見てみると、localhost になるので拒絶されるはずです。
$ lynx http://www.example.co.jp/
Looking up www.example.co.jp
Making HTTP connection to www.example.co.jp
Alert!: Unable to connect to remote host.
lynx: Can't access startfile http://www.example.co.jp/
$
正しく拒絶されています。
UserDir が指定されていないので、ユーザディレクトリ置換機能は動作しません。指定するときは、conf/extra/httpd-userdir.conf に指定してインクルードすればOKです。
また、別の PC や coLinux を動かしている PC の Windows 側から見ると、正しく表示されました。うまく動いています。
coLinux を動かしている PC で動いている Windows は、実質的に別マシンとして考えられるのでテストはすごく便利ですね。これもcoLinux の良いところだと思います。
httpd を動かす前に設定ファイルの修正があります。apache は、最初複数の設定ファイルだったのが、一度 conf/httpd.conf にまとめられて、その後また Include を使ってファイルを読み込むことができるようになり、 conf/extra ディレクトリの下に各種設定ファイルがおかれるようになったと思います。
ここからは、Apache HTTP サーバ バージョン2.2 ドキュメント(http://httpd.apache.org/docs/2.2/) を参考に設定していきます。既にドキュメントが日本語になっていて助かります。
# cd /usr/local/httpd/conf # vi httpd.conf (次の行を修正) ServerRoot "/usr/local/httpd" User www Group www ServerAdmin espiya@example.co.jp ServerName www.example.co.jp:80 DocumentRoot "/home/data/www" <Directory /> Options None AllowOverride None Order deny,allow Deny from all </Directory> <Directory "/home/data/www"> Options None AllowOverride None Order allow,deny Allow from 192.168.1 </Directory> <IfModule alias_module> ScriptAlias /cgi-bin/ "/home/data/cgi-bin/" </IfModule> <Directory "/home/data/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from 192.168.1 </Directory> Include conf/extra/httpd-mpm.conf Include conf/extra/httpd-languages.conf # # echo 'www:x:130:' >> /etc/group # useradd -u 130 -g 130 -d /home/www -s /sbin/nologin www # # mkdir /home/data/www # mkdir /home/data/cgi-bin #
とりあえずは、extra 以下の設定は行わず、起動してみます。
Apache httpd の Order ディレクティブは、/etc/hosts.allow , /etc/hosts.deny とは少し異なります。
Order Deny,Allow : Deny に合わないか、Allow に合うものは許可(Allow がなければ許可)
Order Allow,Deny : Allow に合わないか、Deny に合うものは拒否(Deny がなければ拒否)
上の例でいくと、Directory / の場合は、すべて拒否、Directory /home/data/www 、/home/data/cgi-bin の場合は、
は、Allow条件に合う以外はすべて拒否となります。
# cd /usr/local/httpd # bin/apachectl start #
/etc/hosts ファイルを修正すると共に、確認する PC のホストファイルを修正します。
/etc/hosts と C:\WINDOWS\system32\drivers\etc\hosts
に、www.example.co.jp の名前を、colinux マシンのIPアドレスに別名として設定します。
192.168.1.100 fedora fedora.example.co.jp www.example.co.jp
これで、ブラウザからみると、403 Forbidden が表示されました。ためしに /home/data/www に index.html を作成してみます。
テスト用に、localhost からは拒絶にしておきます。
$ lynx http://www.example.co.jp/
Looking up www.example.co.jp
Making HTTP connection to www.example.co.jp
Alert!: Unable to connect to remote host.
lynx: Can't access startfile http://www.example.co.jp/
$
正しく拒絶されています。
UserDir が指定されていないので、ユーザディレクトリ置換機能は動作しません。指定するときは、conf/extra/httpd-userdir.conf に指定してインクルードすればOKです。
また、別の PC や coLinux を動かしている PC の Windows 側から見ると、正しく表示されました。うまく動いています。
coLinux を動かしている PC で動いている Windows は、実質的に別マシンとして考えられるのでテストはすごく便利ですね。これもcoLinux の良いところだと思います。