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
——————————————–
実行例)

動作確認用にダミーのHTMLをテキストエディタで作って、各DocumentRoot内に保存する。
・トップページ用確認HTML
ファイル名:/Users/tomoyun/Web/www/index.html

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

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

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

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

VirtualHostの設定の基本は、下記のようになっている。
————————————————————————————-
ServerAdmin Webサイト管理者のメールアドレス
DocumentRoot “DocumentRootのフォルダ”
ServerName Webサイトのドメイン名
ErrorLog “エラーログのファイル名”
CustomLog “アクセスログのファイル名” ログのフォーマット名
————————————————————————————-
これを運用するWebサイトの数だけ書き並べる。
サーバのドメイン名ではなくIPアドレスでアクセスされた場合は、一番最初のVirtualHostが使用される。
————————————————————————————-
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
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
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」以下への外部からのアクセスを許可する。
————————————————————————————-
AllowOverride None
Options None
Order allow,deny
Allow from all
————————————————————————————-
設定例)

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

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

動作確認
外部からWebブラウザでアクセスして、動作を確認する。
http://www.mydomain.jp/

http://blog.mydomain.jp/

http://localhost/
(管理ページ)

http://www.mydomain.jp/~tomoyun/
(ユーザーページ)

これで、VirtualHostによるWebサイトの運営が可能になった。
あとは、各DocumentRoot内にコンテンツやサービスを置くだけだ。
以上。
関連記事
- MacでWeb開発-(1) XAMPP for Macの環境設置
- MacでWeb開発-(2) XAMPP for MacにPostgreSQLを追加
- MacでWeb開発-(3) XAMPP for MacのPHPの環境設定
- MacでWeb開発-(4) XAMPP for MacのApacheの設定確認
- MacでWeb開発-(5) XAMPP for Macの管理画面へのアクセス制限
- MacでWeb開発-(6) XAMPP for MacでWebサイトを運営(VirtualHost)
- MacでWeb開発-(7) XAMPP for Macでブログを運営(WordPress)
- MacでWeb開発-(8) XAMPP for MacでWikiを運営(PukiWiki)
- MacでWeb開発-(9) XAMPP for MacでSNSを運営(OpenPNE)
- MacでWeb開発-(10) XAMPPにQuictyフレームワークを設置
- Macを買ったら入れるソフト- (5) UNIX環境編
- MacPortsの使い方















またもや、サイトウです。あちこちにすいません
$ /Applications/xampp/xamppfiles/bin/apachectl configtest
/Applications/xampp/xamppfiles/bin/apachectl: line 70: ulimit: open files: cannot modify limit: Invalid argument
Syntax OK
エラーっぽいものがでたのですが、
大丈夫でしょうか?
お時間あるときに、お願いいたします。
サイトウさん
XAMPPの0.7系は、このワーニングが出ますが、実用上は問題ないようです。
tomoyunさま
いつもお世話になっております。
お返事遅れました、ありがとうございます。
(3)のほうにも質問させていただいたので、またお願いいたします。
お世話になっております。
どうにか、(6)まで、設定終わりましたが、
アクセス結果です。url で出ないので、教えてください。
■設定
=============================
公サイト http://miqui-labo.com
/Users/(ユーザー名)/Web/miqui-labo/
ブログ http://route819.drawing.jp
/Users/(ユーザー名)/Web/route819/
ユーザー http://miqui-labo.com/~(ユーザー名)/
/Users/(ユーザー名)/Sites
=============================
■外部から
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 は表示されないのでしょうか?
またもや、無知な質問をお許しください。
よろしくお願いします。
サイトウさん
まず、
http://miqui-labo.comのDNSは設定済みですよね?
あと、実際に使用しているVirtualHostの設定を貼ってください。
(メールアドレスなどは、無効なものに、差し替えてください)
tomoyunさま お世話になっております。
DNS設定しておりませんでした、、、
ムームードメインで取得したので、ムームーDNSセットアップで、Stepserver指定の、お客様側ネームサーバーのDNS情報を変更する場合の
@ A 210.233.74.139 を入れてみました、、、
がまだ出ません、、、
VirtualHostの設定は、実際のものを入れて保存してあります。
それを、こちらにコピペで貼ってみたほうがよろしいですか?
お手数をおかけします。