FreeBSD7.1RにWWWサーバ(Apache2.2.x)をインストール

Apache は ウェブサーバであり、ホームページの公開などを行う。

コンパイルとインストール

%su
Password:
# cd /usr/ports/www/apache22
# make install clean
# rehash
  • インストール時にオプション指定を聞かれるが、とりあえずそのままで続行。

インストールが完了すると、/usr/local/etc/rc.d/ に apache22 の起動/終了シェルスクリプトが作られる。

/etc/rc.conf で apache22 を有効にする

# vi /etc/rc.conf

/etc/rc.conf の中に次の1行を加える。ファイル末尾でよい。

apache22_enable="YES"

/usr/local/etc/apache22/httpd.conf で設定

ここでは、バーチャルドメインを利用して、1台のWWWサーバで複数のドメインを運用する方式として記載する。

先に、ログファイルを保管するディレクトリを作成しておく(変更する場合のみ)。

# cd /var/log
# mkdir httpd
# chown www:www httpd
 
# vi /usr/local/etc/apache22/httpd.conf

次の部分を適切に変更する。

#ディレクトリ・インデックス(以下は参考であり実際には使いかたによって変更する)。
<IfModule dir_module>
  #DirectoryIndex index.html
  DirectoryIndex index.html index.htm index.shtml index.php index.cgi
</IfModule>

#エラーログファイルのパス
#(この様に変更する場合は、必ず/var/log/httpdディレクトリを作っておくこと)。
#ErrorLog "/var/log/httpd-error.log"
ErrorLog "/var/log/httpd/httpd-error.log"

#ログファイルのパス(上と同様にディレクトリを作成、)。
<IfModule log_config_module>

  #CustomLog "/var/log/httpd-access.log" combined
  SetEnvIf Request_URI "default\.ida" nolog
  SetEnvIf Request_URI "cmd\.exe" nolog
  SetEnvIf Request_URI "root\.exe" nolog
  SetEnvIf Request_URI "Admin\.dll" nolog
  SetEnvIf Request_URI "NULL\.IDA" nolog
  SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(ico)|(css)$" nolog
  CustomLog /var/log/httpd/httpd-access.log combined env=!nolog
#SetEnvIfの行は、
#Request_URIに"root\.exe"などの正規表現がマッチする場合にnologという環境変数を設定。
#末尾のCustomLogの行は、
#nologが設定されていない場合に、ログを記録する。という意味。
</IfModule>

#mimeタイプの設定
<IfModule mime_module>
  # phpを利用する場合に追加
  AddType application/x-httpd-php .php

  # cgiを利用する場合に有効にする
  AddHandler cgi-script .cgi  
</IfModule>

#エラー時に表示するファイルやメッセージ
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html

#ヴァーチャルドメインを利用する場合は有効にして、該当ファイルを変更する。
Include etc/apache22/extra/httpd-vhosts.conf

ヴァーチャルドメインを利用する場合

# vi /usr/local/etc/apache22/extra/httpd-vhosts.conf

なお、下記の場合、次の3つのディレクトリを作成し、そこにウェブデータを入れると仮定する。

  • www.vdobv.com用:/home/domain_type1/vdobv/web
  • www2.vdobv.com用:/home/domain_type2/vdobv2/web
  • www3.vdobv.com用:/home/domain_type2/vdobv3/web
#サーバのIPアドレスに変えておく。
NameVirtualHost 192.168.0.111

#http://IPアドレス/ で閲覧された場合など
#想定外のアクセスがあった場合に表示する設定
<VirtualHost 192.168.0.111>
  ServerName    any
  DocumentRoot  /usr/local/www/apache22/data/
</VirtualHost>

#ディレクトリの作り方にルールを定めて設定する場合の例
#大量にドメインを設定する場合に有用。
#もちろんディレクトリ個別に設定してもよい。
<Directory "/home/domain_type1/*/web">
  Options FollowSymLinks Includes ExecCGI
  AllowOverride ALL
  Order allow,deny
  Allow from All
</Directory>

<Directory "/home/domain_type2/*/web">
  Options FollowSymLinks ExecCGI
  AllowOverride ALL
  Order allow,deny
  Allow from All
</Directory>

# ドメインごとの設定を個別に行う。
<VirtualHost 192.168.0.111>
  ServerName    www.vdobv.com
  ServerAfmin   yourname@vdobv.com
  DocumentRoot  /home/domain_type1/vdobv/web
  ErrorLog      /var/log/httpd/vdobv-error.log
  CustomLog     /var/log/httpd/vdobv-access.log combined env=!nolog
</VirtualHost>

<VirtualHost 192.168.0.111>
  ServerName    www2.vdobv.net
  ServerAdmin   yourname@vdobv2.net
  DocumentRoot  /home/domain_type2/vdobv2/web
  ErrorLog      /var/log/httpd/vdobv2-error.log
  CustomLog     /var/log/httpd/vdobv2-access.log combined env=!nolog
</VirtualHost>

<VirtualHost 192.168.0.111>
  ServerName    www3.vdobv.net
  ServerAdmin   yourname@vdobv3.net
  DocumentRoot  /home/domain_type2/vdobv3/web
  ErrorLog      /var/log/httpd/vdobv3-error.log
  CustomLog     /var/log/httpd/vdobv3-access.log combined env=!nolog
</VirtualHost>

動かしてみよう

次のように起動してみる。

# /usr/local/etc/rc.c/apache22 start

エラーが出る場合は設定ミスが無いかを確認。

エラーの対処法

*httpd: Syntax error

httpd.confあるいは、httpd-vhosts.confなどの、該当する行(近く)に記述ミスがないか確認する。

*Warning: DocumentRoot /home/domain_type1/vdobv/web] does not exist

そのディレクトリを作ればよい。

*httpd: apr_sockaddr_info_get() failed for mugen.vdobv.com

*httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

/etc/hosts に、例えば次のように、自分自身を記述してみる。

127.0.0.1      mugen.vdobv.com

ブラウザで確認しよう

LAN側やWAN側に関わらずdnsサーバを用意していない場合は、ドメインとIPアドレスを関連付けるために、パソコン本体のhostsファイルなどに(一時的に)記述する。

例えば、windowsXPの場合は、C:\WINDOWS\system32\drivers\etc\hosts ファイルに次のように記述して保存。

192.168.0.111    www.vdobv.com

続けて、サーバの/home/domain_type1/vdobv/webにindex.htmlを作り、中に適当な文字を記述する。

そして、ブラウザで、http://www.vdobv.com/ を閲覧する。

正しく表示できたら、hostsファイルに追記したものは消しておくこと。

freebsd7.1r/apache.txt · 最終更新: 2009/05/13 22:54 by vdobv
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0