It installs Apache, PHP and other XAMPP components directly on your OS X system, in the /Applications/XAMPP folder. XAMPP-VM is a virtual machine for OS X. It includes Apache, PHP and other XAMPP components and runs them in a Linux-based virtual machine on your OS X system. For more information, refer to the blog post at https://www. 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.
Recommend switching to Docker
I finally switched to using Docker for local development on macOS. While the following tutorial works for macOS Mojave, it will not for future versions of macOS. I recommend following my latest tutorial on installing Apache, MySQL, and PHP on macOS using Docker.
Note: This post is for new installations. If you have installed Apache, PHP, and MySQL for Mac OS Sierra, read my post on Updating Apache, PHP, and MySQL for macOS Mojave.
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.
The thing is macOS runs atop UNIX. So most UNIX software installs easily on macOS. Furthermore, Apache and PHP come preinstalled with macOS. 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
Mysql Apache For Mac Os X64
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 Mojave 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 macOS Mojave
Download and install the latest MySQL generally available release DMG for macOS. While MySQL 8 is the latest version, many of my projects still use MySQL 5.7. So I still prefer installing the older version.
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
Mac Os Mysql Gui
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.
MySQL supports deployment in virtualized environments, subject to Oracle KM Note 249212.1. For further details, please contact the MySQL Sales Team.
Important Platform Support Updates »
8.0 | 5.7 | 5.6 | ||
---|---|---|---|---|
Operating System | Architecture | |||
Oracle Linux / Red Hat / CentOS | ||||
Oracle Linux 8 / Red Hat Enterprise Linux 8 / CentOS 8 | x86_64, ARM 64 | • | ||
Oracle Linux 7 / Red Hat Enterprise Linux 7 / CentOS 7 | ARM 64 | • | ||
Oracle Linux 7 / Red Hat Enterprise Linux 7 / CentOS 7 | x86_64 | • | • | • |
Oracle Linux 6 / Red Hat Enterprise Linux 6 / CentOS 6 | x86_32, x86_64 | • | • | • |
Oracle Solaris | ||||
Solaris 11 (Update 4+) | SPARC_64 | • | • | • |
Canonical | ||||
Ubuntu 20.04 LTS | x86_64 | • | ||
Ubuntu 18.04 LTS | x86_32, x86_64 | • | • | |
Ubuntu 16.04 LTS | x86_32, x86_64 | • | • | |
SUSE | ||||
SUSE Enterprise Linux 15 / OpenSUSE 15 | x86_64 | • | ||
SUSE Enterprise Linux 12 (12.4+) | x86_64 | • | • | • |
Debian | ||||
Debian GNU/Linux 10 | x86_64 | • | • | |
Debian GNU/Linux 9 | x86_32, x86_64 | • | • | • |
Microsoft Windows Server | ||||
Microsoft Windows 2019 Server | x86_64 | • | ||
Microsoft Windows 2016 Server | x86_64 | • | • | • |
Microsoft Windows 2012 Server R2 | x86_64 | • | • | • |
Microsoft Windows | ||||
Microsoft Windows 10 | x86_64 | • | • | |
Apple | ||||
macOS 10.15 | x86_64 | • | ||
FreeBSD | ||||
FreeBSD 12 | x86_64 | • | ||
Various Linux | ||||
Generic Linux (tar format) | x86_32, x86_64, glibc 2.12, libstdc++ 4.4 | • | • | • |
Yum Repo | • | • | • | |
APT Repo | • | • | • | |
SUSE Repo | • | • | • |