
Zend Core 2.0 (The Future of PHP part II)
On Tuesday Zend launched a beta of Zend Core 2.0, a brand new and extremely important addition to the Zend Core line up. Unlike its predecessors, Zend Core 2.0 is not designed for a specific database or hardware platform, it is a stable, certified, and (optionally) supported PHP Application Server bundle provided by Zend. It looks like they won’t be releasing a Zend Core for Windows or Zend Core for MySQL but instead will deliver a single, cross-platform product that includes the improvements from the collaboration with Microsoft. In addition to that, they are including a whole lot more…
Things you were already getting:
Certified Release (open source and proprietary components have been QA’d together).
User-friendly Installer.
GUI Console (includes interfaces for monitoring, configuring, benchmarking the server).
Bundled proprietary database drivers (IBM and Oracle).
One free web based support ticket.
The option for standard support (web based tickets, hotfixes and knowledgebase) or premium phone support.
New things:
Bundled MySQL 5.0 Server and Drivers.
It is bundled in relatively loose way; the server is automatically downloaded by the Zend installer, it then launches MySQL’s standard installer (of course this is an optional component).Bundled Apache 2.2
It would be perfect if they offered basic support for Apache with their Zend Network package - updates, trouble shooting, simple web based config. This would greatly simplyfy the process of keeping your server secure and up to date.Improved performance and reliability on windows. 200%-300% boost plus support for IIS and Vista.
PHPMyAdmin.
Becomes part of the Zend Admin GUI.Zend Enabler (FastCGI).
A proprietary FastCGI module for Apache on windows. This one deserves special mention. I have spent several days trying to setup a stable, production quality PHP installation on Windows for a client and it is a very difficult task. Running PHP under a threaded web server (IIS using ISAPI or Apache2 using the PHP module) is strongly discouraged by the PHP group. FastCGI is recommended instead. mod_fcgid provides FastCGI support for Apache2 and there is even a windows binary available. However I have had questionable results using this module with PHP 5.2 (I was able to reproducibly crash the server) and the author offers no support or certification of testing. I had high hopes of Apache releasing their own FastCGI module (which would result in a greater amount of QA on windows) but that still hasn’t happened yet. Microsoft is developing their own FastCGI module for IIS in collaboration with Zend.Zend AcceleratorRemoved from final release!
A PHP bytecode caching and acceleration component (200%-300% performance boost). A opcode cache is way overdue for PHP; I was glad when I heard that APC would be included by default in PHP 6. I think that Zend should have open-sourced their cache from long ago for this very reason. They risk having their implementation sidelined by an good open source one. Well PHP6 might not be out for a while so in the meantime this is a very welcomed addition. I was also looking for an opcode cache to use with PHP on windows. There is an auto-compiled version of APC for windows available but I have seen some issues and I wasn’t able to get any response from the PECL mailing list about its production readiness .Zend Optimizer
Wider distribution of Zend Optimizer will provide more opportunities for PHP developers to sell compiled PHP applications without source code using the licensing scheme of their choosing. It will also provide Zend the opportunity to sell more copies of Zend Guard.Zend Debugger
This server-side debugging component will complement the new Eclipse based IDE/Debugger. It can also be used by Zend’s proprietary Studio product. I am curious how they plan to modify their studio offering over time to target it at a more enterprise-ish crowd.Zend Framework
Widespread distribution of the Zend Framework is good news for everybody. Quality components and patterns that will influence the creation of quality code. This also makes it easier for developers to write application that depend on the framework.
Things you have to pay for (Zend Network/Support)
Incremental hot-fix updates (you don’t have to do a complete re-install)
Web based support tickets
Access to knowledgebase and bug-tracking system
Things you will (probably) get in the future
The new Eclipse based IDE/Debugger will probably be bundled.
The enhanced MySQL driver
Baseless conjecture that probably won’t happen
It would be interesting to see Zend Core supporting multiple languages using the virtual machine approach that Microsoft’s CLR and Sun’s JVM each use (see IronPython, JRuby, Jython and Groovy). It would be really interesting if they used Parrot for the VM (of course Parrot/Perl 6 would have finally to be released for that to happen).
Big picture
With the upcoming releases of Zend Core 2.0 and Zend Platform 3.0, Zend has provided a smooth path for choosing the package that fits you best and easily transitioning between them. Functionality like the Accelerator and the FastCGI component have moved downstream into the free Zend Core offering, while Platform 3.0 has taken on more enterprise features like Active Monitoring, Java integration, High Availability, Job Queues and SNMP Traps. We now have the following options.
PHP from php.net - targeted at Unix/Linux/BSD distributions and people who like/want/need to roll-their-own (e.g. mass hosting companies).
Zend Core - targeted at developers, production windows users, and other production users who have their own servers.
Zend Core + Zend Network - targeted at small and medium sized businesses that want updates and support.
Zend Platform - targeted at enterprises and business whose web presence is mission-critical.
It will be very interesting to see how Zend promotes and fine tunes each of these products over the next few years to respond to the demand of the market. So far their basic strategy looks pretty solid to me.
Ok I’ve babbled on for long enough. I really need to learn to write shorter blog posts.
Postscript
For those who want to try it out, here are a few installation tips
The installer will download and launch the MySQL installer but it doesn’t install it anywhere special or do anything interesting, so if you already have a MySQL database running, don’t bother selecting that option.
If you choose to install the bundled Apache 2.2, it will be installed in the Zend folder and configured to run on the port of your choosing, however if you already had another apache 2 installation (albeit in a different directory) and it is installed as a service, the Zend installer (at least the beta version) uninstalls the service entry for your existing apache installation. You can remedy this by going to you original apache install location and re-installing the service with a specific name:. This has been fixed in the final version.
cd C:\Program Files\Apache Software Foundation\Apache2.2\bin
httpd.exe -k install -n "Apache2Original"
Apparently certain desktop firewalls and antivirus programs conflict with Apache2 on windows causing it to eat up all your CPU, continuously fill your error log with messages and just generally not work. This can be remedied by adding “Win32DisableAcceptEx” to your httpd.conf file. I had run into this problem before with my antivirus software so I knew exactly how to fix it.
Submitted by Marc on January 19, 2007 - 6:05pm.