Apache2 でWebサーバ
インストール
apt-get でインストール。
$ sudo apt-get install apache2
インストールしてサーバにブラウザでアクセスすると、とりあえず It work! は表示される
apache2 ディレクトリ内のファイル
/etc/apache2 ディレクトリ内のファイル
- apache2.conf: メイン設定ファイル
- conf.d: Apache2全体に適用される設定が記述されているファイルが格納されるディレクトリ
- envvars: Apache2の環境変数
- httpd.conf: 以前使用されていた設定ファイルの名前。Apach2全体に適用される設定を記述する。
- mods-available: このディレクトリにはモジュールとモジュールの設定ファイルが格納されている。すべてのモジュールが専用の設定ファイルを必要とするわけではない。
- mods-enabled: このディレクトリに /etc/apache2/mods-available に格納されているモジュールへのシンボリックリンクを置くと、そのモジュールがロードされるようになる。
- ports.conf: Apache2が接続を受け入れるポートの設定
- sites-available: このディレクトリにはApache2のバーチャルホストの設定ファイルを格納する。
- sites-enabled: このディレクトリに /etc/apache2/sites-available に格納されているモジュールへのシンボリックリンクを置くと、そのバーチャルホストが有効になる。
apacheのSSLを有効にする
SSLモジュールの有効化
$ sudo a2enmod ssl
/etc/apache2/sites-available/ に default-ssl が生成される。
コマンドで default-ssl を有効にすると、/etc/apache2/sites-enabled/ にシンボリックリンクが張られる。
$ sudo a2ensite default-ssl
$ ls -l /etc/apache2/sites-enabled/ total 0 lrwxrwxrwx 1 root root 26 2010-10-29 10:47 000-default -> ../sites-available/default lrwxrwxrwx 1 root root 30 2010-10-29 12:41 default-ssl -> ../sites-available/default-ssl
SSL接続を使用するサーバの設定を行う。
$ sudo vi /etc/apache2/sites-available/default-ssl
- <VirtualHost _default_:443>: アクセスするポートを変更する場合は数字を変更
- ServerAdmin: 管理者のメールアドレスに変更
- DocumentRoot: Apache2 のドキュメントルートを任意のパスに変更
鍵のパスを実際のパスに変える。Postfixで設置した鍵を使用。
- SSLCertificateFile /etc/ssl/certs/server.crt
- SSLCertificateKeyFile /etc/ssl/private/server.key
アクセスするポートを変更した場合は、/etc/apache2/ports.conf でポート番号を変更する。
$ sudo vi /etc/apache2/ports.conf
- Listen 443: 番号を任意のポート番号に変更
設定に間違いがないかをチェック。
$ sudo apache2ctl configtest
こんな警告が、、、
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
どうやら
$ hostname --fqdn
とした時に、グローバルからアクセス可能なホスト名が出てこないのが原因らしい。
/etc/hosts を編集する。
$ sudo vi /etc/hosts
127.0.1.1 hostname
こんな行があるはずなので、
127.0.1.1 your.domain.com hostname
グローバルからアクセスできるホスト名を、172.0.1.1に対応する最初のホスト名として記述する。
apache再起動する。
$ sudo /etc/init.d/apache2 restart
ブラウザからアクセスできるかをチェックする。
WevDavの設定
Apache2 の WebDav モジュールを有効にする。
$ sudo a2enmod dav_fs
Webdavで使用するディレクトリを作成。所有者は www-data:www-data にする。
$ sudo mkdir -p /var/www/webdav $ sudo chown www-data:www-data /var/www/webdav
/etc/apache2/default か default-sslに WebDav フォルダの設定を追加する。
<IfModule mod_dav_fs.c> Alias /dav "/var/www/webdav" <Location /dav> DAV on Options Indexes Order deny,allow AuthType Basic AuthName "Webdav" AuthUserFile /etc/apache2/dav.passwd Require valid-user </Location> </IfModule>
認証用のパスワードファイルを作成する。
$ cd /etc/apache2/ $ sudo htpasswd -c ./dav.passwd hoge ← 最初の一人のときだけ New password: Re-type new password: Adding password for user hoge
-c オプションは新しくファイルを作成してしまうので、2人目以降は
$ sudo htpasswd ./dav.passwd hoge
で追加する。
パスワードファイルのパーミッションを変更。
$ sudo chown www-data:www-data ./dav.passwd $ sudo chmod 600 ./dav.passwd
Apache2 を再起動。
$ sudo /etc/init.d/apache2 restart
ブラウザから http://your.domain.com/dav にアクセスしてチェック。
文字化け対策
以前は文字化け対策で mod-encoding をインストールしていた気がするけれど、文字化けの現象が現れないのでとりあえず放置。