MAMP without MAMP

February 24, 2012 — 35 Comments

For a couple of years now, I’ve used, and advocated using, the MAMP application as the easiest way to run a Web server on a Mac. Currently, the best argument for MAMP is that it doesn’t affect the built-in Apache. This also means that changes to the built-in Apache (via Mac OS X software updates) don’t impact your setup, as can happen if you modify and configure how the built-in Apache runs. Although MAMP itself is free, in time I went ahead and purchased MAMP Pro. MAMP Pro is just a better interface to the MAMP stack, in particular providing an easy way to establish virtual hosts, which I use extensively (i.e., I create a new virtual host for each client or personal project). But I think it’s now time to start doing MAMP—Mac OS X, Apache, MySQL, and PHP—without MAMP, the application. Let’s look at the history and the options here to understand why it may be time for a switch.

I’ve been using Apple computers for thirty years now: I first learned how to program with Basic on an Apple IIe. My first Mac computer was purchased in 1994, a Color Classic. This was a few years before I begin my life as a programmer and Web developer. As a Mac user, and as a Web developer, I was so thrilled when Apple made the big switch in 2001 to Mac OS X, which is by far the most user-friendly version of Unix (Mac OS X uses a version of FreeBSD as its core). With Mac OS X, the same software running on Web servers also runs equally well on my home computer (and many of my clients run Mac servers, too). The specific software is the *AMP stack: Apache, MySQL, and PHP.

For the first several years, I always used the built-in Apache that came with the operating system, and then installed MySQL and PHP separately (Marc at Entropy.ch provided the best PHP installer). Then, a couple of years ago, Mac OS X began using a 64-bit version of Apache by default. This requires a 64-bit version of PHP, which requires 64-bit versions of all the associated libraries. Which wasn’t happening. Many PHP developers were stymied by Apple’s switch to a 64-bit Apache. One solution was to have the Mac run the 32-bit version of Apache instead of the 64-bit, which required some command-line tinkering. Fortunately, there was a better alternative: MAMP, which is also free.

The MAMP application installs Apache, MySQL, PHP, phpMyAdmin, and a couple of other niceties, separate from your built-in software. MAMP then slaps on a simple interface for starting and stopping them all, and adds a wee bit of possible configuration. Because of the issues with the built-in 64-bit Apache, I began using MAMP, and even started recommending it in my books. In time, I went ahead and purchased MAMP Pro, which provides an even better interface for controlling the same MAMP stack of applications. With MAMP Pro, you can easily create virtual hosts, set up an outgoing mail server, apply DNS, and more. Mostly, I purchased MAMP Pro because I had been using MAMP long enough that I thought it time I support the application. And that’s when I started second-guessing MAMP…

First, the paid version of MAMP comes with no more documentation or support than the free version, which is pretty much just wrong. For example, I had to enter my administrative password every time I started or stopped MAMP, which shouldn’t be necessary (and is annoying). I searched online, tried a couple of things: to no avail. MAMP Pro now allegedly comes with email support but no support was forthcoming when I first stated with MAMP Pro. In short, I realized that MAMP Pro isn’t giving you much for the $60 (USD) it costs, but I had already purchased MAMP Pro and had been using it for years, so I could live with that decision.

Another problem with MAMP is that it’s a bit of a pain to upgrade and they do released updates frequently enough to make it a factor. You have to copy out the database directory, install the new version, and then move the database directory back. I would think MAMP could come up with a better system, because the risk of wiping out all of your databases (and sites, if you place those within the MAMP directory) is far too high.

The next hiccup with MAMP is that they recently released version 2, which was a paid upgrade. MAMP 2 provides a couple of new features, but not a lot, and costs half the price of the original to upgrade. That may not be a lot compared to, say, upgrading an Adobe product, but remember that MAMP is just a package and an interface to a slew of free software. I’ve been holding off on upgrading, and then…

The final straw was that I needed to use a version of PHP with a couple of extra modules enabled. When I went searching online, I came across a number of excellent ways to install PHP on my Mac that don’t cost any money. Those are…

  • AMPPS is a stack of Apache, MySQL, PHP, Perl, and Python. It runs on both Windows and Mac OS X, and is free. It’s not foolproof to install but documentation and support are available. The AMPPS control panel makes it very easy to configure Apache, PHP, and MySQL (e.g., change the version of PHP or what modules are loaded). And AMPPS comes with the ability to install many different software packages, such as WordPress.
  • Brian Gilbert posted an article at RealityLoop that explains how to install MySQL and PHP (PHP built from the source code) In a second article, Gilbert explains how to setup Gmail as an SMTP server.
  • Finally, what I’ll personally start using the most is a new PHP package for Macs, based upon the classic entropy.ch one. It worked flawlessly for me, and is well designed. It uses the built-in Apache, and doesn’t include MySQL, however, so you’ll have to install that separately (which is easily done). But this package is easier to install than building PHP from source. (For more information on this package, see this blog post.)

I’ll also add that if you, like me, really make use of virtual hosts, but don’t want the hassle of setting them up manually, you can consider VirtualHostX. It costs $30 (USD), but that’s still half the price of MAMP Pro. Personally, I’m just inclined to create virtual hosts manually anymore.

So there you have a quick long discussion of using Apache, MySQL, and PHP on your Mac. Mostly I feel that MAMP created an excellent, free product, that was a major asset to the Mac community for years. But the commercial product lacked many attributes that commercial applications should have. It’s been years now, and MAMP has yet to make the MAMP Pro application as professional as it should be. And so, it’s time for a switch, I think.

If any other Mac Web developers out there have any thoughts on the subject, I’d love to hear them.

If you enjoyed this post, then please consider following me using your favorite social media, the RSS feed, and/or by subscribing to my newsletter. Or go crazy, and buy one or more of my books . Thanks!

35 responses to MAMP without MAMP

  1. I’ve been using Bitnami’s MAMP stack for a while. No automated virtual hosts. It does come in 3 different flavors, PHP 5.2, 5.3 and they just came out with a Development version that includes PHP 5.4. Each comes with MySQL 5, Apache 2 (sub versions depending on the stack chosen I believe) and they will each install PHPMyAdmin as well as some of the more common frameworks (Cake, Zend, Symfony).

    They have a MAMPP stack with Postgres as well and an add on to the regular MAMP stack that will install Postgres.

    The only issue I’ve ever had with it is that I can’t get PHPUnit to work with it. I can download it, install it but never have gotten it to work. I attribute this to operator error and don’t blame Bitnami, though I wish they included it in the Stack for the CLI challenged users like myself.

    Bitnami.org

    • Thanks for sharing that, Phil. I haven’t used BitNami myself, but I like that they also offer applications (like WordPress) and even virtual appliances. More choices is almost always better. Thanks again!

  2. I bought MAMP Pro on offer (think it cost me about $29) a few months ago. The things I most like are that it just works and that it offers a nice, quick overview of vhosts. Having said that, anyone who should be running such a stack should probably have no problem adding their own vhosts (it’s just a bit of copypaste anyway). But I’m a bit of a sucker for GUIs.

    Still, they’re definitely not offering much for the price. I also tried looking into a *secure* fix for entering my username and password on startup every single time, and there just isn’t one. I spent about three hours trying to script one to no avail. The solution is to have it use keychain, but there’s a ticket that, if I remember correctly, has been open for years without any attention.

    Perhaps I’ll join you in an alternative. Thanks for the article!

    • Thanks for sharing your experience. It’s the “definitely not offering much for the price” that gets me. Also, I’m pretty tired of entering my username and password twice a day just to do some Web development!

    • The reason you ned to enter your password on start and stopping MAMP is normally because you’ve selected a port below 1024, such as me using 80 to stick to no port numbers in the URL.
      It’s explained here: http://www.mamp.info/en/documentation/faq.html#q10

      I hope that helps :)

      • Woah, thanks! That does help!

      • Thanks for your input, Gerard. I am aware of that being the issue and had seen that FAQ. I had even looked into work-arounds, but none to my satisfaction. So I’m either stuck with entering my password every time or adding :8080 to all URLs. Neither is good for me.

  3. Hi Larry,

    Although I do not have or use a MAC, I use Xampplite on my 64 bit Windows 7 PC and it has been flawless, though I do not run any virtual hosts.

    For what it’s worth,

    Cheers from Oz.

  4. I’ve been using xammpp for years with no hitch. I have not set up virtual hosts, but I just did a run through the xammp forum and it looks like it can e done with out much trouble.

    I also started with Marc Liyanage’s instructions for installing php and mysql and could never get it working well. Once I discovered XAMMP and started using it, everything has worked like dream.

    –Kenoli

  5. I’ve been using XAMPP by Apache Friends (free) for about 7 years now on my Win XP-Pro machine and it has suited me just fine. I’m not looking for nice interfaces or extra bells and whistles, just the basics that enable me to develop in a localhost environment.

  6. Another good feature of XAMPP is it comes with Xdebug. You just need to un-comment a few lines in the php.ini file and you set to go.

  7. Thanks for this post, Larry. I like the historical context that you provide.

    I decided to use my native installation (plus MySQL) and I found extremely clear instructions, replete with screenshots: http://www.coolestguyplanet.net/how-to-install-php-mysql-apache-on-os-x-10-6/

    After following these directions I was able to access the web server on my computer. Unfortunately, I was not able to access the web server in my user directory (a.k.a. my Sites folder). That produced a 403 Forbidden Error. I had to spend a few hours with this and here is how I was able to make it work.

    First, I did not have a username.conf file. So I created one based on the instructions here: http://www.coolestguyplanet.net/forbidden-403-you-dont-have-permission-to-access-username-on-this-server/

    But this still did not work (though I definitely needed the username.conf file). More searching led me to this video: http://youtu.be/cMhSyxmbHu0
    Even though the it is a Windows system, the changes in the httpd.conf file were the same.

  8. Another thing that I’ve discovered is that the php.ini file will likely need to be updated. I installed Yii on my local webserver (localhost/~user) but I received an Error 500 denoting problems about the date. After quite a bit of searching I learned that I needed to 1). make a copy of my php.ini.default file (in /private/etc/) and name it php.ini (you may already have a php.ini file; I did not, so I copied the default). In the [Date] section I uncommented (removed the “;”) data.timezone =

    and added “America/New_York”

    Then, I restarted my web server and all is well.

    • Thanks for sharing that, Daniel. The issue with setting the default time zone has been tripping people up for a couple of years now, it seems.

  9. I’ve been using MAMP Pro for my development work and have been in two minds about upgrading to version 2 and so far have plodded on with the previous 1.9.6.1.
    I decided now is good time to think about upgrading and before I was tempted to just stick with MAMP Pro or possibly even downgrade to the free version, (wasn’t good option as php 5.3.13 is available only to MAMP PRO users http://blog-en.mamp.info/), a google search brought me to this page and thankfully I took the plunge and tried AMPPS.

    After the package was installed and when you run it for the first time there is choice in the security centre http://www.ampps.com/wiki/Security_Center to secure PhpMyAdmin with either cookie or http authentication (and to compare with MAMP or MAMP Pro it used the config method without a choice). I opted to use the cookie method as the password is then encrypted using secret blowfish authentication.

    Not everything went smoothly though I did run into some problems with phpmyadmin. I’m running 10.6.8 Snow Leopard with the latest version of Safari and the 3.5.1 version of phpmyadmin has a bug that breaks webkit browsers. The problem lies with the content security policy which blocks phpmyadmin running in safari. I spent a whole day searching for an answer there was one to be found but not very adequate which was to write in your ../AMPPS/phpmyadmin/ config.inc.php to allow third party frames. I wouldn’t recommend it has a solution to the problem. Instead I found that the bug has been fixed ready for the next release for phpmyadmin however I didn’t want to wait. I browsed on their github page for the 3.5.2 release candidate (change the branch to MAINT_3_5_2) and navigated to the libraries folder and to the header_http.inc.php file https://github.com/phpmyadmin/phpmyadmin/blob/MAINT_3_5_2/libraries/header_http.inc.php and copied line 25- header (“X-Content-Security-Policy ….etc) and line 26 -header(“X-WebKit-CSP: …etc) pasted over the same two lines in my header file located path/to/AMPPS/phpmyadmin/libraries/header_http.inc.php . Problem solved phpmyadmin runs in safari with no content security policy issues. However once you log in there is still some set-up to complete. You’ll need to set your blowfish secret pass (if you chose the cookie method earlier) and that can be done in the config.inc.php file – e.g line22 ….blowfish_secret = ‘anyrandomdigitsletters=-%inthequotemarks’; any changes to the config file log out, stop and start servers and log back in.

    Then if you click on your import tab in phpmyadmin and upload path/to/AMPPS/phpmyadmin/examples/create_tables.sql then click into the newly created database – phpmyadmin and go into the privileges tab and create new user (fill out the username – phpmyadmin and set your password, choose create database with same name and grant all privileges. This will be your control user that will be added to your config file.

    Now open your config.inc.php file in your editor again also the config.sample.inc.php. From the sample file copy from line 44 (e.g. controluser) to line 61(table_uiprefs) into your config file and uncomment the lines by deleting the //. In the controluser delete pma and replace with the username we just set up in the database in this case – phpmyadmin and change the controlpass ‘pmapass’ to your password save the file. Log out, stop and start servers and log back into AMPPS and then phpmyadmin and you should be ready to go!!!

    AMPPS is different to Mamp Pro and I think overall its better and I’m glad that I have up to date development environment. Thanks for the post and including AMPPS it was the nudge I needed and so far it worked out good for me.

  10. Hi Larry,
    this article was the right hint to make me get rid of Zend Server CE and Mamp Pro (totally agree on your opinion about this product) and go back to the good ol’ days of built in Apache server. I discovered Marc Lianage PHP many years ago and it’s nice going back to the roots (sort of).

    • Glad it was useful and thanks for saying so. I don’t want to be too hard on MAMP, because it was a terrifically useful product for some time, but I think of it as an unnecessary relic these days.

  11. Hey,
    Where are the support forums? I followed Larry’s yii tutorials and I’m running MAMP Pro on a Mac and the framework is working nicely. But now all of my WordPress and phpMyadmin are not accessible…I get, “/Applications/MAMP/Library/bin/mysqlcheck: Got error: 1045: Access denied for user ‘root’@’localhost’ (using password: YES) when trying to connect” and it is blowing my mind….help.!

    • If you look in the navigation menu, you’ll see the word “FORUMS”. Or use your browser’s find functionality and you’ll find it quickly, too.

  12. I still use MAMP PRO. I’m actually doing django project with database in PostgeSQL but the main site is Drupal with MySQL (which plays well with MAMP PRO). Whole solution will sit in a virtual server eventually and main struggle I had was how to get additional library to MAMP’s Apache. Documentation said that this is not supported. I’m glad to say that I still got my library … but it wasn’t easy. What I needed was to get fcgid_module to Apache. I ended up compiling the library myself and found all the right places to set it up. I’m using OS X 10.8. PostgreSQL of course plays well with OS X. With fcgid_module I’m again happy with MAMP PRO but now and then I’m looking for a more mature (and with a better support) solution… haven’t found any. Everywhere people are suggesting (like you) that go with built in Apache 2 etc.

  13. Perfect timing (for me anyway), I normally develop on LAMP and WAMP but I just bought a Mac as my on-the-couch-while-watching-tv machine and was thinking it might be nice to be able to do some casual development there. First .AMP search turned up MAMP – sounded good and would probably work well for my needs but after this post and the very useful comments – I think I’ll opt for AMPPS instead.

    Thanks (all) for taking the time

    PS-Larry – I’m a bit of a tech junkie and tend to read a lot of development books and just-try-stuff. Whenever I have a choice of authors for a particular language – I pick your books… I always find them just the right level of detail for me. Quick kudos for that too.

  14. Mamp Pro is horrible if you need tech support… I have never been ignored as a paying customer with any other product, and I am far from alone.

    • Totally agree. I like MAMP in theory, and it was invaluable for many years so I don’t regret paying for it once, but I’d never pay for it again.

Trackbacks and Pingbacks:

  1. PHP Development with XAMPP | Helmut Granda - February 29, 2012

    [...] Larry Ullman wrote a great post about his experience with MAMP. Many years before I heard about MAMP I had been using XAMPP (http://www.apachefriends.org/en/xampp.html), it was in fact that a friend told me about the great piece of software he was using called MAMP which was only $39 (at the time, today you have to pay $59 for a new version and $29 for an upgrade). MAMP is able to let my friend have a LAMP stack up and running in no time in his MAC. I asked my friend why would he be paying $39 for MAMP while XAMPP was free! and he had two reasons. One, he could update the vhosts quickly, second he had been using the software for quite a while so he didn't have to learn a new piece of software. I believe there is a free version but you are not able to edit the vhosts which for what I undrestand is one of the main sell point for many. [...]

  2. Larry Ullman - April 2, 2012

    [...] to run a Web server on a Mac. I’ve started to change my thinking about that, as discussed in a recent blog post.Q&A => Can I Make a Living as a Writer?“Can I make a living as a writer?” is one of the [...]

  3. Goodbye MAMP: How I Built My Own AMP Stack » iCaspar - November 2, 2013

    […] to any support issues, not even for their paying MAMP Pro customers. Last year Larry Ullman wrote about why he’s leaving MAMP behind. Nothing’s changed since then. I’ve tried […]

Comments are great, but I'd strongly prefer any requests for assistance get made in the support forums. Thanks!