Note: This post is for new installations. If you have installed Apache, PHP, and MySQL for Mac OS Mojave, read my post on Updating Apache, PHP, and MySQL for macOS Catalina.
Part 1: macOS 10.15 Catalina Web Development Environment Developing web applications on macOS is a real joy. There are plenty of options for setting up your development environments, including the ever-popular MAMP Pro that provides a nice UI on top of Apache, PHP and MySQL. However, there are times when MAMP Pro has slow downs, or out of date versions, or is simply behaving badly due to its. So finally I have decided to learn PHP and I use Mac for my personal usage, so the first step was to install Apache, PHP and MySql on my Mac OS X. My Mac OS is Mountain Lion (10.8), so for earlier versions you might need to make some changes in the steps provided below. Download the files. Download the latest PHP 5 ZIP package from www.php.net/downloads.php. Installation on macOS Table of Contents. Using Packages; Using the bundled PHP; Compiling PHP on macOS; This section contains notes and hints specific to installing PHP on macOS. PHP is bundled with Macs, and compiling is similar to the Unix installation guide.
I am aware of the web server software available for macOS, notably MAMP, as well as package managers like brew
. These get you started quickly. But they forego the learning experience and, as most developers report, can become difficult to manage.
macOS runs atop UNIX. Most UNIX software installs easily on macOS. In Additional, Apache and PHP come preinstalled with macOS. So to create a local web server, all you need to do is configure Apache and install MySQL.
Running Commands
First, open the Terminal app and switch to the root
user so you can run the commands in this post without any permission issues:
Enable Apache on macOS
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 macOS.
Now edit the Apache configuration. Feel free to use a different editor 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 macOS Catalina is /Library/WebServer/Documents
. You can verify this from your Apache configuration.
Mac Php Zip
Now create the phpinfo()
page in your DocumentRoot
:
Verify PHP by accessing http://localhost/phpinfo.php
Install MySQL on macOS Catalina
Download and install the latest MySQL generally available release DMG for macOS. MySQL 8 is the latest version. But older versions are available if you need to support older applications.
When the install completes it will provide you with a temporary password. Copy this password before closing the installer. You will use it again in a few steps.
The README suggests creating aliases for mysql
and mysqladmin
. However there are other commands that are helpful such as mysqldump
. Instead, you can update your 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.
Finally, you should run mysql_secure_installation
. While this isn't necessary, it's good practice to secure your database. This is also where you can change that nasty temporary password to something more manageable for local development.
Connect PHP and MySQL
You need to ensure PHP and MySQL can communicate with one another. There are several options to do so. I like the following as it doesn't require changing lots of configuration:
Additional Configuration (optional)
The default configuration for Apache 2.4 on macOS 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 #
):
If you develop multiple projects and would like each to have a unique url, you can configure Apache VirtualHosts for macOS.
If you would like to install PHPMyAdmin, return to my original post on installing Apache, PHP, and MySQL on macOS.
Find this interesting? Let's continue the conversation on Twitter.
macOS Mojave ships with PHP 7.1, High Sierra 7.1, Sierra ships with PHP 5.6, OSX 10.11 El Capitan with PHP 5.5.x, there is an easy upgrade method to either the latest PHP version 7.3 or 7.2 or you can also go back to the older stable version 5.6.
Php Install Mac Sierra
PHP versions 5.5 and older are now considered end of life, with 5.6 and version 7.1 these will be the end of life in December 2018.
With the new macOS Mojave & High Sierra they already come shipped with PHP7.1.
The latest PHP version in this guide is from this PHP Packaged site which is being maintained for macOS and is known as a reliable source.
Download and Install PHP 7.3, 7.2, 7.1 or 7.0
Open Terminal and run…
or for 7.3
or for 7.2
or for 7.1
or for 7.0
You get a warning error for if the php is a newer version
The version is filed in /usr/local/php5 – Test the php version by creating a php file named phpinfo.php in your web root with the single function:
Browse to that file and see the version displayed.
If instead you just want to just update to the latest 5.6 PHP…
Open the Terminal and issue one command –
That’s it! One line command in the terminal, this will download and install PHP5.6 in:
Apache Configuration
For either PHP version install 7.3, 7.2, 7.1 or 5.6 etc, the install script will also disable the previous PHP5.5 if it was enabled in the Apache configuration file /etc/apache2/httpd.conf . The new version is enabled in Apache right off the bat, the new install will comment out the older PHP module.
It will load the new PHP version via the /etc/apache2/other/+php-osx.conf file.
So to reverse the behavior uncomment the older PHP module in httpd.conf and remove the new config in other.