| Apache
 Apacheについて
Apache(Apache日本語ページ)は、現在世界中で稼動しているWebサーバの約60%が採用しているフリーソフトウェアです。(Netcraftによる調査ページ)
Apacheとそれに関係するドキュメントをインフォサイエンスが日本語訳して掲載している、JAPACHEのページが参考になります。
現在は、安定バージョン(1.3.X)と最新機能バージョン(2.X)が同時に開発されています。
ここでは、BIGLOBE上の「名犬?タローのページ」をローカルのLAN環境に構築してみました。アクセスカウンタ等のCGIや、RealMediaやWindowsMediaのビデオ配信も出来る様にします。
 
 
 Apacheのインストール
まず、Apacheのページから最新版のtarballをダウンロードします。ここでは、安定バージョン(1.3.X)を使用ます。
 ・apache_1.3.23.tar.gz(2002年2月1日時点の最新版)
 
 
以下の手順でインストールします。
 
 | 
% tar zxvfp apache_1.3.23.tar.gz
% cd apache_1.3.23
% ./configure
% make
% su
# make install
 | 
 
 
 Apacheの設定(/usr/local/apache/conf/httpd.conf)
【前提条件】(()番号は、注記番号と同じです。)・ポート番号は、一般的なWebサーバと同様に「80」とします。(1)
 ・ユーザ「hnakamur」のホームディレクトリの下に「public_html」ディレクトリを作成し、HTMLファイルを置きます。(2)
 ・トップページは「index.htm」で、「https://taro/~hnakamur/」でアクセスできる様にします。(4)
 ・CGIはホームページ内の任意の場所に置いた拡張子「.cgi」ファイルで動作する様にします。(3,6)
 ・RealMediaやWindowsMediaのビデオ配信も出来る様にします。(5)
 
 
/usr/local/apache/conf/ディレクトリには、「httpd.conf」、「srm.conf」、「access.conf」の3つの設定ファイルがありますが、「httpd.conf」に全ての設定が集約されているので、他の2つは設定不要です。「httpd.conf」で必要な設定は、以下の様になります。注釈以外はデフォルトのままです。
 【/usr/local/apache/conf/httpd.conf】(関連部分のみを抜粋)
 
 | 
### Section 1: Global Environment
ServerType standalone
ServerRoot "/usr/local/apache"
KeepAlive On
MinSpareServers 5
MaxSpareServers 10
StartServers 5
### Section 2: 'Main' server configuration
Port 80       <--(1)8080を80に変更
User nobody
Group nobody
ServerAdmin hnakamur@taro.home
#ServerName taro.home
DocumentRoot "/usr/local/apache/htdocs"
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory "/usr/local/apache/htdocs">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
<IfModule mod_userdir.c>
    UserDir public_html
</IfModule>
<Directory /home/*/public_html>  <--(2)コメント外す
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI  <--(3)ExecCGI追加
    <Limit GET POST OPTIONS PROPFIND>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>
<IfModule mod_dir.c>
    DirectoryIndex index.html index.htm  <--(4)index.htm追加
</IfModule>
<IfModule mod_mime.c>
...
    AddType application/x-tar .tgz
    AddType video/x-ms-asf .asf .asx  <--(5)追加
    AddHandler cgi-script .cgi  <--(6)コメント外す
...
</IfModule>
### Section 3: Virtual Hosts
#NameVirtualHost *
#<VirtualHost *>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
 | 
 
「httpd.conf」の設定を変更したら、設定に問題が無いか以下のコマンドで確認します。
 
 | 
% /usr/local/apache/bin/apachectl configtest
Syntax OK
 | 
 
 
 RealMedia,WindowsMediaのMIMEの設定
WebサーバからRealMediaやWindowsMediaのビデオ配信する場合は、ファイルの拡張子に対応したMIMEの設定が必要です。「/usr/local/apache/conf/mime.types」にデフォルトの設定があります。RealMedia関連は、以下の様に記述されているので新たな設定は不要です。
 【/usr/local/apache/conf/mime.types】(RealMedia関連抜粋)
 
 | 
# MIME type			Extension
...
audio/x-pn-realaudio		ram rm
audio/x-pn-realaudio-plugin	rpm
audio/x-realaudio		ra
...
 | 
 
WindowsMediaについては、上記の「mime.types」に記述が無いので、「httpd.conf」の中に(5)で示した「AddType video/x-ms-asf .asf .asx」として設定を追加しました。
 
実は、残念ながら上記だけでは、RealMedia,WindowsMediaが正しく表示できません。メタファイルのramファイルや、asxファイルで記述しているURLの記述でサーバのパスの修正が必要です。例えば、ramファイルの記述は以下の様に修正しました。
 
 | 
(前)https://nakamura-hiroshi.com/www/video/011216/011216.rm
(後)https://taro/~hnakamur/video/011216/011216.rm
 | 
 
 
 CGIのperlのパス設定
CGIについては、perlのパス(/usr/bin/perl)がBIGLOBEのサーバ側のパス(/usr/local/bin/perl)と異なっているため、そのままでは動きませんでした。BIGLOBEのサーバと同じなる様にシンボリックリンクを作成しました。
 
 | 
# which perl  <--ローカルのマシンのパスを確認
/usr/bin/perl
# ln -s /usr/bin/perl /usr/local/bin/perl  <--BIGLOBEに合わせてシンボリックリンクを作成
# ls -li /usr/local/bin/perl
485115 lrwxr-xr-x  1 root  wheel  13   2/ 7 23:38 /usr/local/bin/perl -> /usr/bin/perl
 | 
 
 
 Apacheの起動と停止
以下のコマンドで起動します。
 
 | 
% su
# /usr/local/apache/bin/apachectl start
/usr/local/apache/bin/apachectl start: httpd started
 | 
 
正常に起動された場合のプロセス状態は以下の様になります。
 
 | 
# ps -xaw
....
 4720  ??  Ss     0:00.01 /usr/local/apache/bin/httpd
 4721  ??  I      0:00.00 /usr/local/apache/bin/httpd
 4722  ??  I      0:00.00 /usr/local/apache/bin/httpd
 4723  ??  I      0:00.00 /usr/local/apache/bin/httpd
 4724  ??  I      0:00.00 /usr/local/apache/bin/httpd
 4725  ??  I      0:00.00 /usr/local/apache/bin/httpd
.....
 | 
 
停止と再起動は、以下のコマンドで行います。
 
 | 
# /usr/local/apache/bin/apachectl stop
/usr/local/apache/bin/apachectl stop: httpd stopped
# /usr/local/apache/bin/apachectl restart
/usr/local/apache/bin/apachectl restart: httpd restarted
 | 
 
 
 
 ブラウザからのアクセス
DocumentRootで指定しているページ(デフォルトでは「/usr/local/apache/htdocs」ディレクトリ内のHTMLファイル)は、以下のURLでアクセスします。
 
 
UserDirで指定している各ユーザのホームディレクトリのページ(デフォルトでは「/home/~ユーザ名/public_html」ディレクトリ内のHTMLファイル)は、以下のURLでアクセスします。以下をアクセスすると見事に「名犬?タローのページ」が表示されました。
 
 
 
 
 
トップへもどる
 Copyright (c) 2002 Hiroshi Nakamura. All rights reserved.
 
 
 |  |