Setup WAMP Server for Zend Framework Projects
A ZF project would not run out of the box on a fresh installation of WAMP. The purpose of this guide is to act as a checklist for the experienced, and a step by step guide for the more inexperienced. Before we start, this article is written based on WampServer 2.0i with Zend Framework 1.10. If you are using earlier versions, the steps should work, but you might want to consider upgrading to the newest.
- Make sure Wamp is running ok
- Enable virtual hosts, mod_rewrite, and override in ‘httpd.conf’
- Set up virtual host in ‘httpd-vhosts.conf’
- Check include paths for the Zend library
- Add Custom URLs in host file
1. Make sure Wamp is running ok
Navigate to http://localhost on your favorite browser, you should see the WampServer welcome screen with headings “Server Configuration”, “Tools”, “Your projects” etc. If not, check your Wamp installation before proceeding further.
2. Enable virtual hosts, mod_rewrite, and override in ‘httpd.conf’
For a default 2.0i installation, the apache configuration file can be found at ‘C:wampbinapacheApache2.2.11conf’. After making a backup, open it in notepad and search for “vhosts”. Make sure the line
# Include conf/extra/httpd-vhosts.conf
is uncommented by removing the “#” in front.
Next, look for the line
{code}
# LoadModule rewrite_module modules/mod_rewrite.so
{/code}
and uncomment it too.
Lastly, look for
{code}<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
# Deny from all
</Directory>
{/code}
and make sure AllowOverride is set to All instead of none. This prompts Apache to apply rules found in the .htaccess files in sub directories. Save and close.
3. Set up virtual host in ‘httpd-vhosts.conf’
Look for the file in ‘C:wampbinapacheApache2.2.11confextra’. Make a copy for backup and open it in notepad. The file should already have 2 dummy <VirtualHost> entries which you can safely remove. Now we will add the default virtual host and your own custom host:
{code}NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@localhost
DocumentRoot "c:wampwww"
ServerName localhost
ServerAlias localhost
ErrorLog "C:wamplogsapache_error.log"
CustomLog "C:wamplogsaccess.log" common
</VirtualHost>
{/code}
Note: replace the parameters below with your own project paths.
{code}<VirtualHost 127.0.0.1:80>
ServerAdmin admin@customurl.localhost
DocumentRoot "C:MyProjectPathpublic"
ServerName customurl.localhost
ServerAlias customurl.localhost
ErrorLog "C:MyProjectPathlogsapache_error.log"
CustomLog "C:MyProjectPathlogsaccess.log" common
</VirtualHost>
{/code}
Update: if you get a “You don’t have permission to access” error when accessing the page, include the following directive right before the </VirtualHost> tag:
{code}
<directory "C:MyProjectPathpublic">
allow from all
</directory>
{/code}
4. Check include paths for the Zend library
Your app probably runs alright now. If you are getting the file not found error when including the Zend library, make sure you have copied the Zend library into your /library folder and your index.php actually combines it with the PHP include path:
{code}
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path()
)));
{/code}
Edit: As Fernando pointed out, take note to use slashes “” instead of back slashes “/” on windows. Also, include your custom urls in your host file if they are not a subdomain of localhost:
5. Add Custom URLs in host file
Your host file is located at ‘C:WindowsSystem32driversetc’. Its a file without extension, but you can open it with notepad just the same. Add the following line to the end:
{code}127.0.0.1 [Custom URL here]{/code}
That’s it. If you are unsure of the steps or meet any other problems feel free to email me. Tested using WampServer 2.0i with Zend Framework 1.10.