■Apache
Apacheは世界でも最もポピュラーで、よく使用されているWEBサーバーソフトです。Windows2000+IISを導入するよりもローコストで、高機能で安定したWEBサーバーを立ち上げる事ができます。
■WEBサーバー
WEBサーバーを使うとドキュメントを様々な形でネットワーク上のクライアントに公開できるようになります。予め作成済のhtmlファイルをクライアントから閲覧する以外にも、CGI等を使うと、更に動的なサービスを提供する事もできます。
■Apacheのインストール
Apacheは現在従来からのバージョン1.3系と新しい機能を盛り込んだ2.0系の2種類のバージョンがあります。2.0系では、マルチスレッド対応によるパフォーマンスの向上、IPv6対応等、先進機能を搭載していますが、個人的に気になったのはこの時点でまだPHPのApache2.0サポートがベータレベルだという事です。そのせいかどうかは分かりませんが、手元のLinuxマシン上でApache2.0.35上でPHP4.2.1のインストールを試みたのですが、どうしてもうまくいきませんでした。これについてはまた追ってレポートしますが、そんな事もあって、筆者の周囲では実験用途を除いてApacheは1.3系を使用しています。
この原稿執筆時点での1.3系の最新バージョンは1.3.26です。apache_1.3.26.tar.gzをダウンロードします。
(先日Apache1.3〜1.3.24と2.0〜2.0.36に危険なセキュリティバグが発見されています。このバージョンを使用している場合はバージョンアップが必要です。)
- コンパイル・インストール (以下、% # はシェルのプロンプトを表す)
% tar xvzf apache_1.3.26.tar.gz
% cd apache_1.3.26
% ./configure --enable-module=so
% make
% su
Password: ********
# make install
|
--enable-module=so
DSO (Dinamic Shared Object) を有効にします。Apacheに後で機能を追加する場合に、設定ファイルに記述するだけでモジュールをロードしてくれるので、Apacheをリビルドする必要がなくなります。
デフォルトで/usr/local/apache/conf ディレクトリに設定ファイルhttpd.confが作成されます。この中で最低限編集しなければいけない箇所があります。
#ServerNameで始まる行の#をはずしてください。ServerName に続く名前はそのホストの名前を記入します。この行の#をはずさなかった場合は、そのホストがDNSに登録されていなければapacheが起動できないらしいです。DNSに登録されているならはずさなくてもいいと思います。
#ServerName new.host.name:80
↓
ServerName your.server.name
|
また、デフォルトのhttpd.confでは何故かサーバーポートが8080に設定されています。これを80に変えておきます。
デフォルトで/manual/や/icons/のエイリアスが設定されていますが、ほとんどの場合これらは必要ないと思われるので、行の先頭に#を入れてコメントにするか、削除します。
(これらの行の先頭に#を入れておく)
# Alias /icons/ "/usr/local/apache/icons/"
#
# Options Indexes MultiViews
# AllowOverride None
# Order allow,deny
# Allow from all
#
# Alias /manual/ "/usr/local/apache/htdocs/manual/"
#
# Options Indexes FollowSymlinks MultiViews
# AllowOverride None
# Order allow,deny
# Allow from all
#
|
デフォルトのドキュメントルートディレクトリは/usr/local/apahce/htdocsになっていると思いますが、このディレクトリの設定でIndexesが有効になっていますが、これはディレクトリにindex.htmlが無い場合に、ディレクトリのファイル一覧を表示させる機能です。これもほとんどの場合必要無いと思います。むしろ、最近やたら多発しているWEBサーバーからの個人情報漏洩の手助けなんかになりかねないのではずしておきましょう。
Options Indexes FollowSymLinks MultiViews
↓
Options FollowSymLinks MultiViews
|
# /usr/local/apache/bin/apachectl start
|
システム起動時にApacheを自動で起動するには、/etc/rc.d/rc.local (Linux)に
if [ -f /usr/local/apache/bin/apachectl ]; then
/usr/local/apache/bin/apachectl start
fi
|
を追記する。(FreeBSDの場合は、/etc/rc.local)
試しにWindowsのブラウザからアドレス欄に "http://サーバー名" を入力してみてください。「あなたの予想に反して、このページが見えているでしょうか?」と書いたページが表示されればOKです。
Apacheの最近のバージョンでは、デフォルトでサーバーから通知されるhtmlヘッダーが
Content-Type: text/html; charset=ISO-8859-1
|
となっている為、そのままでは日本語で作成したhtmlファイルは文字化けしてしまう事があります。これはhtmlファイル中のMETAタグで文字コードセットを指定しても、サーバーから送られたヘッダー情報の方が優先されるようで、この場合METAタグで指定しても直らないようです。
それではどうすればいいかというと、例えば文字コードセットに Shift_JIS を使用するなら、サーバーのhttpd.confファイルのディレクトリ設定の中、もしくはディレクトリの.htaccessファイルに、
AddCharset Shift_JIS .html
AddType "text/html; charset=Shift_JIS" html
|
を書き加えます。これでそのディレクトリ内(とそのサブディレクトリ内)のhtmlファイルはShift_JISとして認識され、サーバーから送られるhtmlヘッダーも
Content-Type: text/html; charset=Shift_JIS
|
となり、正常に表示されるようになります。
同様の事がcgiにも言えます。perl cgiの場合、以前はhtmlヘッダーとして
print "Content-type: text/html\n\n";
|
等を指定していましたが、これだけで、文字コードセットを特に指定しない場合は、デフォルトの ISO-8859-1 とみなされ、文字化けしてしまいます。Shift_JIS を使用するなら、
print "Content-type: text/html; charset=Shift_JIS\n\n";
|
と、文字コードセットまで含めて指定するようにしてください。
WEBサーバーと文字コードセットについてはこちらが詳しいです。
■関連リンク
|