▼ ウェブサーバをたてよう
ウェブサーバと言えば、Apache です。Apache を導入すれば、 自宅サーバで簡単にウェブを配信できるのです。
Apache って?
Apacheは世界一のシェアを誇る WWW(World Wide Web)のサーバ用ソフトウェア(ウェブサーバ)で、
もともとは NCSA (米国立スーパーコンピュータ応用研究所) が作っていたウェブサーバがベースになっています。
(Apache 0.2 は、NCSA httpd 1.3 にパッチを当てたものです。)
NCSA のウェブサーバはとても高機能でしたが、
多くのバグが含まれていたため、ソフトウェアパッチを提供していた人達が集まり
NCSAをベースとした別のウェブサーバを開発するようになりました。
このソフトウェアが Apache であり、その名のとおり「A patch」(パッチを当てた)をもじってアメリカの先住民族の部族名が名づけられました。
インストール
さっそく 'apt-get install apache' でさくっとインストールします。 これだけでも動きます。 ためしに、ブラウザから 'http://サーバ名/' にアクセスしてみましょう。
こんな画面が出てきましたね。これは、サーバの /var/www/index.html が表示されています。 ですので、 /var/www/ に HTML ファイルを置けば、もうあなた専用のウェブサーバです。
Apache の設定ファイルは、 /etc/apache にあります。たいていの設定は httpd.conf に記述されます。
もろもろの設定
ServerName がコメントアウトされていますので、ドメイン名を設定します。
ServerName pc110.homelinux.com
Apache の起動時に、ログ (/var/log/apache/error.log) にエラーが出ています。 なにやらモジュールを読み込もうと思ったらファイルがないということなので
LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so
を#でコメントアウトしたら、エラーがなくなりました。
次は CGI を有効にします。
#AddHandler cgi-script .cgi .sh .pl
の1文字目の#を削除すればOKです。
設定の反映は、
# /etc/init.d/apache reloadです。
Virtual Host の設定
次は、Virtual Host の設定です。Virtual Server は、物理的にサーバが1台しかなくても URL によって Document Root を変えることができます。具体的には、
- 'http://www.osaru.net/' なら、/var/www/osaru/ を DocumentRoot にする
- 'http://www.monkey.com/' なら、 /home/monkey/html/ を DocumentRoot にする
などの設定ができます。
この仕組みを使うと、自宅サーバが一台しかなくても、メール用のドメインとWEB用のドメインを 使い分けることができるのです。
エディタで、/etc/apache/httpd.conf を開くと、1000行目の手前くらいに下のような記述があると思います。
#
# If you want to use name-based virtual hosts you need to define at
# least one IP address (and port number) for them.
#
#NameVirtualHost 12.34.56.78:80
#NameVirtualHost 12.34.56.78
この下に
NameVirtualHost *
を追加します。また、その下に
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
#
#<VirtualHost ip.address.of.host.some_domain.com>
# ServerAdmin webmaster@host.some_domain.com
# DocumentRoot /www/docs/host.some_domain.com
# ServerName host.some_domain.com
# ErrorLog logs/host.some_domain.com-error.log
# CustomLog logs/host.some_domain.com-access.log common
#</VirtualHost>
とあるので、この下に
<VirtualHost *>
ServerName pc110.homelinux.com
DocumentRoot /disk/0502_2/web/pc110
ScriptAlias /cgi-bin/ /disk/0502_2/web/pc110/cgi-bin/
</VirtualHost>
と加えます。これで、 ブラウザから、http://pc110.homelinux.com にアクセスされたら DocumentRoot が /disk/0502_2/web/pc110 を、CGI のディレクトリが /disk/0502_2/web/pc110/cgi-bin/ を見に行くようになります。
Server Side Include (SSI) の設定
サーバサイドインクルードを使用すると、HTMLで動的コンテンツが作成できます。 たとえば、ファイルの保存日を表示させたり、HTMLから別のHTMLを読み込んだりできます。
/etc/apache/httpd.conf に下のような記述があるので、コメントを外してください。
# LoadModule includes_module /usr/lib/apache/1.3/mod_include.so
また、先ほど追加した、VirtualHost の下に以下を追加します。 これは、実行権限のあるファイルを、SSIの対象にするという指定です。
<Directory /disk/0502_2/web/>
AllowOverride All
Options Indexes Includes FollowSymLinks MultiViews
XBitHack full
Order allow,deny
Allow from all
AddHandler image/gif .gif
</Directory>