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