Getting started: A skeleton application

In order to build our application, we will start with the ZendSkeletonApplication available on github. Go to and click the “Zip” button. This will download a file with a name like or similar.

Unzip this file into the directory where you keep all your vhosts and rename the resultant directory to zf2-tutorial.

ZendSkeletonApplication is set up to use Composer ( to resolve its dependencies. In this case, the dependency is Zend Framework 2 itself.

To install Zend Framework 2 into our application we simply type:

php composer.phar self-update
php composer.phar install

from the zf2-tutorial folder. This takes a while. You should see an output like:

Installing dependencies from lock file
- Installing zendframework/zendframework (dev-master)
  Cloning 18c8e223f070deb07c17543ed938b54542aa0ed8

Generating autoload files

We can now move on to the virtual host.

Virtual host

You now need to create an Apache virtual host for the application and edit your hosts file so that http://zf2-tutorial.localhost will serve index.php from the zf2-tutorial/public directory.

Setting up the virtual host is usually done within httpd.conf or extra/httpd-vhosts.conf. (If you are using httpd-vhosts.conf, ensure that this file is included by your main httpd.conf file.)

Ensure that NameVirtualHost is defined and set to “*:80” or similar, and then define a virtual host along these lines:

<VirtualHost \*:80>
    ServerName zf2-tutorial.localhost
    DocumentRoot /path/to/zf-2tutorial/public
    SetEnv APPLICATION_ENV "development"
    <Directory /path/to/zf2-tutorial/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all

Make sure that you update your /etc/hosts or c:\windows\system32\drivers\etc\hosts file so that zf2-tutorial.localhost is mapped to The website can then be accessed using http://zf2-tutorial.localhost.

If you’ve done it right, you should see something like this:


To test that your .htaccess file is working, navigate to http://zf2-tutorial.localhost/1234 and you should see this:


If you see a standard Apache 404 error, then you need to fix .htaccess usage before continuing.

You now have a working skeleton application and we can start adding the specifics for our application.