Getting Zend Framework working on Media Temple’s Grid Server

I’ve just been through setting up Zend Framework on my Grid Server from Media Temple for the first time. There’s a few gotchas in there so i thought i’d share my experiences so hopefully that will save headaches for others in the future.

First things first, you will need to grab an up-to-date version of Zend Framework for your account. I plan to use Zend for a number of sites so i’ll create a folder in my home directory and call it Zend. Since i might want to switch between different versions of Zend i’m going to check out the folder into its tagged directory so from within the Zend folder i’ll run this command:

[shell]svn export[/shell]

You can then reference Zend for each site by creating a symbolic link, e.g. from within /domains/ run

[shell]ln -s ~/Zend/release-1.10.4/library/Zend[/shell]

Now then, at this stage this is all fairly obvious and will match your Zend setup on most server configurations. What makes Grid Server a special case is the fact that it still runs in PHP 4 by default. If you were to run

[shell]php –version[/shell]

from within the shell you will likely see PHP running 4.4.8 for CLI. This is lame for a number of reasons, specifically though for Zend Framework. Zend uses PHP5 specific syntax so when you first setup Zend_Tool you will run into your first major issue. If you have followed the instructions of the Zend site you will likely have created an alias so that “zf” points to your file*, something like this:

[shell]alias zf=’~/Zend/release-1.10.4/bin/'[/shell]

However, if you run that command you will get

[php]Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}'[/php]

which is basically the “you’re using PHP4” error. Annoying, but actually simple to fix. Open up in vi and you’ll see a block of code that looks like this:

if test "@php_bin@" != ‘@’php_bin’@’; then
elif command -v php 1>/dev/null 2>/dev/null; then
PHP_BIN=`command -v php`

Basically this block of code uses a number of methods to locate where PHP is installed. We don’t need it to do this hard work though, we know where it is and we need to define which version we want it to use. So, simply at the end of this block or in place of the entire block we can add this line:


Simple as that, Zend_Tool will now use the PHP5 executable for all the command line goodness. From here on in, its up to you. Happy coding.

* There’s no point adding all these handy little aliases if you’re going to lose them each time your shell session ends. I would usually add my aliases to the .bashrc file but since this file isnt used on Grid Server then you instead need to place them in your .bash_profile file located in your home directory. For example:

alias ll=’ls -la’
alias zf=’~/Zend/release-1.10.4/bin/’