A web site located on a local computer is accessed in a browser through the URL localhost and normally served by a local Apache server. There are two parts to this process. The first is the resolution of the name localhost to the IPv4 loopback address 127.0.0.1 which is configured in the local computer’s hosts file.
Those of you familiar with MAMP will no doubt know that MAMP’s MySQL root user password is set to root by default and changing it is not as straightforward as it perhaps should be.
I’ve previously described a way of successfully changing the root user password providing, of course, that you know the current password. If you’ve forgotten it, this method will not work and a way of re-setting the password is required.
Installing WordPress on a local server environment is fairly straight forward. There are numerous guides to be found on the Internet that’ll walk you through each step.
However, if your local server environment is running on a Mac, the local Apache server may have some difficulty serving WordPress posts and pages resulting in Error 404 Object not found! errors. These errors can often be attributed to the use of custom or so-called pretty permalinks.
Whether using XAMPP or MAMP to provide a local server environment I prefer to have the respective Apache and MySQL servers start when I login.
With XAMPP I use a launch daemon and this works perfectly. With MAMP it’s even easier as there’s an option to Start Servers when starting MAMP in MAMP’s preferences. I only need to add MAMP.app to my Login Items and MAMP’s servers will be up and running after logging in.
Having recently changed my local testing server environment from XAMPP to MAMP v2.0.5 I wanted to change the password for the MySQL root user. By default it’s set to root.
Changing the MySQL password for the root user was straightforward enough, but locating and editing the files to reflect the new password was a different story. Failure to update all the necessary files results in MAMP reporting the following error:
/Applications/MAMP/Library/bin/mysqlcheck: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect
I have several computers on my local network each with a local server environment provided by XAMPP. As it stands, the local server on each computer can only serve pages stored on that machine. This means that if I have a local site on computer A that I wish to access on computer B I have to replicate that site’s entire folder structure on computer B and on all other computers I want to access the site from.
No big deal really as I currently use ChronoSync to synchronise my site’s folder structure across computers. However, it is possible to have any computer on a local network serve pages that are stored on another computer on that same network. Here’s how.
If you want your visitors to be able to send you an email from your site there are several options including mailto, sendmail or Postfix. There are also numerous sites offering contact forms for free. For a while I was using the excellent swiftmailer which performed perfectly on both my local and remote servers for a while, but subsequently ceased working on my remote server (presumably because of some configuration change by my hosting provider which I never did get to the bottom of).
A while back I posted about configuring virtual hosts in MAMP.
More recently I noticed that MAMP hadn’t been updated in nearly a year and their support forum resembled a wilderness. Thinking that maybe the writing was on the wall for MAMP I started looking for an alternative and came across XAMPP.
XAMPP provides a similar local server environment to MAMP, but configuring virtual hosts is a little different. Unlike the Pro version of MAMP , XAMPP doesn’t have a nice GUI to allow virtual hosts to be configured easily. So, there is no alternative but to do it manually.
If you need to easily set-up and maintain a local server environment on your Mac then look no further than MAMP. MAMP comes with Apache, MySQL and PHP and provides a local server environment independent of that installed as default on macOS. And it’s free.
However, out-of-the-box you’re limited to a single local host. This can prove inconvenient when developing multiple sites each requiring their own local host. The most convenient and cost effective way to overcome this limitation is to use virtual hosts.