Being able to run a local development and testing environment is critical in RocketTheme's day-to-day operations. Our team is spread out across the world, and each member has their own development environment that enables them to create and test their creations as they go, without having to commit every minor change to a central server.
Because the vast majority of our products rely on active installations of database-driven platforms like Joomla, WordPress, Magento, and phpBB, we needed to find a solution that offered us the ability to test, without having to dedicate an entire system to doing so.
Enter MAMP, a single application for OS X (and soon Windows) that enables us to quickly and easily set up and manage testing servers on the fly. It works natively in OS X, which makes it easy to access and use. There are no virtual machines or extensive set up required.
MAMP comes with PHP 5.2 through 5.5, and gives you the option to download and install specific PHP versions.
MAMP is essentially a software stack of several different utilities, all managed by a single UI application. These include:
MAMP Pro, which is commonly used by members of our team, adds a lot of extra benefits including:
MAMP Pro is especially useful because of its ability to allow us to test templates and extensions in a variety of server environments very quickly. We can run different PHP versions and multiple virtual servers at the same time, all with minimal required set-up time.
In OS X (the OS most commonly used by our team members), Apache and PHP are pre-installed, but there are some drawbacks. These aren't always kept updated by Apple, and you need to install MySQL yourself.
In version 3.0, MAMP introduced a new UI and a number of extras that extend its original functionality significantly. It provides easy access to logs, configuration settings, and numerous other essential tools. The UI is the main reason we use MAMP. Even though it is not the fastest, or most robust, it is definitely the simplest and also the most commonly used. If we run into any issues, there is a good chance we will be able to find a solution after a brief Google search.
Its integration of Python and Perl make it easier for developers to work on projects that utilize these code bases without having to take any extra steps.
Any time you run a server from the same system you use in production, a certain level of risk is involved. Unless you have constant backups running, a single program could wipe out both your work and your testing environment where the latest committed version of this work would be kept. This is not an issue exclusive to MAMP, but an easy situation for anyone to get into if they don't take the proper precautions.
This is one of the problems inherent with running a server on a system used for other tasks, especially in a development environment where data is constantly being shifted around and updated.
MAMP and MAMP Pro are primarily built to serve as small development environments, and aren’t suitable as live production servers. While this can theoretically work, it’s not a function presently supported or recommended.
MAMP isn't the only option available, either. There are plenty of alternatives that work with a number of different operating environments that have very similar feature sets. A lot of advanced users will prefer to go the route of managing these components themselves, though for the interest of this article, we'll throw out a few suggestions that can work just fine for anyone just getting started in the world of local server environments.
WampServer is one of the first that comes to mind. Like MAMP, it allows the user to control and manage Apache, MySQL, and PHP from a single application. WAMP is designed for the Windows operating environment, specifically.
AMPPS is another useful alternative. It includes Apache, Mysql, PHP, Perl, Python, and Softaculous auto-installer that can be used on Desktops.
Bitnami's MAMP Stack This stack has a lot in common with MAMP and MAMP Pro, and has a healthy set of bundled utilities. Additionally, Bitnami has an entire library of other options available that can be run in Linux, Windows, and OS X.
XAMPP XAMPP is a very popular cross-platform development environment that is made available completely free of charge.