ASH | サーバ | セキュリティ | Linux | FreeBSD | DB | Web | CGI | Perl | Java | XML | プログラム | ネットワーク | 標準 | Tips集

Webサーバ構築(Apache)

 Webサーバは、WWW(World Wide Web)サーバとも言い、世界中に情報を発信するための、サーバです。
ここでは、Apacheを使ってWebサーバを構築するための方法について説明します。

apache (Web server)のインストールと設定

 apacheは、代表的(しかもフリー)なWWWサーバであり、広く利用されています。

バージョン情報

 apache 1.3.6 (1999/05/14)

入手方法

 ftp://www.apache.org/apache/dist/

インストール方法

unix# cd /usr/local/src/
unix# zcat ../pub/apache_1.3.6.tar.gz | tar -xvf -
unix# cd apache_1.3.6
unix# ./configure
unix# make

unix# ps aux | grep httpd
unix# kill httpdのプロセスID

unix# make install
unix# cd /usr/local/apache/conf
unix# vi httpd.conf

unix# cd /usr/local/apache/
unix# mv htdocs htm
unix# mv cgi-bin cgi

unix# ln -s /usr/local/apache/bin/httpd /usr/local/sbin/.
unix# ln -s /usr/local/apache/bin/apachectl /usr/local/sbin/.
unix# apachectl start

unix# cd /etc/rc.d
unix# vi rc.local

起動・終了方法

 apache 1.3.6 は、起動・終了などの制御をするためのコマンドが提供されています。

名前
    apachectl option
機能
    Apacheの起動、終了などの制御をします。
オプション
    start      - Apacheを起動する
    stop       - Apacheを終了(シャットダウン)する
    restart    - Apacheを再起動する
    fullstatus - Apacheのすべての状況を表示する
    status     - Apacheの状況を表示する
    configtest - Apacheの設定ファイルのチェックをする
    help       - Apacheのヘルプメッセージを表示する

ディレクトリ構成

 apache 1.3.3 のディレクトリ構成は以下のようになります。

/usr/local/apache/bin/   実行プログラム格納用
/usr/local/apache/man/   マニュアル格納用
/usr/local/apache/conf/  コンフィグファイル格納用
/usr/local/apache/cgi/   CGI格納用(cgi-bin)
/usr/local/apache/htm/   HTML格納用(htdocs)
/usr/local/apache/icons/ システムアイコン格納用
/usr/local/apache/log/   アクセスログ格納用

環境設定

httpd.confWWWサーバの設定ファイル
ServerType standalonehttpdの起動方法(デーモンとして起動)
Port 80httpdの使用するポート番号
User wmasterhttpdを起動するユーザ名
Group envhttpdを起動するグループ名
ServerAdmin info@ash.jphttpdの管理者のメールアドレス
ServerRoot "/usr/local/apache/"apacheのインストールディレクトリ
ServerName ash.jpWWWサーバ名
<Directory "/usr/local/apache/htm">
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
HTML格納ディレクトリのアクセス権
 ディレクトリ一覧は可, シンボリックリンクを許可
 .htaccessの使用不可
<Directory "/usr/local/apache/cgi">
Options FollowSymLinks ExecCGI
AllowOverride None
</Directory>
CGI格納ディレクトリのアクセス権
 ディレクトリ一覧は不可, シンボリックリンクを許可, CGI実行可
 .htaccessの使用不可
DocumentRoot "/usr/local/apache/htm"HTML, CGI格納ディレクトリ
DirectoryIndex index.html index.htm index.cgiデフォルトインデックスファイル
UserDir public_html各ユーザのHTML格納ディレクトリ
Alias /icons/ "/usr/local/apache/icons/"システムアイコンのURLの別名
ScriptAlias /cgi/ "/usr/local/apache/cgi/"CGIのURLの別名
AddType application/x-httpd-cgi .cgiCGIのタイプを追加
AddHandler cgi-script .cgiCGIを許可
AddType text/x-server-parsed-html .shtmlSSIのタイプを追加
AddType text/html .shtmlSSIのタイプを追加
AddHandler server-parsed .shtmlSSIを許可
/etc/rc.d/rc.local起動ファイル
# www server start
/usr/local/sbin/apachectl start
Linux起動時にhttpdを起動

Webサーバの動作確認方法

ホームページの参照確認

プラウザでホームページを表示して確認します。

CGIの動作確認

ブラウザから掲示板の書き込みして確認します。

ログの状態の確認

unix# tail -100 /usr/local/apache/log/access.log   #アクセスログの表示
unix# tail -100 /usr/local/apache/log/error.log    #エラーログの表示

httpd のプロセス状態の確認

unix# ps aux | grep httpd

その他の設定方法

ApacheのREMOTE_HOST環境変数について

 Apacheでは、デフォルトの状態では、ホスト名の逆引きはしない設定となっています。 httpd.confのHostnameLookupsをOnにすることで、REMOTE_HOSTを環境変数に返却できます。 ただし、Apacheの再起動は必要です。
 ただ、IPアドレスでの処理の方が、セキュリティ上も安全です。 また、ホスト名の逆引きの分だけ、遅くなる可能性があります。 ですから、REMOTE_ADDR環境変数で処理されることをお勧めします。

apacheのディレクトリ情報の問い合わせ方法

 Apacheでは、apxsコマンドを使って、インストールディレクトリ情報を問い合わせることができます。
 TurboLinuxでapxsコマンドがない場合は、Apache develパッケージをインストールする必要があります。

形式:
  apxs -q 問合せディレクトリ名

使用例:
  unix# echo `apxs -q PREFIX`
  /usr/local

  unix# echo `apxs -q SBINDIR`
  /usr/local/sbin

  unix# echo `apxs -q SYSCONFDIR`
  /usr/local/etc/apache

  unix# echo `apxs -q LIBEXECDIR`
  /usr/local/libexec/apache

  unix# echo `apxs -q INCLUDEDIR`
  /usr/local/include/apache

Apacheの組み込みモジュールの確認方法

 Apacheの組み込みモジュールは、httpd の -l オプションを使って、問い合わせることができます。

unix# /usr/local/sbin/httpd -l

DSO(Dynamic Shared Object)機能を有効にする方法

 DSO機能が有効かどうかは、mod_soが組み込まれてるかどうかでわかります。

unix# /usr/local/sbin/httpd -l
  mod_so.c

 もし、組み込まれていない場合は、以下のオプションを使って、Apacheをメイクする必要があります。

unix# ./configure --prefix=/usr/local --enable-rule=SHARED_CORE --enable-module=so

関連するコンテンツ



Copyright (C)1995-2002 ASH multimedia lab.
mail : info@ash.jp