サーバ構築ガイド - Apache2でWebサーバ

Apache2はサーバ導入実績が高く、高機能なWebサーバです。FreeBSDならPortsで簡単にインストールできます。

インストール

# cd /usr/ports/www/apache2

# make install

 

これだけでインストール完了です。ルータを使用している場合はポート80番を空けて、 Apache2をインストールしたサーバにアクセスしてみてください。 こんな感じの表示が出ればインストールは成功です。 /usr/local/www/dataがWebのルートディレクトリになります。

設定

設定は/usr/local/etc/apache2/httpd.confで行います。

とりあえず下の部分は変更しておきましょう。

 

# vi /usr/local/etc/apache2/httpd.conf

 ServerAdmin あなたのメールアドレス

 ServerName あなたのWebサーバ:80

 ServerSignature Off

 AddDefaultCharset Off

 

# apachectl restart

 

public_htmlの部分をコメントアウトするとユーザ毎のページをhttp://YourServer/?Username/で公開できます。

WebDAVでファイルをやり取り

WebDAVを導入することでHTTPプロトコルでファイル操作が可能になります。 Apache2にはWebDAVの機能がすでに用意されているので、簡単に導入できます。 ファイル構成は自由ですので適宜読み替えてください。

 

# mkdir /usr/local/www/data/dav

# chown www:www /usr/local/www/data/dav

 

・新規にパスワードファイルを作成しユーザを追加する場合

# htpasswd -c /usr/local/etc/apache2/.htpasswd ユーザ名

・既存のパスワードファイルにユーザを追加する場合

# htpasswd /usr/local/etc/apache2/.htpasswd ユーザ名

 

# chmod 600 /usr/local/etc/apache2/.htpasswd

# chown www:www /usr/local/etc/apache2/.htpasswd

 

# mkdir /var/db/apache2

# chown www:www /var/db/apache2

 

# vi /usr/local/etc/apache2/httpd.conf

 

LoadModule dav_module libexec/apache2/mod_dav.so       < コメントアウト

LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so    < コメントアウト

DAVLockDB "/var/db/apache2/dav_lock.db"

 

<Directory /usr/local/www/data/dav>

DAV on

AuthType Basic

AuthName "WebDAV Login"

AuthUserFile "/usr/local/etc/apache2/.htpasswd"

Require valid-user

Order allow,deny

Allow from all

</Directory>

 

# apachectl restart

mod_encodingで日本語を扱う

WebDav Resources JP http://webdav.todo.gr.jp/download/ からmod_encodingモジュールをダウンロードします。

  • mod_encoding-20021209.tar.gz
  • mod_encoding.c.apache2.20020611a

# tar zxvf mod_encoding-20021209.tar.gz

# cd mod_encoding-20021209

# cp ../mod_encoding.c.apache2.20020611a-2 mod_encoding.c

 

・iconv_hookのコンパイル&インストール

# cd lib

# ./configure

# gmake

# gmake install

 

・mod_encodingのコンパイル&インストール

# cd ..

# ./configure --with-apxs=/usr/local/sbin/apxs --with-iconv-hook=/usr/local/include

# gmake

# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook -liconv

# make install

 

・設定の変更

# vi /usr/local/etc/apache2/httpd.conf

 

LoadModule encoding_module libexec/apache2/mod_encoding.so

DAVLockDB "/var/db/apache2/dav_lock.db"

 

<IfModule mod_encoding.c>

EncodingEngine On

SetServerEncoding UTF-8

NormalizeUsername On

DefaultClientEncoding JA-AUTO-SJIS-MS SJIS

AddClientEncoding UTF-8 "Microsoft-WebDAV-MiniRedir/"

AddClientEncoding SJIS "Microsoft .* DAV 1\.1$"

AddClientEncoding UTF-8 "Microsoft .* DAV$"

AddClientEncoding SJIS "xdwin9x/"

AddClientEncoding EUC-JP "cadaver/"

</IfModule>

 

# apachectl restart