Review: WAMP stacks for Web developers

All-in-one Apache-MySQL-PHP server packages for Windows vary widely in features, flexibility, and ease

In addition to the usual *AMP stack components -- Apache, PHP, and MySQL -- WampServer includes only maintenance (phpMyAdmin, SQLBuddy) and debugging (XDebug) functions. Perl isn't included. In fact, the WampServer curators don't provide any other components that can be added to the stack. They allow you to add on earlier versions of various stack elements, though. You can, for instance, install older versions back to PHP 4.1.2, or earlier versions of Apache or MySQL. (None of this precludes manually grafting something into the stack, of course.)

Once installed and run, WampServer works in much the same way as XAMPP. It places an icon into the system tray, from which you can start or stop the various services in the stack, jump quickly to key directories (such as the directory that holds the root of the Web server), or open configuration files or logs.

The tray controller also provides quick access to service-specific settings that would otherwise require a lot of poking around under the hood. With Apache, for instance, there's a selectable list of which Apache modules to load and an editable list of alias directories. Changes made to these lists are reflected in httpd.conf, but if you edit httpd.conf directly to make changes, those changes don't show up in the tray controller's list until you restart the whole of WampServer. This doesn't make editing configurations through the tray controller any less handy, but you need to be aware of how changes are kept in synchrony between the tray app and the stack's actual configuration. In short, make configuration changes either in WampServer or in the stack's config files, but not in both at once.

One of the handier options in the tray icon, Put Online/Offline, lets you quickly disable access to the Web stack (the "offline" mode) from anything except the local host. To that end, as a security measure, the admin tools (such as phpMyAdmin) are only available locally by default. On the other hand, the default MySQL password is blank -- a really bad idea.

While most stacks include phpMyAdmin for managing MySQL, WampServer also packages SQL Buddy, a minimal but still immensely functional administrative front end for MySQL. (Be warned that SQL Buddy has some cross-site scripting vulnerabilities in the 1.3.3 edition.) For PHP debugging, there's XDebug, WebGrind, and XDC; note that WebGrind is configured to run only locally for security's sake.

The documentation for WampServer is minimal at best. There's no installation walkthrough, save for what you get when you run the installer itself. There isn't even a good explanation of the various functions available through the tray control app. I had to figure out on my own what the "online/offline" function was for. I also ran into port-conflict issues, but there is at least a test function within the tray app to let you know if port 80 is already in use. It's not nearly as detailed as the port-assignment tool in XAMPP, but it does at least help you figure out what might be blocking vital ports.

Recommended for: Those doing PHP programming, especially if you need PHP debugging tools as part of the stack.

WampServer's control panel provides quick links to configuring many of the components in the stack.

XAMPP 1.7.7 (1.8 beta) XAMPP, from Apache Friends, is one of the best-known and consistently maintained development stacks out there, available not only for Windows but for Mac OS X, Linux, and Solaris. It includes Apache, MySQL, PHP, Perl, and a few other bits of plumbing such as an FTP server and a mail agent, should you need them.

XAMPP comes in two basic incarnations: with and without an installer. The "installed" version sets up XAMPP as if it were an application, with the program icon launching XAMPP's system-tray control panel app. The installer-free version is just an archive that you can unpack anywhere, but which needs to be configured manually by way of a batch file. You can actually skip the configuration step if you've unpacked the whole of XAMPP into the root directory of a device (for example, a USB flash drive).

Certain components of XAMPP -- Apache, MySQL, and the FileZilla FTP server -- can be run either as a standard Windows application in the background or as a system service. The former is useful if you want XAMPP to run with a minimal system footprint and if you hate having unneeded system services hanging around in the background even when they're not being used. XAMPP's version of Apache also comes preconfigured with SSL, which is handy if you want to test apps that need it.

XAMPP's system-tray launcher lets you control the activation of each major component of the stack, and install or remove Windows-service versions of each stack component where available. It also provides you with quick access to the management consoles (Web-based or otherwise) for each component, and a minimal event log for the whole stack.

One problem I immediately ran into: When you launch XAMPP, you aren't warned if any of the running services conflict with existing port assignments. My copy of Skype used port 80, which resulted in Apache refusing to start -- I had to debug it manually.

To fix this and many other problems, a new iteration of XAMPP's launcher is in the works. It's still a beta product, but a copy of the beta edition is supplied with the current version of XAMPP, so you can use it interchangeably with the original launcher. The beta warns you about port conflicts and provides you with quick links to the log files for each component. It can also launch an instance of the Netstat tool to see which programs are using which network ports on the local machine.

XAMPP's second main drawback is that it doesn't have a culture of add-ons to expand its functionality. What you see is all you get. What few add-ons were created for it (Tomcat, Perl) have since been rolled into the main package. Those interested in any languages not supported directly in XAMPP (Ruby, for instance) are probably better off with another stack that has a richer collection of products. There's also no direct integration with any development environments, so you're entirely responsible for your own code maintenance.

For those of you who use the PortableApps collection of programs, there's a version of XAMPP packaged for PortableApps. It omits some of the packages found in the original distribution for the sake of a smaller installation, but it's got all the most crucial pieces.

Recommended for: Beginners and those who want a "server on a stick" setup.

The new beta version of the XAMPP control panel includes port checking and a more detailed interface than its predecessor.

This article, "Review: WAMP stacks for Web developers," originally appeared at Follow the latest news in programming at For the latest business technology news, follow on Twitter.

Read more about application development in InfoWorld's Application Development Channel.

This story, "Review: WAMP stacks for Web developers" was originally published by InfoWorld.

| 1 2 Page 6
ITWorld DealPost: The best in tech deals and discounts.
Shop Tech Products at Amazon