Webサーバーのインストール・設定

最新情報:2006/04/28 httpd-2.0.58 リリースされました。
       2006/04/22 httpd-2.2.2 リリースされました。
1:はじめに
2:apacheインストール(HTTPD)
3:httpd.confの設定
4:rpmでのインストール
5:動作確認方法
6:WevDAVの設定
7:httpdのアップデート方法(ソース版)
8:書籍案内

                以下この文字色はコマンド入力です。
1 はじめに
   apacheは、現在、世界の60パーセントのシェアを占めると
   いわれている事実上、世界標準となっている
   フリーのhttpdサーバ(Webサーバー)です。
   このapacheはフリーウェアですので当然サポートはありませんが
   apacheユーザーグループという日本のサイトもありますので英語が
   解らなくても安心です。
2 apacheのインストール
    rpm でインストールする方法が簡単なのですが
    バグ等により最新版に更新するには下記の方法が即対応可です。
    apacheを本家又は上記ユーザーグループよりダウンロードして下さい。
   ここもとりあえず /usr/local/src 等にダウンロードする。
   ここでは最新版の httpd-2.0.54 を使用します '05/04時点
   apache2よりWEB/DAVに対応しました。
    Web/DAVを使用しない場合
    # cd /usr/local/src
    
# tar xvzf httpd-2.0.54.tar.gz
    
# cd httpd-2.0.54
    
# ./configure
    
# make
    
# su
    
# make install

    Web/DAVを使用する場合(congigureのみ追加)
    # cd /usr/local/src
    
# tar xvzf httpd-2.0.54.tar.gz
    
# cd httpd-2.0.54
    
# ./configure --enable-shared=yes --enable-dav=yes --enable-module=so
    
# make
    
# su
    
# make install
   この時点で、/usr/local/apache2 にApacheがインストールされます。
   WEB/DAVとはWebサーバーにファイルを転送したり、削除する
     などの操作を可能にするもので、80番ホートのみで
     ファイルの共有が出来ます。

     WindowsXPでは最初の認証が出来ませんので注意(下記に対処方法)

   自動起動は、/etc/rc.d/init.d/ に下記内容をhttpd2として作成すると
    自動起動できるようになります。
   # chkconfig httpd2 on   ←サービスを設定する
 
#!/bin/sh
# chkconfig: 345 95 16
# description: Apache2 httpd

# Source function library.
. /etc/rc.d/init.d/functions

[ -x /usr/local/apache2/bin/apachectl ] || exit 0
#[ -x /usr/local/apache2/bin/httpd ] || exit 0

RETVAL=0

# See how we were called.
case "$1" in
  start)
    echo -n "Starting httpd: "
    daemon /usr/local/apache2/bin/apachectl $1
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/httpd
    ;;
  stop)
    echo -n "Shutting down httpd: "
    daemon /usr/local/apache2/bin/apachectl $1
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/httpd
    ;;
  restart)
    echo -n "ReStarting httpd: "
    daemon /usr/local/apache2/bin/apachectl $1
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/httpd
    ;;
  status)
    status httpd
    RETVAL=$?
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
esac

exit $RETVAL
   作成した httpd2 に実行権限を付加し、ランレベルを設定した後、
   ランレベルが設定されたことを確認します。
    # cd /etc/rc.d/init.d
    
# chmod 755 httpd2
    
# /sbin/chkconfig --add httpd2
    
# /sbin/chkconfig --list httpd2
    httpd    0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ  ←結果
  
3 httpd.conf設定(tarでインストールした場合のパス)
/usr/local/apache2/conf/ にhttpd.conf がありますので
以下の様に変更する
この色は説明用ですので入力の必要はありません。
httpd.conf は1000行以上の英語ファイルですから
行表示を参考に修正して下さい。
当然ですが修正時に追加したりする事により行番号は変化します。
ユーザーを追加しない場合は下記は必要ありません 2003/6/14
# --ユーザー追加ここから--
~(チルド)を使用してユーザーを追加する場合はLinuxユーザーを追加し
ホームディレクトリも作成する(/home/usernameとした場合)
# useradd username  ←この場合はホームディレクトリは /home/に作成される
# chmod 755 /home/username
# --ユーザー追加ここまで--
 
   276行目位
#ServerAdmin you@your.address
ServerAdmin     ←このアドレスは仮です。
# apache が何かの理由でエラーを出した場合、閲覧者に
  問い合わせ先としてこのメールアドレスが表示されます


   290行目位
#ServerName new.host.name:80
ServerName psg.jp:80   ←貴方のホストネームを入力

   306行目位
#DocumentRoot "/usr/local/apache2/htdocs"
DocumentRoot "/usr/local/apache2/www"  ←自由に指定可

   331行目位
#<Directory "/usr/local/apache2/htdocs">
<Directory "/usr/local/apache2/www">    ←306行と同じ指定に

   345行目位
#  Options Indexes FollowSymLinks
  Options FollowSymLinks Includes ExecCGI MultiViews
# フォルダー名で閲覧した時に表示する物が無かった場合に
  インデックスリストを表示するのを防止する為。


# 〜(チルド)を使用してユーザーを追加する場合 **/~user/ 2003/6/14
# ------- ユーザー使用 ---------
   372行目位 以下のコメントをはずす
#<Directory /home/*/public_html>   ←このhome/がユーザー
<Directory /home/*/public_html>
# ユーザー追加時にホームディレクトリとして指定したフォルダー /home/
# /home/username下にpublic_htmlを作成する。
# AllowOverride FileInfo AuthConfig Limit Indexes
AllowOverride FileInfo AuthConfig Limit Indexes
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Options MultiViews SymLinksIfOwnerMatch ExecCGI IncludesNoExec
# 下線部分の削除と追加
# <Limit GET POST OPTIONS PROPFIND>
<Limit GET POST OPTIONS PROPFIND>
# Order allow,deny
Order allow,deny
# Allow from all
Allow from all
# </Limit>
</Limit>
# <LimitExcept GET POST OPTIONS PROPFIND>
<LimitExcept GET POST OPTIONS PROPFIND>
# Order deny,allow
Order deny,allow
# Deny from all
Deny from all
# </LimitExcept>
</LimitExcept>
#</Directory>
</Directory>
# ------- ユーザー使用end ---------

   445行目位
#HostnameLookups Off
HostnameLookups On
# ログファイルのIPアドレス部をホストの名前で保存する為
  IPアドレスのままで良い場合はOff でも良い


   581行目位
#ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
ScriptAlias /cgi-bin/ "/usr/local/apache2/www/cgi-bin/"
# wwwの下でcgi-binを使用する場合

   595行目位
#<Directory "/usr/local/apache2/cgi-bin">
<Directory "/usr/local/apache2/www/cgi-bin">  ←581行と同じ指定に

#LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw
LanguagePriority ja en da nl et fr de el it ko no pl pt pt-br ltz ca es sv tw
# 文字化け防止にjaを先頭に移動する

   783行目位
#AddDefaultCharset ISO-8859-1  文字化け対策でコメントにする

   846行目位
#AddHandler cgi-script .cgi
AddHandler cgi-script .cgi .pl    コメントを解除し .pl を追加する
# これを解除する事によりcgiプログラムが使用出来る様になります

Optionsの機能 2005/10
All MultiViewを除くすべて有効にする。
ExecCGI CGIプログラムの実行を許可する。
FollowSymLink SymLink先へのアクセスも許可する。
Includes SSIを許可する。
IncludesNoExec SSI は許可するが #Exec と #include は禁止する。
Indexes index.htm(html)が無いとリストとして表示される。
MultiViews 優先順位おいて多国言語で表示する。
None すべて禁止。

その他の機能
ServerTokens Prod Server : Apache
OS Server :Apache/2.0.**(Unix)
Full Server :Apache/2.0.**(Unix) PHP/4.2.* 等
ServerSignature On サーバ名やバージョン、ポート番号を表示する
Off 表示しない。
UseCanonicalName On http://www.hog.com でアクセスした場合
http://www.hoge.com/ と/を補完する。
Off そのままで補完しない。
HostnameLookups On クライアントからのIPをホスト名に逆引きする。
Off IPアドレスのまま

httpd.confの確認方法
  # /usr/local/apache2/bin/apachectl configtest
  Syntax OK            ←この様に表示すればOKです。
  
参考サイト 日本アパッチユーザーグループ パソコンおやじ その他
 
4 rpmでのインストール(tarファイルを使用しない場合)
  現時点での最終バージョン httpd-2.0.40-8.rpm  ←Redhat8の場合
  まずapacheがインストールされているかを確認
  # rpm -q apache
  apache-*.*.*    ←この様に表示されればインストール済み
  インストールされている場合の更新
  # rpm -Uvh apache-*.*.i386.rpm
  # rpm -Fvh httpd-2.0.4*-**.i386.rpm   ←エラータからダウンの場合
  インストールされていない場合
  # rpm -ivh apache-*.*.i386.rpm
  *rpm版のapacheはなかなかアップデートされないので
   出て来る迄待つしかありません

  rpmのパラメータ
-i インストール
-U アップグレード
-F 更新(アップデートされたファイルのみ置き換えます。)
-e アンインストール
-V ベリファイ
-q RPMデータベースに問い合わせ
 
apache(ver2)の代表的なインストール先・記録先(標準インストール時)
ホームページの
ルートディレクトリ
RPM /var/www/html/
tar /usr/local/apache2/htdocs/
CGI
プログラム
RPM /var/www/cgi-bin/
tar /usr/local/apache2/cgi-bin/
ログファイルの
記録先
RPM /var/log/httpd/
tar /usr/local/apache2/logs/
設定ファイルの
保存先
RPM /etc/httpd/conf/
tar /usr/local/apache2/conf/
デーモンバイナリ RPM /usr/sbin/httpd
tar /usr/local/apache2/bin/httpd

perlのパス確認方法
  # which perl
  /usr/bin/perl   ←CGIプログラム環境をこれに合わせる

#!/usr/local/bin/perl を
#!/usr/bin/perl に変更

# CGIプログラムの先頭にあります

注:Windows上で作成したCGIファイルをそのままコピーすると
   改行コード(CR+LF)の違いで動作しませんので保存する時に
   改行コードを (LF) に指定して保存して下さい
   FTPでアップロードすれば自動的に (LF) に変換されますので
   保存の変更はしなくても大丈夫です。
5 動作確認方法(ホームページのソースは有る物とする)
 apache.configで設定した場所(DocumentRoot)にホームページの
 ソースをアップロードします
  プラウザを立ち上げます
   本パソコンから確認する場合
    http://127.0.0.1/    ←ホームページが表示されます
    又は http://localhost/
   他のLAN上からの場合
    http://WebサーバーのIPアドレス/  ←IP例 192.168.0.5
 CGIの確認方法はapache.configで指定した
  /usr/local/apache2/www/cgi-binに
  CGIプログラムをアップロードしアクセス権を705 又は 755 に
  設定します。(例 abc.cgi)
  CGIのパーミッション設定はダウンロードしたサイトの設定方法等を
  参照し指定されたパーミッションにして下さい。

   本パソコンから確認する場合
    http://127.0.0.1/cgi-bin/abc.cgi
   他のLAN上からの場合
    http://WebサーバーのIPアドレス/cgi-bin/abc.cgi
ホームページの動作確認が出来ましたらDDNSサイトに登録して
自宅サーバーを公開するかプロバイダーへアップロードする前の
動作確認用として活用して下さい。
注サーバーのファイヤウォールでWWW(HTTP)を許可して下さい。
  # setup         Text Mode Setup Utilityが立ち上がります
   ここの firewall Configuration を選択し、Customize に
   移動し WWW(HTTP)をスペースキーでマークします。
   又は

  # lokkit         直接 firewall Configuration 画面へ

 

6 WebDAVの設定
   まず以下のコマンドを実行しmod_so.c、mod_dav.c、mod_dav_fs.cの3つが
   組み込まれているか確認します。無い場合は再インストールが必要
   # /usr/local/apache2/bin/httpd -l
   **.c
   mod_so.c
   mod_dav.c
   mod_dav_fs.c
   ..
   次に日本語エンコーディングするモジュールをインストールします。
   このモジュールはここから最新版をダウンロードして下さい。
   mod_encoding.c.apache2.txtとmod_encoding-20021209.tar.gz
   # tar xvzf mod_encoding-20021209.tar.gz
   # cd mod_encoding-20021209/lib
   # ./configure
   # make
   # su
   # make install
   これでlibフォルダーにiconv_hookライブラリが作成されます
   ここからmod_encoding.c.apache2.txtをダウンロードします。
   mod_encoding.c.apache2.txtを名前を変更してコピーします。
   # cd ../..          ←mod_encoding.c.apache2.txtの所へ移動
   # cp mod_encoding.c.apache2.txt mod_encoding-20021209/mod_encoding.c
   # cd ..           ←mod_encoding-20021209の所
   # ./configure --with-apxs=/usr/local/apache2/bin/apxs
   # make
   # su
   # make install
   以上で、"/usr/local/apache2/modules" に、"mod_encoding.so"
   がコピーされるはずですが無い場合は以下を手動で
   # cd ..        ←mod_encoding-20021209 フォルダー内に移動
   # su
   # /usr/local/apache2/bin/apxs -c mod_encoding.c
   # gcc -shared -o mod_encoding.so mod_encoding.o
   これでmod_encoding-20021209内にmod_encoding.soが出来ます。
   このモジュールをapache2/modulesにコピーします。
   # cp mod_encoding.so /usr/local/apache2/modules
   # chmod 755 /usr/local/apache2/modules/mod_encoding.so
   
   3章で設定したhttpd.confに以下(枠内)を追加して下さい。
   DocumentRoot で指定した"/usr/local/apache2/www"のwebdavとする
   /usr/local/apache2/www/webdav  ←共有するディレクトリ
   # mkdir /usr/local/apache2/www/webdav
   # chmod 755 /usr/local/apache2/www/webdav
   # chown nobody.nobody /usr/local/apache2/www/webdav
   # mkdir /tmp/dav_lock           ←ロックディレクトリー
   # chmod 755 /tmp/dav_lock
   # chown nobody.nobody /tmp/dav_lock
 
.
LoadModule encoding_module modules/mod_encoding.so
.
.

<IfModule mod_dav.c>
  DAVLockDB "/tmp/dav_lock"
  DAVMinTimeout 600

Alias /dav "/usr/local/apache2/www/webdav"
<Location /dav>
  DAV on
  AuthType Basic
  AuthName "This WebDAV Folder"
  AuthUserFile "/usr/local/apache2/conf/pwd_dav"
  AuthGroupFile "/dev/null"

<LimitExcept GET HEAD OPTIONS>
  Require valid-user
</LimitExcept>

</Location>

</IfModule>

<IfModule mod_encoding.c>
  EncodingEngine    on
  NormalizeUsername on
  SetServerEncoding     UTF-8
  DefaultClientEncoding JA-AUTO-SJIS-MS SJIS

  AddClientEncoding "cadaver/" EUC-JP
</IfModule>
   以下を実行しconfファイルに異常が無いか確認して下さい。
  # /usr/local/apache2/bin/apachectl configtest

  注意!mod_encodingを使用する事でサーバーがUTF-8に統一されますので
  一部cgi等では文字化けを起こします。


  次に認証用ファイル作成とユーザー登録
  # cd /usr/local/apache2/conf
  # touch pwd_dav              ←パスワードファイルを作成
  # ../bin/htpasswd pwd_dav username  ←ユーザー名を指定
  New password:                ←パスワードを入力
  Re-type new password:          ←パスワードの再入力

  これで準備は出来ました。
  ではapacheをリスタートします。
  # /etc/rc.d/init.d/httpd2 restart
  もし以下の様なメッセージが出た場合は
/usr/local/apache2/bin/apachectl configtest
Syntax error on line **** of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modules/mod_encoding.so into server: libiconv_hoo
k.so.1: cannot open shared object file: No such file or directory

  LoadModule encoding_module...... の前に以下を追加して下さい

LoadFile /usr/local/lib/libiconv_hook.so
LoadModule encoding_module modules/mod_encoding.so
  これでエラーは無くなります。
  接続のテスト
  マイネットワークを開きネットワークプレースの追加をクリックします。
    ネットワークプレース画面
   この中に
   本パソコンからする場合
    http://127.0.0.1/dav
    又は http://localhost/dav
   他のLAN上からの場合
    http://WebサーバーのIPアドレス/dav  ←IP例 192.168.0.5
   を入力し「次へ」をクリックし次で問題がなければ「完了」をクリックます。
   *ここでWindowsXPでは最初の認証が出来ません(下記に対処方法)
   すると「localhost上のdav」というネットワーク名が出来ます。
   WebDAVにはこのネットワーク名をクリックする事でアクセス出来ます。
   クリックすると以下のようなパスワード要求の画面が出ます。
    パスワード入力画面
   ここで認証用ファイル作成で登録したユーザー名とパスワードを入力
   すればWebDAV共有が使用出来ます。
   注ユーザー名は半角小文字で登録して下さい。

   以下はWindowsXPの方のみ
   WindowsXPでは最初の認証が出来ませんので注意 ↓対処方法
   対処方法 ←システムサービスの設定に関係しますので自己責任で
   コントロールパネルの管理ツールよりサービスを選択
   WebClientを探しプロパティを開き「停止」にします。
   再度マイネットワークを開きネットワークプレースの追加をクリックします。
   
 
7 httpdのアップデート方法
   ソースコンパイルインストール版でのアップデート方法です。
    httpd-2.0.45 よりバージョンが古い場合
    注意:Ver1.*シリーズとはインストール場所が違いますので新規になります。
    Web/DAVを使用しない場合
    # cd /usr/local/src
    
# tar xvzf httpd-2.0.45.tar.gz
    
# cd httpd-2.0.45
    
# ./configure
    
# make
    
# su
    
# make install

    Web/DAVを使用する場合(congigureのみ追加)
    # cd /usr/local/src
    
# tar xvzf httpd-2.0.45.tar.gz
    
# cd httpd-2.0.45
    
# ./configure --enable-shared=yes --enable-dav=yes
    
# make
    
# su
    
# make install
   と新規インストールと同じ操作で完了します。
 
8 書籍案内 本を購入すならここでも(1,500円(税別)以上は送料無料)
WebDAVシステム構築ガイド 秀和システム ¥3,654
Apache2.0WebサーバーBlack Book インプレス ¥2,940
できるLinuxPROサーバー インプレス ¥2,730
実践Apache2.0 Webサイト構築 ソーテック ¥2,580

Home