Review: WAMP stacks for Web developers
All-in-one Apache-MySQL-PHP server packages for Windows vary widely in features, flexibility, and ease
There are two places where I do software development for the Web. The first is "out there," on the Web server for which I pay my monthly hosting fee. The second is "in here," right on my own desktop, where I have a stand-alone Web development stack running side by side with everything else.
A stand-alone Web stack is a self-contained way to run the needed components for a Web application without requiring a separate machine or Web account, both of which typically mean extra dollars. Developers can prototype a project locally on such a stack, then deploy the results to a live remote server -- or even convert the local stack into a live server, if they're so inclined and the stack is designed for production use. If you're a novice Web programmer, a local stack is a handy way to learn the ins and outs of programming for the Web in a controlled environment.
Linux users have the advantage of the Web stack being a native part of their environment, since Linux distributions aren't as rigidly partitioned into "desktop" and "server" editions as Windows is -- except in the sense of which components are installed by default. Windows users, though, have to install the entire stack from scratch. The good news is that all the pieces they'd need -- Apache, MySQL, PHP, and so on -- are available in Windows editions.
In this article I review five environments -- AMPPS, BitNami WAMPStack, Microsoft Web Platform Installer, XAMPP, and WampServer -- you can use to set up a local Web development server on a Windows box. These stacks contain all of the above-mentioned components (with IIS and SQL Server Express taking the place of Apache and MySQL in Microsoft's offering) installed from a single executable or .MSI package, so each piece doesn't need to be downloaded, installed, and configured separately. These Web server stacks also contain management tools for each separate component and for the stack as a whole, so you're not stuck with the extra burden of having to manage the whole thing by hand. And they're all free for the downloading.
One thing that's clear from having looked at these stacks: They're definitely not created equal. They may be built from the same components (they would scarcely be useful if they weren't!), but how those components are managed and deployed makes a big difference. Stacks with automatic customization (AMPPS, Web Platform Installer) are far handier, especially when you want to devote more of your attention to working with the stack than actually setting it up.
Second, don't assume these stacks will be production-ready. Some ship in a locked-down state and will only serve connections to the local host, but there's no guarantee the stack as created has been put together to serve live traffic. Other stacks ship with blank MySQL passwords or other major security omissions that need to be addressed, so they're clearly not intended for production use. Develop locally; deploy remotely.
Finally, the differences in deployment styles between each of these stacks means there's a stack for just about every need, application type, or work habit. PHP-heads can run WampServer for the sake of the integrated debugging tools. Microsofties have Web Platform Installer and WebMatrix. The choices are yours.