スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

1台のマシンで複数サイト運営(Apacheバーチャルドメイン)

自宅Webサーバは自由度が高すぎる為、なにかとトラブルが付き物で大変ですが、メリットも多いにあるわけです。今回試みようとしている1台のマシンで複数サイト運営がまさにそのメリットだと言えます。

※ここでは下記リンクの内容を設定済みの前提で話を進めます。
情報発信は自宅から!低予算自宅サーバ奮闘メモ 無料ドメインを取得してみる
情報発信は自宅から!低予算自宅サーバ奮闘メモ まずはApacheを動かしてみる

ここで言う、複数サイトとは、複数のドメインでそれぞれのページを管理することを言います。まぁ、最悪1つのドメインでもトップページから複数種類のページに分岐するようしておけば、複数サイト運営とも言えますが、やっぱりドメインを別々に扱いたいものです。

共有型レンタルサーバを借りて、複数サイトを運営する場合は、サイト数分別々の契約が必要になるでしょう。そうなるとランニングコストも2倍以上になります。自宅サーバの場合はApacheの設定を変えるだけで複数ドメインで複数サイトを実現することができます。

イメージとしては下図のようになります。



マシンとしては1つのIPアドレスが割り当てられていますが、Apacheの設定を変更することでApacheがドメインを判定し、該当フォルダのサイトを表示させます。

その為、1つのサイトに対して、アクセス数が激増した場合、マシンもApacheも1台なので他のサイトの処理も影響を受けます。とは言え、現状ほとんどアクセスはありませんし、このような懸念をするにはまだまだ早いスペックを備えております。人気サイトを作ってしまった暁にはうれしい悲鳴ということで、マシンスペックは検討したいと思います。

ただし、懸念材料はマシンだけでなく大域幅も考慮しなければなりません。回線がADSLの為、ひっきりなしにアクセスされた場合は回線を光に変えたいと思います。

では具体的にどうやって行うか以下に記載します。
1.サイト用フォルダの作成
まず、ここでは2つのサイトを対象として、以下のドメインを例に話を進めます。
・ajaxlab.dip.jp
・onsenmap.dip.jp

CentOSのApacheは下記パスがWebページのルートフォルダになっているはずです。

/var/www/html


ここに、Server1とServer2フォルダを作成し、この2フォルダをそれぞれのドメインのルートとして扱うようにします。
※それぞれのフォルダには設定終了後に確認できるよう、index.htmlファイルもそれぞれ格納しておく。



2.Apacheの設定
Apacheのコンフィグファイルは

/etc/httpd/conf/httpd.conf


に格納されています。このファイルを開いて、

下記が記載されている331~360行目位を全てコメントにします。

#<Directory "/var/www/html">
#
#</Directory>


CGIのディレクトリが記述されている箇所もコメントアウトします。

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>



そして、ドメイン2つ分のパスの定義を追記します。


# 第1ドメインのフォルダー設定
<Directory "/var/www/html/Server1">
Options FollowSymLinks Includes ExecCGI MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

# 第2ドメインのフォルダー設定
<Directory "/var/www/html/Server2">
Options FollowSymLinks Includes ExecCGI MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>



次に983行目付近にNameVirtualHostが記載されているので、その下辺りに以下を追加します。


NameVirtualHost *

# 第1ドメインの設定
<VirtualHost *>
ServerAdmin hoge@hoge.com
DocumentRoot /var/www/html/Server1
ServerName ajaxlab.dip.jp
ServerAlias ajaxlab.dip.jp
ErrorLog logs/S1-error_log
CustomLog logs/S1-access_log common
</VirtualHost>

# 第2ドメインの設定
<VirtualHost *>
ServerAdmin hoge@hoge.com
DocumentRoot /var/www/html/Server2
ServerName onsenmap.dip.jp
ServerAlias onsenmap.dip.jp
ErrorLog logs/S2-error_log
CustomLog logs/S2-access_log common
</VirtualHost>


上記修正が完了したら、保存します。

3.コンフィグ設定の確認
以下のコマンドを打って、”Syntax OK”と表示されればOK。

/usr/sbin/apachectl configtest


表示されずに「Syntax error」と出た場合はもう一度コンフィグを見直してみましょう。

4.Apache再起動
CentOSのメニュー、[システム] - [管理] - [サービス]を選択し、「サービスの設定」ダイアログを表示させる。”httpd”を再起動させる。
再起動が確認できたら、以下にアクセスしてみます。
http://ajaxlab.dip.jp
http://onsenmap.dip.jp

それぞれ、別のページにアクセスできたことが確認できればOKです。

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

このエントリーをはてなブックマークに追加

コメントの投稿

非公開コメント

プロフィール

白鯖

Author:白鯖
安い寄せ集めの部品で構築し、CentOS5をインストールしました。主に、Webサーバ、アプリケーションサーバとして運用中。ハードの知識はあまり無いプログラマですが、全部自前で作るのは、手間はかかるけど、レン鯖より面白いです。

ハードウェア構成

カテゴリー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
Max TDP控え目なCPU
安くて静音なクーラー
検索フォーム
ユーザータグ
RSSフィード
はてな
スポンサード リンク
おすすめ書籍
twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。