Apache(自宅サーバ公開)
概要
- フレッツADSL開通により自宅サーバ(PC9821Ne3)を公開した旨を3月25日の日記に書きましたが、ここでは、Apacheによる以下のページの構築方法について紹介します。
・名犬?タローのページ【https://meikentaro.no-ip.com/index.htm】
Apacheのインストール
- まず、Apacheのページから最新版のtarballをダウンロードします。ここでは、安定バージョン(1.3.X)を使用ます。
・apache_1.3.24.tar.gz(2002年3月23日時点の最新版)
- 以下の手順でインストールします。
% tar zxvfp apache_1.3.24.tar.gz
% cd apache_1.3.24
% ./configure
% make
% su
# make install
|
Apacheの設定(/usr/local/apache/conf/httpd.conf)
- 【前提条件】(()番号は、注記番号と同じです。)
・ポート番号は、一般的なWebサーバと同様に「80」とします。(1)
・ユーザ「hnakamur」のホームディレクトリの下に「public_html」ディレクトリを作成し、HTMLファイルを置きます。(2)
・トップページは「index.htm」で、「https://meikentaro.no-ip.com/」でアクセスできる様にします。(4)
・トップページは、「https://meikentaro.no-ip.com」の様に最後の「/」が無しでもアクセスできる様にします。(7)
・CGIはホームページ内の任意の場所に置いた拡張子「.cgi」ファイルで動作する様にします。(3,6)
・RealMediaやWindowsMediaのビデオ配信も出来る様にします。(5)
・ログファイルはデフォルト設定のままとします。(8)
- /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)80を確認
User nobody
Group nobody
ServerAdmin hnakamur@taro.home
ServerName meikentaro.no-ip.com <--(7)コメントを外して設定
DocumentRoot "/home/hnakamur/public_html" <--(2)(4)
<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)追加
AddType i-world/i-vrml .ivr <--(5)追加
AddHandler cgi-script .cgi <--(6)コメント外す
...
</IfModule>
ErrorLog /usr/local/apache/logs/error_log <--(8)エラーログ
CustomLog /usr/local/apache/logs/access_log common <--(8)アクセスログ
### 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
# cd /usr/local/
# mkdir bin <--binディレクトリを作成
# ln -s /usr/bin/perl /usr/local/bin/perl <--BIGLOBEに合わせてシンボリックリンクを作成
# ls -li /usr/local/bin/perl
70311 lrwxrwxrwx 1 root wheel 13 Mar 23 14:04 /usr/local/bin/perl -> /usr/bin/perl
|
Apacheの起動と停止(コマンド)
- 以下のコマンドで起動します。
% su
# /usr/local/apache/bin/apachectl start
/usr/local/apache/bin/apachectl start: httpd started
|
- 停止と再起動は、以下のコマンドで行います。
# /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
|
Apacheの自動起動
- FreeBSDの起動と同時にApacheが起動する様に、以下のシェルスクリプトを「/usr/local/etc/rc.d」ディレクトリに置きました。
【/usr/local/etc/rc.d/apache.sh】
#!/bin/sh
#
apache=/usr/local/apache/bin/httpd
apachectl=/usr/local/apache/bin/apachectl
if [ -f $apache ]; then
$apachectl start
echo -n ' Apache Server Started '
fi
|
ブラウザからのアクセス
- DDNSへの接続が完了している状態で、以下のURLでアクセスすると、見事に「名犬?タローのページ」が表示されました。
https://meikentaro.no-ip.com/
|
ログファイル
- デフォルトでは、以下の2つのログファイルが設定されています。ErrorLogにはエラー情報が記録されます。CustomLogには転送要求に関する記録(アクセスログ)が記録されます。
ErrorLog /usr/local/apache/logs/error_log <--エラーログ
CustomLog /usr/local/apache/logs/access_log common <--アクセスログ
|
その後の追加設定
参考図書・サイト
トップへもどる
Copyright (c) 2002 Hiroshi Nakamura. All rights reserved.
|
|