[XAMPP] Apacheのバーチャルホストで複数サイトを管理

Apacheのバーチャルホスト(Virtual Host)機能を使って、複数のサイトを管理します。

Windows 7 で、XAMPP(v1.8.2)を使用した開発環境を想定しています。

複数のプロジェクトで、Webサイトを開発する際に、

  • フォルダごとに分けて使う方法
    localhost/project1/
    localhost/project2/
  • httpd.confを置き換える方法
    httpd.conf
    ttpd.conf.project1
    httpd.conf.project2

のどちらかを、やると思うのですが、

絶対パスで書けなかったり。

<script type="text/javascript" src="/js/jquery.js"></script>

別のことやってる最中に、前のサイト開きたくなった時、httpd.confを置き換えてApache再起動したり。

やってて、ちょっと面倒になったらバーチャルホスト使うといいかもです。

 

設定方法

xampp/apache/conf/httpd.conf をテキストエディタで開きます。

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

上記の様な記述があると思います。
外部ファイルのhttpd-vhosts.confにバーチャルホスト関連の設定が書いてあるよ~ってことです。
もし、先頭に#があってコメントアウトされていたら取ります。

 

次に、xampp/apache/conf/extra/httpd-vhosts.conf を開きます。

そしたら、下記のような項目があるので、

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

これをコピーして、すぐ下に張り付けて、次のように書き換えます。

<VirtualHost *:80>
    DocumentRoot "F:\Project\gomocool\htdocs"
    ServerName gomocool.dev
	<Directory "F:\Project\gomocool\htdocs">
		Require all granted
		Order allow.deny
		Allow 127.0.0.1
	</Directory> 
</VirtualHost>

こんな感じかな。
ちなみに、この設定では、開発マシンを想定しているので、自分のマシンからしかアクセスできません。
(ちなみに、CakePHPなどのURL Rewrite 機能をつかう場合は、AllowOverrideが必要かも?)

んで、XAMPP Control Panel から Apache再起動。
書き方が変でなければ無事起動する。

しかし、このままではつながらないので、hostsに追記する。

C:\Windows\System32\drivers\etc\hosts をメモ帳か何かで開く。
ちなみに、管理者権限のメモ帳などで開かないと上書きできない。
よくわからないなら、デスクトップにコピーして、ドラッグ・アンド・ドロップで上書き。

開いたら、一番最後の行に、先ほどのServerNameを追記する。

127.0.0.1 gomocool.dev

 

これで、ブラウザに gomocool.dev と書いてアクセスできる。

 

One comment on “[XAMPP] Apacheのバーチャルホストで複数サイトを管理

  1. CDBTFMMJNDYQYLI 2018年9月10日 10:43 AM

    I used to be suggested this website by way of my cousin. I am now not sure whether this publish is written by way of him as nobody else understand such certain approximately my problem. You are incredible! Thanks!

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>