Example virtual host and .htaccess configuration for Zend application on OSX Lion

I usually work with the backend of web applications so I do not get enough training in setting up virtual hosts, so I thought I better put an example up here. At least to have something to start with.

I use the built in apache server on OSX and I usually put my virtual hosts in the <username>.conf (/private/etc/apache2/users/<username>.conf) where <username> is simply your username 🙂

Example:

<VirtualHost *:80>
        ServerName my.zendapp.com
        DocumentRoot "/Users/<username>/Sites/myzendapp"
        ServerAdmin admin@my.zendapp.com

        <Directory "/Users/<username>/Sites/myzendapp">
                Options Indexes FollowSymLinks
                AllowOverride FileInfo
                Order allow,deny
                Allow from all
        </Directory>

</VirtualHost>

To get my.zendapp.com to work we need to put an entry in the hosts file like this:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0     localhost
127.0.0.1       my.zendapp.com

To reach your new zendapp go to: http://my.zendapp.com/public

If you want to use http://my.zendapp.com instead just add the public part to the DocumentRoot:

DocumentRoot "/Users/<username>/Sites/myzendapp/public"
ServerAdmin admin@my.zendapp.com

and the Directory:

<Directory "/Users/<username>/Sites/myzendapp/public">
                Options Indexes FollowSymLinks


NOTE! Depending on your choice in urls you may need to change the .htaccess (/Users/<username>/Sites/myzendapp/public/.htaccess) file accordingly:

For long url (http://my.zendapp.com/public):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /public/index.php [NC,L]

For short url (http://my.zendapp.com):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]

Tested on OSX 10.7.4 and Zend Framework 1.10.8

Comments are closed.

Niklas Tech Blog
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.