Examining Zend Server CE On The Mac

Out Of Date Warning

Languages change. Perspectives are different. Ideas move on. This article was published on February 19, 2009 which is more than two years ago. It may be out of date. You should verify that technical information in this article is still current before relying upon it for your own purposes.

Zend yesterday released a beta of it’s release candidate for both Zend Server and Zend Server CE (Community Edition). Zend Server is not available for the Mac, but Zend Server CE is, so I decided to give it a try.

There are many good things in this product. Among them, is the ability to easily activate and deactivate most of the plugins and extensions that come bundled with PHP by default. I was able to turn imagick on with no trouble – something I’d been unable to previously compile on the Mac myself (problems with libraries and a lack of time). Most of the extensions are included by default, and it’s easy to configure the directives that PHP has for extensions and core alike. Plus, restarting PHP is as easy as a click of a button.

Unfortunately, the problem also contains many what I would call “bugs” or usability enhancements that are simply not there. For example, upon installing the software, I had to open a folder in my Applications directory – very un-Mac-like. This is of course no different from MAMP or XAMPP, but still, very un-Mac-like.

In order to start the server, I double-clicked on an admin app that then opened the admin screens in my browser. I was able to connect then with a connection tool provided by Zend, but this process took almost a half-hour, far longer than it should have. The tool has no logging that I could find, and seemed to have trouble making connections to localhost or telling me why it was unable to do so. It’s certainly not intuitive. While Zend provides instructions for starting the Zend application on startup, this would inevitably open a browser window, making the footprint fairly high as well (unlike MAMP or XAMPP, which can be hidden from displaying anything).

One benefit is that when setting directives it does check for valid values; however, from a usability perspective on failure rather than directing you what the values should be, it displays the regular expression it’s checking against. While I imagine that developers will use this tool, making the regular expression readable, I shouldn’t have to interpret the regex in order to understand the values required. This should be easier. The rest of the error messages are similarly unintuitive, and this is a big concern.

Finally, it does not include a copy of MySQL. As an “integrated solution” this leaves a big hole in my XA_P stack. The server has support for all manner of database applications, and perhaps the developers believed that letting the user provide their own database connection was best, but to me, this is a major missing component.

In all, I won’t be abandoning macports or a good install of MAMP/XAMPP for this product any time soon. As a first version, it’s certainly got some promise, but as a finished product I would not use this version. Three or four versions from now I think that this product will have merit, but only if Zend puts some more effort into refining the user experience and remembering that simply because the end user is intelligent does not mean the end user has the desire or time to investigate the quirks.

This is for Zend Server CE on the Mac only; Your Mileage May Vary.

Write better object oriented PHP today.

Object oriented programming always leaves you with a headache. What if you could master it instead?

Get the book now! »

Jeff wrote at 2/19/2009 11:11 am:

I pulled it down and after playing w/ configuring it to get on my port 80 all was well. I actually am really enjoying it, that said, I didn’t like MAMP at all. I prefer not to have MySQL part of it – so that is not a qualm for me at all… but I love how simple it is to deal w/ extensions and how we got the nice new versions of php / apache.

Zend Server verlässt beta Stadium | some_code_blog wrote at 2/19/2009 11:13 am:

[...] war. Ich bleibe noch einige Screenshot schuldig, für die ich gerade keine Zeit habe (Sorry). Ich habe einige Blogs gelesen, die sich darüber beschweren, dass Zend keine MySQL Datenbank zur Distribution beigefügt hat. Ich [...]

Brandon Savage (@brandonsavage) wrote at 2/19/2009 11:15 am:

Hey Jeff, thanks for your comment. Like I said, your mileage may vary; I’m glad that you’re really enjoying it. I think that the product will only continue to get better, and I look forward to trying the next iteration.

You didn’t post a website but if you’ve got a blog and you write up a review, I’ll link to it if you send it to me (or post it as a comment). :-)

Shahar Evron (@shevron) wrote at 2/19/2009 11:49 am:

Hi Brandon,

I am the Product Manager for Zend Server (well, one of a team), and I’d like to start by saying your review is very helpful. We’ve had numerous discussions on some of the points you raise, and I must say this sort of feedback will seriously help improve the product in the future to make it more Mac friendly (which we definitely intend to do).

I’m a bit curious about setting up things taking half an hour – this is something I did not expect. If you could elaborate that would be great. If you don’t want to do it here, feel free to drop me a line to [my first name] dot e at zend dot com.

Examining Zend Server CE On The Mac | PHP-Blog.com wrote at 2/19/2009 3:36 pm:

[...] original post here: Examining Zend Server CE On The Mac Related ArticlesBookmarksTags Speed Optimization As with many scripting languages, PHP [...]

Brandon Savage (@brandonsavage) wrote at 2/19/2009 4:44 pm:

Thanks, Shahar for the comments. I’ve followed up with you offline, and I do appreciate your willingness to engage the community’s thought process in developing this and other applications. We do appreciate it.

Bill Hernandez wrote at 7/27/2009 11:08 am:

# Updated by : Bill Hernandez – [2009.07.27](9:45 AM)

I’ve been using MacPorts for a long time, but recently (couple of months ago) I ran into some problems upgrading mySQL, and even though their support is usually very fast, the maintainer was on vacation for a few days and I found myself needing an alternative. Usually there are plenty of people that are willing to help, plus I have installed the components I use many times, but the problem I ran into was not a common install/setup problem. The upgrade problem has since been fixed, but I decided to try some other alternatives anyway.

I cannot complain about the whole MacPorts experience, It has given me great flexibility, but it definitely requires quite a bit more effort than double clicking on a DMG and dragging to the Apps folder, but it is flexible and powerful.

Anyway I installed XAMPP about a month ago but over the period of a few days as I began porting my virtual hosts, httpd.conf, php.ini settings etc, things would get screwed up, probably mostly issues with permissions and in no time I was trashing and re-installing again.

After about the third time I wrote a script that read in all the permissions on a freshly installed package, and as time went by I could re-run it and compare with the original clean install permissions data, and make adjustments. The script provided a simple way to view, compare, and restore any and all permissions very easily, and it helped me considerably.

I never spent enough time figuring out what I was screwing up that created all the problems, but I do not blame them on XAMPP.

I think XAMPP is probably a fine, fine product that has a huge effort behind it, some very talented and dedicated people, and the problems I experienced were caused by my own buffoonery (trying to change too many things to quickly), I DO NOT blame the problems on XAMPP, I intend to try it again when I have more time.

Along with having to come up with something simpler, I had made up my mind to switch from my own framework to Zend Framework, and Zend Server CE was designed to work with it so I decided to try it.

I am retired so everything that I do is for my own use, mostly to keep my mind active, nevertheless I’ve been programming the Mac pretty much 10-14 hours a day since 1987, and this stuff is important to me. I try getting away from programming and do some other things like fly my airplane, but I never manage to stay away…

I have been running ZEND Server CE for a couple of weeks now, I am proceeding more slowly on adding things from my previous environment, and so far everything is going very well. I have also begun using phpMyAdmin which is very nicely integrated with Zend Server CE, where previously I had been using mySQL Navicat and PgSQL Navicat. I really like phpMySQL very much.

One of the things I have always had problems with is transferring data from MySQL PgSQL using the two current Navicats. I have struggled with different delimiters, and schemes and one Navicat will fail importing from the other Navicat’s export. I’ve pretty much exhausted myself trying to get that to work. I think they have a new version of Navicat that handles both MySQL and PgSQL from one application instead of using two separate Navicat Applications. Maybe that will solve the problem. But anyway for now I am happy to be learning phpMyAdmin.

The only problem I’ve run into with phpMyAdmin so far is that when I create a table using the SQL dialog, it creates the table and the Triggers, but when I click on the [Create PHP Code] link nothing happens, the code must be going into the great void. It would be nice to get that to work. I have searched the entire drive for anything that was saved within the last five minutes, immediately after clicking on [Create PHP Code] to see if maybe it was being written to some obscure directory, but didn’t have nay luck. I am using Safari, maybe I will try Firefox and see it that helps.

I am running OS X on an iMac24 for development, and OS X Server on another iMac24.

Sorry I made this so lengthy…

Best Regards,

Bill Hernandez
Plano, Texas

Bill Hernandez wrote at 7/27/2009 11:13 am:

One of the things I have always had problems with is transferring data from MySQL PgSQL using the two current Navicats.

Should have been :

One of the things I have always had problems with is transferring data from MySQL <-> PgSQL using the two current Navicats.