CentOS 5.3 x64のApacheでバーチャルホストを設定

タックス

CentOS 5.3 x64のApacheを使った、バーチャルホストの設定をご紹介します。

    設定する前に、ある程度構成や仕様を考えなければいけません。
    主に検討しなければならないのが、

  • ユーザー管理

  • ディレクトリ構成。

  • FTPをどうするか。

  • だと思います。
    当然、自分がいくつものドメインを管理して、自分一人しか使ってなければ、こんな悩む必要は無いんでしょうけど、ホスティングサービスをやりたいけど、どう設定すれば管理も楽なんだろうと思う人もいるはず。

    そこで、簡単かつ明確なディレクトリ構成で、バーチャルドメインでのApache設定方法を考えてみたので、一例として参考にして下さい。
    あくまで、簡単に設定できる方法です。

  • 想定される構成

  • メインドメイン:foo.com
    バーチャルドメイン:bar.com

  • ユーザーの作成

  • foo.comのユーザーを作成
    # useradd foo
    # passwd foo

    bar.comのユーザー作成
    # useradd bar
    # passwd bar

    それぞれのドキュメントルートを作成
    # mkdir /home/foo/public_html
    # chown foo:foo /home/foo/public_html
    # mkdir /home/bar/public_html
    # chown bar:bar /home/bar/public_html

    パーミッションの変更
    # chmod 701 /home/*

  • /etc/httpd/conf/httpd.confの編集

  • セキュリティー上の観点から、プロダクトのみの表記
    ServerTokens OS

    ServerTokens ProductOnly

    メインドメインを記述
    #ServerName www.example.com:80

    ServerName foo.com

    バーチャルホストファイルに記述するため、コメントアウト
    DocumentRoot "/var/www/html"

    #DocumentRoot "/var/www/html"

    バーチャルホストファイルに記述するため、コメントアウト
    <Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>

    #<Directory "/var/www/html">
    # Options Indexes FollowSymLinks
    # AllowOverride None
    # Order allow,deny
    # Allow from all
    #</Directory>

    バーチャルホストファイルに記述するため、コメントアウト
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    <Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>

    #ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    #<Directory "/var/www/cgi-bin">
    # AllowOverride None
    # Options None
    # Order allow,deny
    # Allow from all
    #</Directory>

    index.htmとindex.cgiを追加
    DirectoryIndex index.html index.html.var

    DirectoryIndex index.html index.htm index.cgi index.html.var

    ログのIPアドレスを名前解決するかどうか。どっちでも良いです。好みで。
    HostnameLookups Off

    HostnameLookups On

    セキュリティー上の観点から、シグネチャ表示を不可
    ServerSignature On

    ServerSignature Off

    セキュリティ上の観点から、Indexesを削除
    Options Indexes FollowSymLinks

    Options FollowSymLinks

    日本語を最優先に設定
    LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

    LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

    文字化けを防ぐために、デフォルト文字コードの設定を回避。
    AddDefaultCharset UTF-8

    #AddDefaultCharset UTF-8

    CGIの動作を許可
    #AddHandler cgi-script .cgi

    AddHandler cgi-script .cgi .pl

    セキュリティ上の観点から、METHODのTRACEを不可にするために追記
    # Trace Method
    TraceEnable Off

    バーチャルホスト化のために設定
    #NameVirtualHost *:80

    NameVirtualHost *:80


  • バーチャルホストの設定ファイルを編集

  • /etc/httpd/conf.d/virtualhost-.conf
    IPアドレスでアクセスしてきた場合、どのページも表示させないようにする。
    #
    # VirtualHost example:
    # Almost any Apache directive may go into a VirtualHost container.
    # The first VirtualHost section is used for requests without a known
    # server name.
    #
    <VirtualHost *:80>
    ServerName any
    DocumentRoot /tmp
    </VirtualHost>

    ※/tmpは適当に変更しても良い。
    ※他のサイトでは、httpd.confファイルに直接記述する例が掲載されていますが、私が検証してみると、どうしてもIPアドレスでアクセスしてもうまくいきませんでした。なので、思うような結果が得られた方法をご紹介しました。

    /etc/httpd/conf.d/virtualhost-foo.com.conf
    #
    # VirtualHost example:
    # Almost any Apache directive may go into a VirtualHost container.
    # The first VirtualHost section is used for requests without a known
    # server name.
    #
    <Directory "/home/foo/public_html">
    Options Includes FollowSymLinks ExecCGI MultiViews
    AllowOverride AuthConfig
    Order allow,deny
    Allow from all
    </Directory>

    <VirtualHost *:80>
    ServerAdmin foo@foo.com
    DocumentRoot /home/foo/public_html
    ServerName www.foo.com
    ServerAlias foo.com *.foo.com
    ErrorLog logs/foo.com-error_log
    CustomLog logs/foo.com-access_log combined env=!no_log
    </VirtualHost>

    ※ 同じ要領でbar.comのファイルも作成。

  • Apacheの起動と自動起動設定

  • # service httpd start
    # chkconfig httpd on

    基本的な設定は以上です。
    もしも、運用中に新しいドメインを追加しなくてはならなくなった場合は、以下の手順で可能です。

  • 新しくドメインhoge.comを追加する場合。

  • # useradd hoge
    # passwd hoge
    # mkdir /home/hoge/public_html
    # chown hoge:hoge /home/hoge/public_html
    # chmod 701 /home/*

    /etc/httpd/conf.d/virtualhost-hoge.com.confの編集
    #
    # VirtualHost example:
    # Almost any Apache directive may go into a VirtualHost container.
    # The first VirtualHost section is used for requests without a known
    # server name.
    #
    <Directory "/home/hoge/public_html">
    Options Includes FollowSymLinks ExecCGI MultiViews
    AllowOverride AuthConfig
    Order allow,deny
    Allow from all
    </Directory>

    <VirtualHost *:80>
    ServerAdmin hoge@hoge.com
    DocumentRoot /home/hoge/public_html
    ServerName www.hoge.com
    ServerAlias hoge.com *.hoge.com
    ErrorLog logs/hoge.com-error_log
    CustomLog logs/hoge.com-access_log combined env=!no_log
    </VirtualHost>

    # service httpd reload

    これで、バーチャルホストでの運用が可能ですし、FTPも普通にvsftpdを設定するだけで、ユーザーにアカウントを割り振ってコンテンツをアップしてもらうことが可能です。
    是非、お試し下さい。

    以下、参考リンクです。

    Wikipedia(Linux)
    Wikipedia(CentOS)
    Wikipedia(Apache)
    Wikipedia(バーチャルホスト)

関連記事


FC2Blog Rankingblogram投票ボタンとれまが人気ブログランキングブログランキング・にほんブログ村へ
くる天 人気ブログランキングにほんブログ村 IT技術ブログ CentOSへ

テーマ : Linux
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

WING☆

Author:WING☆


カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
カウンター
お問い合わせ

名前:
メール:
件名:
本文:

WING☆からのお知らせ
  • CentOS 7設定集
  •    └wingリポジトリ(el7)

  • CentOS 6 x64設定集
  •    └wingリポジトリ(el6)

  • CentOS 5 x64設定集
  •    └wingリポジトリ(el5)



    My Yahoo!に追加

    FC2ブログランキング



    リンク
    ブロとも一覧
    Virtualization & Sever Maniax
    RSSリンクの表示
    QRコード
    QRコード
    ブロとも申請フォーム

    この人とブロともになる