Why Utilize Zend Server Community Edition

by Mike Willbanks on March 17th, 2009

At work, we were looking to see where we were going as far as future PHP versions and maintaining our production environments it was appealing to see the Zend Server offering. After receiving the email about the public beta, I decided to give this a test spin and the results of which was taken with high regard.

Overview

The Zend Server actually hooks into your existing package management system for Linux machines. This helps to manage the dependencies that are required for PHP as well as making it easy for the system administrators to administer upgrades. While the Zend Server has not been perfected it is certainly a step in the right direction.

This allows us to easily add new servers to our production environments with little to no effort since many of the dependencies are already managed for us. This alone saves the sysadmin staff quite a bit of effort. Further upgrading to the latest version is much more simple than recompiling. Not to mention the eye-candy of the Zend Server control panel.

Advantages

The advantages I’ve summed up quite a bit in the overview above, however, this did not include all of the above items.

Zend Control Panel

The Zend Control panel allows you to be able to enable and disable different server configurations easily including the management of extensions and directives. While this doesn’t seem like much at first, it really helps to be able to see what the different configurations are for each extension that is enabled or disabled between each server. Further, having all of the extensions and configuration values stored the way they were, we were able to add these to source control and have a deployment process to create our new servers at ease with a consistent configuration.

The log files that are being watched are configurable through an XML file located at gui/application/data/logfiles.xml. Here you can customize the logs that are being watched in each individual server. We added our applications files local to each machine to be able to see a quick glance if there is any problems on that particular machine.

Maintainability

The maintainability is in the hands of Zend to keep the system package system maintained and the sysadmin to continually update the machine. This helps seeing as many sysadmins would like to utilize the package management system and then end up utilizing versions of PHP that are no longer relevant.

Installations and upgrades are extensively easier by being able to issue your package managers install and update commands.

Extensions

The Zend Extensions that come along with the Zend Server Community Edition are the Zend Data Cache, Zend Debugger, Zend Guard Loader, Zend Java Bridge and the Zend Optimizer+. The main one of these that we were very pleased with was the Zend Data Cache which has APC compatibility functions minimizing the issues that we would have faced otherwise.

On another note, pecl and pear are available out of the box and worked great.

Disadvantages

While we certainly enjoyed getting the Zend Server installed there was still a few minor headaches along the way. While our requirements and server setups can sometimes be fairly unique it is always hard to predict everything.

Apache Configuration Files

The Zend Server control panel utilizes the apache web server through a few configuration files that get installed in the conf.d directory. I believe the hope was that we were including everything within that directory. This was the first and foremost issue since the Zend Server control panel does not really function without those configuration files loading. As well as PHP will not function from the Zend location unless added in by hand. So you will want to ensure that you are either including the contents of the apache conf.d directory or that you add the following lines into the httpd.conf of apache:

Include conf.d/zendserver_php.conf
Include conf.d/zendserver_gui.conf

Extensions

We had a few issues with getting a few extensions that we utilized installed properly. The following extensions caused us a few issues.

Memcache

This extension was not the latest from the PECL package. This caused us issues specifically around the addServer commands. We needed to manually install this package over the package that was installed by default by issuing the ‘pecl install memcache’ command.

Pspell

By default there is no package for Pspell in the Zend repository. In order to get Pspell support you will need to install the ‘php-source-zend-ce.noarch’ package. The following are the commands that we needed to run under YUM:

yum install php-source-zend-ce
yum install aspell aspell-devel aspell-en aspell-es
cd /usr/local/zend/share/php-source/ext/pspell/
phpize
./configure --with-pspell
make && make install

Zend Server Control Panel

While we enjoyed the Zend Server control panel, there was many instances where there was missing features or items that we would have liked to see:

User Management

Presently the Zend Server control panel has a master password and no actual user management areas. This would have been appreciated to give developers access to certain areas such as the log files, read only access to the php information and disallowing the developer to reboot the machine while we would give the sysadmins access to all of their relevant areas.

Multiple Servers

It would have been nice to specify a server cluster and have the Zend Server control panel be able to compare the information that is in each of those control panels as well as being able to manage the configuration of each server individually as well as globally.

Maintenance

The Zend Server is currently a release behind the latest PHP release (5.2.8 instead of 5.2.9). Further the Zend Server includes the Zend Framework by default which is already behind as of today (1.7.4 instead of 1.7.7).

Conclusion

While the Zend Server has certainly made a step in the right direction, I believe that it will take a little while to mature. I am looking forward to see where this is going to end up and appreciate the effort that Zend has started to go through to ensure the success of PHP; by even this simple step, this is allowing us to help promote and evangelize PHP to sysadmins that are in love with their package manager.

I also would like to note, that I am interested in how this works with the Zend Platform or how Zend Server Professional Edition works with the Zend Platform. If someone would like to answer that it would be great!

From PHP

10 Comments
  1. Jess Portnoy permalink

    Hello,

    Thanks for the review. Very thorough. It is always interesting to hear what customers think of the various features :)
    I was particularly happy to hear you are making use of PECL and the php-source package, I think its a wonderful feature not enough people are aware of.
    In regards to the PHP and ZF versions, we will release a version of ZendServer built against PHP 5.2.9 in the next few days, it will also include ZF 1.7.5, shortly afterwards, we plan to release an update to 1.7.7.

    Again, thanks and enjoy ZendServer!

    P.S
    I assume you know this but just in case, you are more than welcome to visit the forums at: http://forums.zend.com/

  2. I’ve been thinking about giving this a spin for some time now. It’s quite interesting, as we have deployment of several large applications in various markets. Does this offer any automated packaging / installation of applications, and is there any managed way to patch running applications? I’d really like to see some kind of history log of applied patches, as well as upgrade logs for deployed applications.

  3. Eirik –
    I don’t believe that there is anything that will be able to do exactly what you are talking about. There are certain areas in which the Zend Server will give you certain information, however, there is really nothing that is going to give you the information on certain deployments of your applications. You can always extend the Zend Server GUI, however, I am not too sure how it will react when there is an update to that RPM and if you might potentially lose your changes which might be better suited for a patch.

  4. Jess Portnoy permalink

    Comment to Eirik, based on Mike’s last comment:

    You may extend the ZendServer UI without fear so long as you don’t modify its existing files but only include them in yours.
    The RPM and DEB mechanisms will not override or destroy files not included with the original package, so any additional files you add will be safe.
    Keep in mind though that the UI files may change in any way from one version to the next and Zend does not commit to UI backwards compatibility, API wise or other.
    If you do end up making an interesting modification, you are more than welcome to send it over to us or post it in the forums :)

  5. Thanks for your review of Zend Server Mike – it seems like Zend has taken a step in the right direction with their Zend Server product, however I’ll give it more time to mature before I consider using it on our production servers (I’ll look after their releases and see how they follow up the product). I agree with you that the main thing they resolve now is a bundled environment for every platform with better control over configuration. I currently look at it as the “official” XA(M)PP :)

  6. Great info on Zend Server. I’ve been considering it for a while and your post was very helpful in my decision.

  7. yasir permalink

    Zend is always a overhead for high traffic volume site its not for the productions. But its excellent for the development to optimize the database queries and code errors.

  8. I use Zend Server CE on production and dev server. They still ships version 1.8 of Zend Framework with Zend Server. Latest version is 1.9. Look like we need to wait more for their own framework.

  9. is there a way to add extra modules, like one to create a virtual host etc. or can it be coded?

Trackbacks & Pingbacks

  1. Mike Willbanks’ Blog: Why Utilize Zend Server Community Edition : Dragonfly Networks

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS