今ならXeonも搭載可能なPCサーバー「PowerEdge SC440」が2万円台から買える!

マウスコンピューター」ならWindows抜きでもPCが買える。Linuxサーバーとしての利用に最適!

トップページ

  • tarの使い方
  • rpmの使い方
  • psコマンドでプロセスを確認
  • /etc/crontabを編集してアプリを自動実行
  • chkconfigコマンドでプロセスを自動起動

バーチャルホストでサブドメインを作成

 サブドメインというのは「××.mydomain.com」の××に当たる部分だ。自宅サーバーでは「red.mydomain.com」「blue.mydomain.com」のように1つしかドメインがなくても、バーチャルホストによってサブドメインを自由に作成できる。また、複数のドメインを取得したときでもまったく同じ方法によって、一台のサーバーで同時に運営できる。実は多くのレンタルサーバーも一台のサーバーにたくさんのドメインを収容しているが、基本的なやりかたは同じである。

DDNSサービスの設定

 DDNSサービスでホスト名の設定をアスタリスク(*)にしておこう。もし「www」と指定しているなら「www.mydomain.com」でしかアクセスできないが、アスタリスクに変更すればどんなサブドメインでも中継してくれる。
 また、2つ目以降の新しいドメインを取得したときは、そのドメインについて新たにDDNSサービスに登録しておく。

バーチャルホストの基本設定

 バーチャルホストを設定するには「/etc/httpd/conf/httpd.conf」を編集する。httpd.confの1040行目あたりに次のような記述がある。その下にバーチャルホストの情報を追加していく。ここでは「www.mydomain.com」で運用していたサーバーに、「red.mydomain.com」というサブドメインを追加すると仮定する。

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
#
#<VirtualHost ip.address.of.host.some_domain.com>
#    ServerAdmin webmaster@host.some_domain.com
#    DocumentRoot /www/docs/host.some_domain.com
#    ServerName host.some_domain.com
#    ErrorLog logs/host.some_domain.com-error_log
#    CustomLog logs/host.some_domain.com-access_log common
#</VirtualHost>

#<VirtualHost _default_:*>
#</VirtualHost>

ここから下を追加していく
<VirtualHost *>
      ServerName www.mydomain.com 元からのドメイン名
      DocumentRoot /home/httpd/html 元からのデータのディレクトリ
</VirtualHost>

<VirtualHost *>
      ServerName red.mydomain.com 追加するサブドメイン
      DocumentRoot /home/red/public_html そのデータのディレクトリ
</VirtualHost>

 追加するサブドメインのデータの置き場所はどこでもかまわないが、red.mydomain.comでは「red」というユーザーのホームページを使うことにした。通常は「http://www.mydomain.com/~×××/」というURLになるが、サブドメインを使うと「×××.mydomain.com」という形でアクセスできるようになる。長さが短くなり、アクセスもしやすくなりそうだ。
 また、ここではサブドメインの作り方を紹介したが、新たに取得した別のドメインも同じ要領で指定できる。
 上の設定は最低限の記述であり、このほかにさまざまな設定を行える。だが、最初からいろいろ設定すると、うまく動かないときに原因を突き止めるのが難しくなるので、簡単なところから始めよう。
 なお、ファイルを保存したらhttpdを再起動するのを忘れないように(/etc/rc.d/init.d/httpd restart)。

ドメイン別のログファイルを作成する

 バーチャルホストではそれぞれ別のログファイルにアクセスの記録をとることができる。指定をしないとすべて同じ「access_log」に記録されるため、どのドメインにアクセスがあったのか判断するのが難しい。ログファイルを分離すればログの解析もやりやすくなるはずだ。
 ログファイルの設定は<Virtual Host *>と</VirtualHost>の間に以下のように記述する。

<VirtualHost *>
      ServerName www.mydomain.com
      DocumentRoot /home/httpd/html
      CustomLog logs/main_access_log 標準のアクセスログ
      ErrorLog logs/main_error_log 標準のエラーログ
</VirtualHost>

<VirtualHost *>
      ServerName red.mydomain.com
      DocumentRoot /home/red/public_html
      CustomLog logs/red_access_log 追加ドメインのアクセスログ
      ErrorLog logs/red_error_log 追加ドメインのエラーログ
</VirtualHost>

 ログの取り方はこのページで紹介したのと同じように変更できる。画像へのアクセスやローカルからのアクセスを記録しなかったり、簡単な形式でのログをとったりといったカスタマイズである。CustomLogの行に次のように太字の部分を追加するといい。

CustomLog logs/red_access_log common env=!nolog

アクセスできるか確認する

 こちらのページでやったのと同様に、LANの中からは自分のドメイン名でアクセスしてもページは開かない。サブドメインや2つ目のドメインが使えるかどうかは外から確認する必要がある。「Anonymizer」などを使って確認しよう。
 LANの内側からアクセスできるように設定したいなら、hostsファイルを編集する。WindowsXP/2000の場合、スタートメニューの「ファイル名を指定して実行」から「notepad %SystemRoot%\system32\drivers\etc\hosts」と入力。Windows98/Meでは「notepad %SystemRoot%hosts」と入力する。ノートパッドでhostsファイルが開くのでいちばん下に次のように記述を追加しよう。

192.168.0.200 www.mydomain.com
192.168.0.200 red.mydomain.com

 ドメイン名を指定したときはまずhostsファイルの記述を読みに行き、そこに該当するものがなければDNSサーバーに問い合わせる。このようにhostsファイルに追加しておくとサブドメインや新しいドメインがプライベートIPアドレスに変換されるので問題なくアクセスができる。DNSサーバーに問い合わせを出すとグローバルIPアドレスが通知されるのでLANの中からはアクセスできない。


 
掲示板 管理者のサイト トップページへ

お問い合わせや間違いのご指摘はyasu@center-left.comまでメールください。