Setting up a local website with server-side scripts on Mac OS X
Alec Jacobson
May 13, 2012
Try to go to http://localhost/. If you don't find anything there then turn on System Preferences > Sharing > Web Sharing.
On my 10.7 machine the default site location is at /Library/WebServer/Documents/index.html.en
You should be able to edit this file and see that http://localhost/ changes.
Now, we'd like to have an arbitrary folder contain our website, so I'll use ~/Documents/IGL-website
. Copy your websites source or put some source in this folder.
Now we setup the redirect necessary to send some local domain name (we'll use localigl
to our website at ~/Documents/IGL-website
. Open up the file /private/etc/hosts
and add the line:
127.0.0.1 localigl
Now you should see that going to http://localigl/ also directs to /Library/WebServer/Documents/index.html.en
Now edit the file
/private/etc/apache2/users/YOURUSERNAME.conf
and add the following:
NameVirtualHost *:80
<Directory "/Users/YOURUSERNAME/Sites/">
Options Indexes MultiViews Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
ServerName localhost
DocumentRoot /Users/YOURUSERNAME/Sites/
</VirtualHost>
<Directory "/Users/YOURUSERNAME/Documents/IGL-website/">
Options Indexes MultiViews Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
ServerName localigl
DocumentRoot /Users/YOURUSERNAME/Documents/IGL-website/
</VirtualHost>
You'll need to add executable permissions to the path preceding your website, so for my example this means:
chmod +x ~/Documents
To get php scripts working correctly, in /private/etc/apache2/httpd.conf
uncomment the following line to look like this:
LoadModule php5_module libexec/apache2/libphp5.so
Now, you must restart your apache server. The easiest way is to toggle System Preferences > Sharing > Web Sharing.
With all this, you should now be able to go to http://localigl/ and see your (possibly php-based) webpage.