For purposes of this quick start, we will assume you are using the Apache web server. Zend Framework works perfectly well with other web servers -- including Microsoft Internet Information Server, lighttpd, nginx, and more -- but most developers should be famililar with Apache at the minimum, and it provides an easy introduction to Zend Framework's directory structure and rewrite capabilities.
To create your vhost, you need to know the location of your
httpd.conf file, and potentially where other configuration files
are located. Some common locations:
/etc/httpd/httpd.conf(Fedora, RHEL, and others)/etc/apache2/httpd.conf(Debian, Ubuntu, and others)/usr/local/zend/etc/httpd.conf(Zend Server on *nix machines)C:\Program Files\Zend\Apache2\conf(Zend Server on Windows machines)
Within your httpd.conf (or httpd-vhosts.conf
on some systems), you will need to do two things. First, ensure that the
NameVirtualHost is defined; typically, you will set it to a value of
"*:80". Second, define a virtual host:
<VirtualHost *:80>
ServerName quickstart.local
DocumentRoot /path/to/quickstart/public
SetEnv APPLICATION_ENV "development"
<Directory /path/to/quickstart/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
There are several things to note. First, note that the DocumentRoot
setting specifies the public subdirectory of our project; this
means that only files under that directory can ever be served directly by the server.
Second, note the AllowOverride, Order, and
Allow directives; these are to allow us to use
htacess files within our project. During development, this is a
good practice, as it prevents the need to constantly restart the web server as you make
changes to your site directives; however, in production, you should likely push the
content of your htaccess file into your server configuration and
disable this. Third, note the SetEnv directive. What we are doing
here is setting an environment variable for your virtual host; this variable will be
picked up in the index.php and used to set the
APPLICATION_ENV constant for our Zend Framework application. In
production, you can omit this directive (in which case it will default to the value
"production") or set it explicitly to "production".
Finally, you will need to add an entry in your hosts file
corresponding to the value you place in your ServerName directive. On
*nix-like systems, this is usually /etc/hosts; on Windows, you'll
typically find it in C:\WINDOWS\system32\drivers\etc. Regardless of
the system, the entry will look like the following:
127.0.0.1 quickstart.local
Start your webserver (or restart it), and you should be ready to go.




