ユーザ用ツール

サイト用ツール


ubuntu-server-10-04:apache2

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 をインストールしていた気がするけれど、文字化けの現象が現れないのでとりあえず放置。

参考

ubuntu-server-10-04/apache2.txt · 最終更新: 2010/10/29 12:58 by admin