Apache のバーチャルホストの設定

2009-11-18 19:16
このエントリーをはてなブックマークに追加

Apache のバーチャルホストの設定は、httpd.conf に直接書く場合もありますが、他のファイルに分けて書いた方がメンテナンスは容易です。Apache 2.2 では、httpd/extra/httpd-vhosts.conf に書くようになっています。CentOS など Red Hat 系では /extra/ ディレクトリはなく、conf.d/*.conf が自動的に読み込まれますので、/etc/httpd/conf.d/httpd-vhosts.conf というファイルを作るのがよいと思います。

CentOS 5での例ですが、まず /etc/httpd/conf/httpd.conf を編集します。

NameVirtualHost *:80

上記を有効にします。バーチャルホストはドメインごとに以下のように設定します。

# www.example1.org
<VirtualHost *:80>
    DocumentRoot /var/www/vhosts/example1
    ServerName www.example1.org
    ServerAlias example1.org
    ErrorLog logs/example1.org-error_log
    CustomLog logs/example1.org-access_log combined
</VirtualHost>

http://www.example1.org/ にアクセスしたときに /var/www/vhosts/example1/ ディレクトリのファイルを表示する例です。エイリアスとして www なしの http://example1.org/ でも同じ設定を使うようになっています。また、ログも分けて出力するようにしています。

バーチャルホストの設定がたくさんあるときは、それぞれのサイトごとにファイルを分けた方が良い場合もあります。(特に複数の管理者で触るような場合)まず httpd.conf で

Include conf.d/vhosts/*.conf

のようにして、/etc/httpd/conf.d/vhosts/*.conf ファイルを読み込むように設定します。ドメインごとに example1.org.conf や example2.net.conf などのファイルを作っていきます。

<VirtualHost *:80>
    DocumentRoot /var/www/vhosts/example2
    ServerName example2.net
    ServerAlias www.example2.net
    AddDefaultCharset euc-jp
    <Directory "/var/www/vhosts/example2">
      Options Includes ExecCGI FollowSymLinks MultiViews
    php_value mbstring.language Japanese
    php_value mbstring.internal_encoding EUC-JP
    php_value mbstring.http_input auto
    php_value mbstring.http_output EUC-JP
</VirtualHost>

上記は、サーバ全体の文字コード指定は UTF-8 だが、example2.net だけは EUC-JP で稼動させたいときの設定です。HTML だけでなく PHP の内部コードと出力文字コードも EUC-JP にしています。

設定を有効にするには、Apahce をリロードします。

# service httpd relaod 
  • ブックマーク : アクセス: 15,541回
  • カテゴリー : Apache
  • キーワード :

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

68 queries. HTML convert time: 1.239 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン