PC110で
自宅サーバをつくろう

▼ ウェブサーバをたてよう

ウェブサーバと言えば、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://サーバ名/' にアクセスしてみましょう。

Apacheの初期表示画面

こんな画面が出てきましたね。これは、サーバの /var/www/index.html が表示されています。 ですので、 /var/www/ に HTML ファイルを置けば、もうあなた専用のウェブサーバです。

Apache の設定ファイルは、 /etc/apache にあります。たいていの設定は httpd.conf に記述されます。

もろもろの設定

ServerName がコメントアウトされていますので、ドメイン名を設定します。

/etc/apache/httpd.conf
ServerName pc110.homelinux.com

Apache の起動時に、ログ (/var/log/apache/error.log) にエラーが出ています。 なにやらモジュールを読み込もうと思ったらファイルがないということなので

/etc/apache/httpd.conf
LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so

を#でコメントアウトしたら、エラーがなくなりました。

次は CGI を有効にします。

/etc/apache/httpd.conf
#AddHandler cgi-script .cgi .sh .pl

の1文字目の#を削除すればOKです。

設定の反映は、

# /etc/init.d/apache reload

です。

Virtual Host の設定

次は、Virtual Host の設定です。Virtual Server は、物理的にサーバが1台しかなくても URL によって Document Root を変えることができます。具体的には、

  1. 'http://www.osaru.net/' なら、/var/www/osaru/ を DocumentRoot にする
  2. 'http://www.monkey.com/' なら、 /home/monkey/html/ を DocumentRoot にする

などの設定ができます。

この仕組みを使うと、自宅サーバが一台しかなくても、メール用のドメインとWEB用のドメインを 使い分けることができるのです。

エディタで、/etc/apache/httpd.conf を開くと、1000行目の手前くらいに下のような記述があると思います。

/etc/apache/httpd.conf
#
# 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 に下のような記述があるので、コメントを外してください。

/etc/apache/httpd.conf
# LoadModule includes_module /usr/lib/apache/1.3/mod_include.so

また、先ほど追加した、VirtualHost の下に以下を追加します。 これは、実行権限のあるファイルを、SSIの対象にするという指定です。

/etc/apache/httpd.conf
<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>

PC110で自宅サーバをつくろう サイト管理者へメールする