XAMPPのVirtual Host設定 hosts編(備忘録)

前回は誤って編集途中で公開してしまいました・・・

そんなワケで仕方なく完結させてしまったので、続きで書く予定だった分も備忘録っておく。

今回は複数サイトをXAMPPで使う場合。

要するに前回同様Virtual Hostの設定をしてhostsファイルで強制的に名前解決をやっちゃうワケです。

以前投稿した記事のローカル版みたいなもので、ネット上でもよく紹介されている方法ですな。

例として

URL ドキュメントルート
http://localhost C:\XAMPP\htdocs
http://myhogehoge.com C:\XAMPP\public_html\myhogehoge.com
http://myfugafuga.com C:\XAMPP\public_html\myfugafuga.com

として設定する場合のXAMPPの設定。

前回の設定はされていないものとして、インストールしたてホヤホヤの「C:\XAMPP」を前提に、
「C:\XAMPP\apache\conf\extra\httpd-vhosts.conf」を編集。

# Use name-based virtual hosting.
#
##NameVirtualHost *:80

今回はポート8080は使用しないので変更はコメントアウト部分を外すのみ。

# Use name-based virtual hosting.
#
NameVirtualHost *:80

同じくhttpd-vhosts.confでhost毎の設定を変更

##<VirtualHost *:80>
    ##ServerAdmin postmaster@dummy-host.localhost
    ##DocumentRoot "/xampp/htdocs/dummy-host.localhost"
    ##ServerName dummy-host.localhost
    ##ServerAlias www.dummy-host.localhost
    ##ErrorLog "logs/dummy-host.localhost-error.log"
    ##CustomLog "logs/dummy-host.localhost-access.log" combined
##</VirtualHost>

##<VirtualHost *:80>
    ##ServerAdmin postmaster@dummy-host2.localhost
    ##DocumentRoot "/xampp/htdocs/dummy-host2.localhost"
    ##ServerName dummy-host2.localhost
    ##ServerAlias www.dummy-host2.localhost
    ##ErrorLog "logs/dummy-host2.localhost-error.log"
    ##CustomLog "logs/dummy-host2.localhost-access.log" combined
##</VirtualHost>

を下記のように。

<VirtualHost *:80>
    DocumentRoot "/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/xampp/public_html/myhogehoge.com"
    ServerName myhogehoge.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/xampp/public_html/myfugafuga.com"
    ServerName myfugafuga.com
</VirtualHost>

頭に www をつけた場合も同じにしたい場合は ServerAlias を使いましょう。

<VirtualHost *:80>
    DocumentRoot "/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/xampp/public_html/myhogehoge.com"
    ServerName myhogehoge.com
    ServerAlias www.myhogehoge.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/xampp/public_html/myfugafuga.com"
    ServerName myfugafuga.com
    ServerAlias www.myfugafuga.com
</VirtualHost>

当然今回もこの状態では動作しないw

ひとつ上の階層の「C:\XAMPP\apache\conf\httpd.conf」を編集。

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 80

今回は上記部分の変更は不要なのでスルー。

<Directory "/xampp/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks Includes ExecCGI

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all

</Directory>

この部分を変更するワケですが、コメントアウトが多いので除去した。

<Directory "/xampp/htdocs">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<Directory "/xampp/public_html/myhogehoge.com">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<Directory "/xampp/public_html/myfugafuga.com">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

下2つはまとめても動くかも。

<Directory "/xampp/public_html/">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

ただ使用しない「/xampp/public_html/」にもアクセス権が残るので若干気持ち悪い。
ローカルテスト程度なら問題ないけど。

最後にhostsファイルの設定です。
通常なら「C:\WINDOWS\system32\drivers\etc」のやつです。

127.0.0.1       localhost
127.0.0.1       myhogehoge.com
127.0.0.1       myfugafuga.com

の2行を追加。

もし上でwwwのエイリアス設定を追加していた場合はwwwも。

127.0.0.1       localhost
127.0.0.1       myhogehoge.com
127.0.0.1       myfugafuga.com
127.0.0.1       www.myhogehoge.com
127.0.0.1       www.myfugafuga.com

これで準備はOK。

前回同様

  • C:\XAMPP\public_html\myhogehoge.com
  • C:\XAMPP\public_html\myfugauga.com

のフォルダを作成した上でApacheを再起動すればアクセスできる筈です。

うまくいかない場合は焦らずに

  • 記述ミスがないか確認
  • スーパーリロード(Ctrl+F5)を試す
  • ブラウザ再起動

等をしてみましょう。

スポンサーリンク

シェアする

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

フォローする

スポンサーリンク