I’ve got XAMPP installed on a Windows 7 machine. I wanted a way to test multiple sites locally.
Set up the local host file
In your host file, add (replace with the domains you want):
127.0.0.1 sub.domain.com.dev 127.0.0.1 www.example.com.dev 127.0.0.1 www.unfocus.com.dev
UPDATE: Thanks to xip.io the host file edits are optional if you use the style www.example.com.127.0.0.1.xip.io (replace 127.0.0.1 with your actual IP address). This is compatible with Adobe’s Edge Inspect.
Set up XAMPP config files
In \xampp\apache\conf\httpd.conf uncomment the following at about line 140:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
I’ve used the folder structure of “\xampp\htdocs\www.example.com\web\content\files.php” (for example) and the following config will find the folder with the exact name in the url.
In \xampp\apache\conf\extra\httpd-vhosts.conf:
NameVirtualHost *:80 <virtualhost *:80> DocumentRoot C:/xampp/htdocs/ </virtualhost> # New: No hosts file edits if you use this style # Replace X.X.X.X with your local IP <virtualhost X.X.X.X:80> # Handle Edge Code IPs VirtualDocumentRoot D:/xampp/htdocs/websites/%-7+/web/content/ ServerAlias *.X.X.X.X.xip.io php_admin_value auto_prepend_file D:/xampp/setdocroot.php </virtualhost> <virtualhost *:80> VirtualDocumentRoot C:/xampp/htdocs/%-2+/web/content/ ServerAlias *.dev php_admin_value auto_prepend_file C:/xampp/setdocroot.php </virtualhost>
Fix DOCUMENT_ROOT
If you are having issues with DOCUMENT_ROOT, create setdocroot.php at “\xampp\” and put the following in it:
<?php $_SERVER['DOCUMENT_ROOT'] = str_replace($_SERVER['SCRIPT_NAME'],"",$_SERVER['SCRIPT_FILENAME']); ?>
References:
https://issues.apache.org/bugzilla/show_bug.cgi?id=26052#c27
http://stackoverflow.com/questions/138162/wildcards-in-a-hosts-file
http://postpostmodern.com/instructional/a-smarter-mamp/