MacでWeb開発-(6) XAMPP for MacでWebサイトを運営(VirtualHost)

5月 3rd, 2008

 XAMPPでブログ、Wiki、SNSなど複数のサービスを運用したい場合は、「VirtualHost」の設定が必要になる。
「VirtualHost」とは、1台のWebサーバで複数のWebサイトを運用するためのApacheの機能だ。
運用する各Webサイトは、ドメイン名が異なっていればIPアドレスは1つでいい。これを「名前ベースのVirtualHost」という。
(iモードなどケータイ電話のブラウザは名前ベースのVirtualHostに対応しておらず、個別のIPアドレスが必要なものもある)

ここでは、仮に以下のような構成で複数のWebサイトを運用する設定を紹介する。
なお、各ドメイン名は、XAMPPが動作しているMacのIPアドレスに割り当てられていることが前提だ。
トップページとブログのDocumentRootは、自分の(下記の例ではユーザー「tomoyun」)のホームディレクトリの下に置くことにする。

Webサイト ドメイン名 URL DocumentRoot
トップページ www.mydomain.jp http://www.mydomain.jp/ /Users/tomoyun/Web/www
ブログ blog.mydomain.jp http://blog.mydomain.jp/ /Users/tomoyun/Web/blog
XAMPP管理ページ localhost http://localhost/ /Applications/xampp/xamppfiles/htdocs
ユーザーページ www.mydomain.jp http://www.mydomain.jp/~(ユーザー名)/ /Users/(ユーザー名)/Sites

「トップページ」「ブログ」と便宜的に名前は付けているが、実際にコンテンツやサービスを作るわけではない。

今回は、動作確認用の簡単なHTMLを表示するだけだ。

修正する設定ファイル

VirtualHostの設定は、Apacheの設定ファイル「httpd.conf」に書き込む。最近のApacheでは、メンテナンスしやすいようにVirtualHostを別のファイルで設定し、httpd.confのInclude命令で読み込むようになっている。
XAMPP for MacOS X の場合は、VirtualHostを利用するために下記の2つのファイルを書き換える。

Apapcheの設定ファイル /Applications/xampp/etc/httpd.conf
VirtualHostの設定ファイル /Applications/xampp/etc/extra/httpd-vhosts.conf

各DocumentRootフォルダとHTMLの準備

各WebサイトのDocumentRootフォルダを作成する。
——————————————–
$ mkdir /Users/tomoyun/Web
$ mkdir /Users/tomoyun/Web/www
$ mkdir /Users/tomoyun/Web/blog
——————————————–

実行例)
screenshot_21.j2yhzuYNpMKb.jpg

動作確認用にダミーのHTMLをテキストエディタで作って、各DocumentRoot内に保存する。

・トップページ用確認HTML
ファイル名:/Users/tomoyun/Web/www/index.html
screenshot_05.bEuwkZMhy1cl.jpg

・ブログ用確認HTML
ファイル名:/Users/tomoyun/Web/blog/index.html
screenshot_06.P64is2cvbujN.jpg

httpd.confの修正

httpd-vhosts.confのInclude(読み込み)は、httpd.confの482行目にある(インストール直後の場合)。

screenshot_14.fGbROV4wvdxI.jpg

行頭のコメントマーク「#」を削除すれば、httpd-vhosts.confが読み込まれるようになる。
————————————————————————————-
# Virtual hosts
#Include /Applications/xampp/etc/extra/httpd-vhosts.conf

# Virtual hosts
Include /Applications/xampp/etc/extra/httpd-vhosts.conf
————————————————————————————-

修正結果
screenshot_15.YPK29eqLtbIf.jpg

httpd-vhosts.confの修正

インストール直後のhttpd-vhosts.confには、VirtualHostの設定例書かれている。
screenshot_01.sXlpNjPMmc9n.jpg

VirtualHostの設定の基本は、下記のようになっている。
————————————————————————————-
<VirtualHost *:80>
ServerAdmin Webサイト管理者のメールアドレス
DocumentRoot “DocumentRootのフォルダ”
ServerName Webサイトのドメイン名
ErrorLog “エラーログのファイル名”
CustomLog “アクセスログのファイル名” ログのフォーマット名
</VirtualHost>
————————————————————————————-

これを運用するWebサイトの数だけ書き並べる。
サーバのドメイン名ではなくIPアドレスでアクセスされた場合は、一番最初のVirtualHostが使用される。

————————————————————————————-
<VirtualHost *:80>
ServerAdmin tomoyun@mydomain.jp
DocumentRoot /Users/tomoyun/Web/www
ServerName www.mydomain.jp
ErrorLog logs/www.mydomain.jp-error_log
CustomLog logs/www.mydomain.jp-access_log common

</VirtualHost>

<VirtualHost *:80>
ServerAdmin tomoyun@mydomain.jp
DocumentRoot /Users/tomoyun/Web/blog
ServerName blog.mydomain.jp
ErrorLog logs/blog.mydomain.jp-error_log
CustomLog logs/blog.mydomain.jp-access_log common

</VirtualHost>

<VirtualHost *:80>
ServerAdmin tomoyun@mydomain.jp
DocumentRoot /Applications/xampp/xamppfiles/htdocs
ServerName localhost
ErrorLog logs/localhost-error_log
CustomLog logs/localhost-access_log common

</VirtualHost>

————————————————————————————-

さらに「/Users/tomoyun/Web」以下への外部からのアクセスを許可する。
————————————————————————————-
<Directory “/Users/tomoyun/Web”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
————————————————————————————-

設定例)
screenshot_17.SZyarx11WUY7.jpg

設定を保存できたら、ターミナルで下記のように入力して、問題がないか確認する。
————————————————————————————-
$ /Applications/xampp/xamppfiles/bin/apachectl configtest
————————————————————————————-

実行例)
screenshot_22.QvZPLysLksVJ.jpg

XAMPP Control PanelでApacheをリロードする。

screenshot_24.2PmBMHxnzMPk.jpg

動作確認

外部からWebブラウザでアクセスして、動作を確認する。

http://www.mydomain.jp/

screenshot_28.s2ua9fpcDvYA.jpg

http://blog.mydomain.jp/

screenshot_29.2yQ9GUz6uNXX.jpg

http://localhost/

(管理ページ)
screenshot_19.q1sn62db8Q3b.jpg

http://www.mydomain.jp/~tomoyun/

(ユーザーページ)
screenshot_31.jvioxSu2LoDh.jpg

これで、VirtualHostによるWebサイトの運営が可能になった。
あとは、各DocumentRoot内にコンテンツやサービスを置くだけだ。

以上。

関連記事

関連記事

カテゴリー: Apapche, Mac, XAMPP

コメントをどうぞ

コメントフィード7件のコメント

  1. サイトウ

    またもや、サイトウです。あちこちにすいません

    $ /Applications/xampp/xamppfiles/bin/apachectl configtest
    /Applications/xampp/xamppfiles/bin/apachectl: line 70: ulimit: open files: cannot modify limit: Invalid argument
    Syntax OK

    エラーっぽいものがでたのですが、
    大丈夫でしょうか?
    お時間あるときに、お願いいたします。

  2. tomoyun

    サイトウさん

    XAMPPの0.7系は、このワーニングが出ますが、実用上は問題ないようです。

  3. サイトウ

    tomoyunさま
    いつもお世話になっております。
    お返事遅れました、ありがとうございます。
    (3)のほうにも質問させていただいたので、またお願いいたします。

  4. サイトウ

    お世話になっております。
    どうにか、(6)まで、設定終わりましたが、
    アクセス結果です。url で出ないので、教えてください。
    ■設定
    =============================
    公サイト http://miqui-labo.com
    /Users/(ユーザー名)/Web/miqui-labo/
    ブログ http://route819.drawing.jp
    /Users/(ユーザー名)/Web/route819/
    ユーザー http://miqui-labo.com/~(ユーザー名)/
    /Users/(ユーザー名)/Sites
    =============================

  5. サイトウ

    ■外部から
    XAMPP画面は接続せずOK
    http://MacのIPアドレス/~(ユーザー名)/
      ユーザーページが表示でOK
    http://MacのIPアドレス
      /Users/(ユーザー名)/Web/miqui-labo/index.html が表示されます。
    http://miqui-labo.com(ドメイン取得済 StepServerでサブドメインで設定 中身は空)
      Not Found
      The requested URL / was not found on this server.
    http://route819.drawing.jp/(StepServer既存ページ)
    既存ページ表示
    ■macから
    http://MacのIPアドレス
      真っ白です。
    http://miqui-labo.com(ドメイン取得済 StepServerでサブドメインで設定 中身は空)
      Not Found
      The requested URL / was not found on this server.
    http://route819.drawing.jp/(StepServer既存ページ)
    既存ページ表示

    素朴な疑問なのですが、
    1. http://localhost/ で、/Users/(ユーザー名)/Web/miqui-labo/ を出すにはどういうurlになるのでしょうか?
    2.
    このバーチャルホスト設定だと、xampp起動していないときは、
    http://miqui-labo.com は表示されないのでしょうか?
    またもや、無知な質問をお許しください。
    よろしくお願いします。

  6. tomoyun

    サイトウさん
    まず、
    http://miqui-labo.comのDNSは設定済みですよね?

    あと、実際に使用しているVirtualHostの設定を貼ってください。
    (メールアドレスなどは、無効なものに、差し替えてください)

  7. サイトウ

    tomoyunさま お世話になっております。
    DNS設定しておりませんでした、、、
    ムームードメインで取得したので、ムームーDNSセットアップで、Stepserver指定の、お客様側ネームサーバーのDNS情報を変更する場合の
    @ A 210.233.74.139 を入れてみました、、、
    がまだ出ません、、、

    VirtualHostの設定は、実際のものを入れて保存してあります。
    それを、こちらにコピペで貼ってみたほうがよろしいですか?

    お手数をおかけします。

コメントをどうぞ

Feed

http://www.zubapita.jp / MacでWeb開発-(6) XAMPP for MacでWebサイトを運営(VirtualHost)