PHP & Web Development :: Prebuilt PHP Server Solutions - 2/10/2007. Comparing and Discussing Zend Core 1.5, Zend Core 2.0, and the Zend Platform 2.2.3

BulletServers & PHP

If you're already running a web site with PHP, then either you or your hosting company has setup a server and configured it to be able to handle PHP pages. Most of us small timers use hosted web space at GoDaddy, Fortune City, or Yahoo, where their IT professionals have configured everything optimally for our benefit.

However, there may be a time when you have to host your own server or have the oppurtunity to cofigure it yourself. If you're like most of the population, you probably are running either IIS on windows or Apache on windows or your favorite flavor of *unix. My exprience combines both IIS and Apache, but I prefer running Apache at work, or other environments where I have complete control over the servers. Apache has more configuration options, and that the main reason for my preference. The standard IIS server setup works perfectly well, but lacks pizzaz, and integrates better with ASP (if that is your language of choice) than PHP. If you're going to set up a professional PHP web server, you're going to want to use Apache. Setting up Apache and configuring it securely with PHP, MYSQL, and other necessities isn't for the faint of heart, but there is enough information on their respective sites to help.

Fortunately for those who may be losing interest, configuring a server from scratch isn't what this article is about. I recently had the chance to evaluate three different related but different Zend products to use in an enterprise environment, to host a business critical application on Windows Server 2003. Zend, for those of you who don't know, claims to be "The PHP Company." They are probably right, and are actually the company that certified me as a Zend Certified PHP Engineer. The make some pretty serious applications that combine a web server with PHP, and a front end GUI to administer them. Best of all, they are free (a support contract does cost moneyt, but isn't required.)

Zend Core 1.5 and 2.0 Beta

Zend Core 2.0 Beta is their single server solution that combine Apache (you can also you your own already installed Apache) with PHP and a front end GUI. Zend Core even adds phpMyAdmin, MYSQL, Zend Accelerator, and the Zend Optimizer to the mix. Best of all, they are both free.


As you can imagine, installing all these in one fell swoop seems too good to be true. And it is, to a point. I had serveral problems while installing Zend Core, where I had to backup a few steps and redo some things. In the end, the bundled Apache version, PHP, and MYSQL were all working fine and being served quickly while being sped up by the Zend Optimizer and Accelerator. Unfortunately, phpMyAdmin wasn't having any of it. Almost every other request resulted in a Internal Server Error. (Creating a new database using phpMyAdmin ALWAYS resulted in a server error, though refreshing it would always then complete the request.) I read several threads on the official Zend forum relating to this same problem, with many users experiencing the same problem which remains unresolved. The possibility of users experiencing Internal Server errors while using a business critical application was far too great to continue, so I uninstalled this undeniably Beta version and proceeded with the lastest stable build, Zend Core 1.5.

Zend Core 1.5 doesn't include include MYSQL, phpMyAdmin, the Zend Optimizer or the Zend Accelerator, nor does it support the latest PHP 5.2 or Apache 2.2 branches. What's the point you say? Well it does include the stable branch of Apache 2.0, PHP 5.1, and a pleasing yet useful user interface. Actually called Zend Core for IBM on the Zend site, this package optionally installs an IBM database on your computer too - though I opted to install my own MYSQL database, the open source industry standard. I also downloaded the Zend Optimizer product individually from the site (also free) and installed it through its wizard with no trouble whatsoever. Then, I went to the phpMyAdmin site and downloaded it and installed it easily (though I've installed phpMyAdmin quite a few times before.) After these extra steps, I pretty much had everything the Zend Core 2.0 Beta had, but without the potential headaches of a Beta application.

The real power of the zend core is that it is a central place that monitors the performance of PHP and Apache and can make changes to the PHP configuration file and load/unload using its user interface. It satisfies those of us who want confirmation everything is working through status messages and bar charts. It also has the ability to run performance benchmark tests and hook into Zend's development IDE, Zend Studio. My own benchmark suite showed that this configuration with the Zend Optimizer ran a little faster than a manual setup of just Apache and PHP installed using FastCGI, but not as fast the Zend Core 2.0 Beta, with PHP also configured in Apache using FastCGI. FastCGI is an improvement on the older CGI (common gateway interface server techonology). The other option for manually installing PHP is as a Module in Apache, but this is not recommended by most PHP professionals and may perform slower than FastCGI anyways. Zend Core 1.5 doesn't even offer the option of installing into Apache as a module, so that should pretty much sum up their stance on the issue.

Zend Platform 2.2.3

Zend Platform, is Zend's take on the combined server solution, but focused for a larger enterprise production environment. It even supports controling multiple servers through one interface. The pricing model is not readily available, and it looks as though you have to call their sales line to discuss pricing. Nevertheless, they do offer a trial version which works even though it tells you that your license is expired. You are required to have a version of Zend Core installed before installing Zend Platform.

The interface of the product is pretty much the same, though definetly focused on managing more than one server. Problem is, serving PHP pages didn't work for me. After restarting the server I received a fatal error relating to fastCGI, and could not get rid of this error upon future restarts. Pages showed up, but the load times were incredibly slow, and parts of the console repeated the license expired mesage and could not even be accessed, and the afrorementioned internal server errors linked that I experienced with Zend Core 2.0 also appeared. I then re-installed the entire package on another machine (this time, Windows XP SP2) and experienced the same trouble.

Conclusions

At some point in the near future, I'll test the Zend Platform again, and I'll dilligently check for updates to the problem found with Zend Core 2.0 Beta. Until then, It's Zend Core 1.5 all the way - bringing a little civility to that php.ini file.

Update - 2/15/07

After installing Zend Core 2.0 Beta again, I was able to avoid those ugly internal server error messages mentioned above, and was pleased with the end result enough to contemplate using Core 2.0 (still beta) for a production application. My second try with Zend Platform (this time the just released 3.0 version) was not as lucky, and I had the same troubles as the earlier installation. I will forge ahead with Zend Core 2.0 Beta and hopefully the stable production build will be released before my application's launch date.

Setting Up PHP, Apache, and MYSQL manually
Apache.org - Download the latest stable Apache build and install it before anything else. Apache's Installation instructions (online documentation section) cover a wide variety of operating systems and potential configurations
PHP.net - Download the latest stable PHP build and install it. Use PHP's online documentation for Apache installation instructions.
MYSQL.org - Downloading and installing this open sourced database is easy. Actually using it and configuring your tables is a little more complicated. I recommend installing phpMyAdmin to handle the database setup using a friendly GUI style interface.

Zend Core
Configuring the php.ini file using Zend Core 1.5's user interface.

Zend Core Dashboard
The main dashboard of Zend Core 1.5

Getting Zend Core
Zend Core is free and available for download from Zend.com.
phpMyAdmin
If you're using mysql, you need this front end web interface to manage your database. phpMydmin.net