macOS Update: While these instructions still work, there are new posts for recent versions of macOS, the latest being Install Apache, PHP, and MySQL on macOS Mojave.
Jul 06, 2019 XAMPP for Mac is an easy to install Apache distribution for Mac OS X, Windows, Linux and Solaris. The package includes the Apache web server, MySQL, PHP, Perl, a FTP server and phpMyAdmin. Overall, XAMPP for Mac is a great tool for anyone looking to get a full development server up and running within quick time constraints. Click on the link above to download Apache Directory Studio for Mac OS X. The download appeares in the Downloads folder in Finder. Double-click on the disk image to open it. Drag-and-drop the Apache Directory Studio application on the Applications folder to install it.
PHP Update: Mac OS X Yosemite comes pre-installed with PHP version 5.5 which has reached its end of life. After you complete this post, you should upgrade PHP on Mac OS X.
I recently upgraded to Mac OS X Yosemite. It seems Mac OS X Yosemite makes my original post on installing Apache, PHP, and MySQL on Mac OS X obsolete. Specifically, Yosemite includes Apache 2.4. This post is a complete update for installing Apache, PHP, and MySQL on Mac OS X Yosemite.
A reminder that Mac OS X runs atop UNIX. So most UNIX software installs easily on Mac OS X. Furthermore, Apache and PHP come packaged with Mac OS X. To create a local web server, all you need to do is enable them and install MySQL.
I am aware of the web server software available for Mac OS X, notably MAMP. These get you started quickly. But they forego the learning experience and, as most developers report, can become difficult to manage.
Getting Started
First, open the Terminal app and switch to the
root
user to avoid permission issues while running these commands.Enable Apache on Mac OS X
Verify It works! by accessing http://localhost
Enable PHP for Apache
First, make a backup of the default Apache configuration. This is good practice and serves as a comparison against future versions of Mac OS X.
Now edit the Apache configuration. Feel free to use TextEdit if you are not familiar with vi.
Uncomment the following line (remove
#
):Restart Apache:
You can verify PHP is enabled by creating a
phpinfo()
page in your DocumentRoot
.The default
DocumentRoot
for Mac OS X Yosemite is /Library/WebServer/Documents
. You can verify this from your Apache configuration.Now create the
phpinfo()
page in your DocumentRoot
:Verify PHP by accessing http://localhost/phpinfo.php
Install MySQL on Mac OS X
Note: If you are upgrading MySQL you should skip this section and instead read this.
- Download the MySQL DMG for Mac OS X
- Install MySQL
The README suggests creating aliases for
mysql
and mysqladmin
. However there are other commands that are helpful such as mysqldump
. Instead, I updated my path to include /usr/local/mysql/bin
.Note: You will need to open a new Terminal window or run the command above for your path to update.
I also run
mysql_secure_installation
. While this isn't necessary, it's good practice.Connect PHP and MySQL
You need to ensure PHP and MySQL can communicate with one another. There are several options to do so. I do the following:
Additional Configuration (optional)
The default configuration for Apache 2.4 on Mac OS X seemed pretty lean. For example, common modules like
mod_rewrite
were disabled. You may consider enabling this now to avoid forgetting they are disabled in the future.I edited my Apache Configuration:
I uncommented the following lines (remove
#
):Note: Previous version of Mac OS X ran Apache 2.2. If you upgraded OS X and previously configured Apache, you may want to read more about upgrading to to Apache 2.4 from Apache 2.2.
If you develop multiple projects and would like each to have a unique url, you can configure Apache VirtualHosts for Mac OS X.
If you would like to install PHPMyAdmin, return to my original post on installing Apache, PHP, and MySQL on Mac OS X.
Find this interesting? Let's continue the conversation on Twitter.
In this tutorial we will learn to install Apache, MySQL, PHP on macOS Mojave 10.14.
macOS Mojave
Apple released the new macOS Mojave 10.14 on 24th September 2018 and it includes Apache and PHP.
We will be using the pre-installed Apache and PHP and we will download and setup MySQL database.
Lets go ahead and configure our LAMP stack development environment on macOS Mojave.
Apache
The new macOS Mojave comes with Apache pre-installed. All we have to do is switch it on.
Open Terminal using macOS Spotlight or go to /Applications/Utilities and open Terminal.
To check the version of Apache installed run the following command in the Terminal.
macOS Mojave comes with Apache/2.4.34.
To start Apache web server run the following command.
This command will start Apache server.
When you use
sudo
in the terminal then you will be prompted to enter your admin password to proceed.If you want to stop the Apache server then run the following command.
And to restart Apache server run the following command.
After starting Apache server go ahead and test it by opening a browser like Safari or Chrome and visit
http://localhost
.You will get to see the following output in your browser.
In case you don't get to see the above output then run the following command to check the error.
Document Root
This is the location in the computer file system from where the files are accessed when we visit the localhost in a browser.
Document Root is a directory where we put our website files.
On Mac we have two document root. One is at the system level and the other is at the user level.
System level document root
The system level document root in macOS Mojave is located in the following directory.
User level document root
For the user level we can create a directory called
Sites
in user directory.Creating Sites
directory
Run the following command to switch to the user home directory.
Now, run the following command to create the
Sites
directory.For me the user document root path is the following.
Creating username.conf
file
Now, its time to create a
username.conf
file which will help in configuring our document root.Note! Replace the username with your username.
For example, my username is yusufshakeel so, my file is
yusufshakeel.conf
.Type the
whoami
command in the terminal and it will tell you your username.Open terminal and go to the following directory.
Now create the configuration file username.conf inside the users directory.
In the following example I am using vi editor. You can use other editors like vim or nano.
Press the i key to enter into INSERT mode. Now, type the following inside the file.
Don't forget to replace
YOUR_USER_NAME
with your username.Here is what I have written in my
yusufshakeel.conf
file.Now, to come out of the INSERT mode press the Esc key. And to save the file and exit type the following :wq and hit Enter.
The permission of this file should be the following.
If not, then use the following command to change its permission.
Where, username is your username that you have set earlier.
Configuring the httpd.conf
file
Type the following command in the terminal and go to apache2 directory.
Inside this directory we have the
httpd.conf
file.As a good practice we will make a backup copy of the
httpd.conf
file by typing the following command in the terminal.Now open the httpd.conf file using
vi
and uncomment the following lines.To uncomment the following lines remove the
#
from the start of the line.Uncomment the following line for User home directories.
Now change the DocumentRoot.
Find the following lines and comment them by adding
#
at the beginning of the line.And add the following two lines below the commented lines.
Apache Web Server Download For Mac Os X
Don't forget to replace
YOUR_USERNAME
with your username.And set the
AllowOverride None
to AllowOverride All
.Your DocumentRoot should now look something like the following.
Now, come out of the INSERT mode by pressing the Esc key. And save and exit the file by typing :wq key and then Enter.
Configuring the httpd-userdir.conf
file
Now, we will make some changes in the httpd-userdir.conf file.
Type the following command in the terminal to go to the extra directory.
As a good practice we will first create a backup copy of the
httpd-userdir.conf
file. Type the following command to create a backup copy.Now open the file using
vi
.Uncomment the following line.
Now check that everything is configured properly by typing the following command in the terminal.
And then restart Apache using the following command.
PHP
macOS Mojave comes with PHP 7.1.x pre-installed.
To check the version of PHP in the Terminal type the following command.
Alright, type the following command in the terminal to go to apache2 directory.
Open the
httpd.conf
file.Enter into INSERT mode by pressing the i key and uncomment the following line to run PHP 7 by removing the
#
sign from the start of the line.Now, save the changes and exit the file by typing :wq keys and hit Enter.
You can now restart Apache by running the following command.
Printing phpinfo
Create
index.php
file inside the Sites directory by running the following command.Now open this file in your favourite text editor or PHP IDE and write the following code.
Now, visit
http://localhost
and you will get to see a similar output.Download MySQL community server
Head over to mysql.com website and download the latest version of the MySQL Community Server.
Download and run the installer and follow the steps to install MySQL database on your Mac.
Set the root password when prompted and note it down.
To run MySQL server open System Preferences and go to MySQL.
Click on the Start MySQL Server button to start the server.
You will be asked to enter your admin password. Enter the password and the MySQL server will start running.
![Install apache mac os Install apache mac os](/uploads/1/2/6/5/126522770/611460788.jpg)
Extra
To access your MySQL database tables you can either use phpMyAdmin, MySQL Workbench or Sequel Pro.
Mac Os X Download For Windows
Alright, this brings us to the end of this tutorial. Hope this helped. Please share if you find this website useful. Have fun developing. See you in the next tutorial.