Install Apache Php Mysql Mac Catalina

In this tutorial we will learn to install Apache, MySQL, PHP on macOS Catalina 10.15.

Facts to consider with MacOS Catalina: The OS already comes with PHP preinstalled, the version 7.3.9.This could mean just need to install MySQL or MariaDB and your system is ready. ApacheFriends includes many adds needed, including the database server. Before Update to MacOS Catalina, backup files and databases from the XAMPP running. In this tutorial we will learn to install Apache, MySQL, PHP on macOS Catalina 10.15. About macOS Catalina. Apple released macOS Catalina 10.15 on 7th October 2019 and it includes Apache and PHP. So, all we have to do is enable them. Then install MySQL and we are ready for development. So, lets get started.

  • If you need to setup a MySQL Workbench, you can refer to Using MySQL Workbench on macOS Catalina (2019) If you are using macOS Catalina, check out Setting Up Your Local Server on macOS Catalina (2019) – MAMP – macOS, Apache, MySQL, PHP to setup your mac local web server.
  • This User Tip only contains instructions for configuring the Apache server, PHP module, and Perl module. I have another User Tip for installing and configuring MySQL and email servers. Note: This user tip is specific to macOS 10.15 “Catalina”. Pay attention to your OS version. There have been significant changes since earlier versions of macOS.

About macOS Catalina

Apple released macOS Catalina 10.15 on 7th October 2019 and it includes Apache and PHP. So, all we have to do is enable them. Then install MySQL and we are ready for development. So, lets get started.

Note! Support for 32 bit apps is removed in Catalina so, all your 32 bit applications will no longer work. Kindly upgrade your applications.

Apple has also made zsh as the default shell. You can learn more about it here.

To change the default shell check the tutorial How to change default shell to bash on macOS Catalina.

We will be using the pre-installed Apache and PHP and we will download and setup MySQL database.

If you are using macOS Mojave then check out this tutorial How to install Apache, MySQL, PHP on macOS Mojave 10.14

Lets go ahead and configure our LAMP stack development environment on macOS Catalina.

Apache

The new macOS Catalina 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.

Note! macOS Catalina comes with Apache 2.4.41

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.


By default, the file is getting served from /Library/WebServer/Documents directory. We will change this is the following sections.

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 http://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 Catalina is located in the following directory.

User level document root

For the user level we can create a directory called Sites in user directory. So, open Terminal and get ready to create the user level document root directory.

Creating Sites directory

Run the following command in the Terminal to switch to the user home directory.

Now, run the following command to create the Sites directory.

You can merge the above two commands into one by running the following command.

For me the user document root path is the following.

You will get a similar path for your Mac.

Creating username.conf file

Now, we will create a username.conf file to configure 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 and then type the following in 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, come out of the INSERT mode by pressing the Esc key. Now save the file and exit by typing the following :wq and then hit Enter.

The permission of this file should be the following.

You can change the permission by typing the following command.

Where, username is your username that you have set.

Configuring the httpd.conf file

Now we switch to apache2 directory by typing the following command in the Terminal.

Inside this directory we have the httpd.conf file.

Install Apache Php Mysql Mac Catalina Update

As a good practice we will make a backup copy of the httpd.conf file by typing the following command.

Now open the httpd.conf file using vi and uncomment the following lines.

To uncomment the 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.

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, time to make some changes in the httpd-userdir.conf file.

In the terminal type the following command to go to the extra directory.

As a good practice create a backup copy of the httpd-userdir.conf file.

Now open the file using vi.

Enter into INSERT mode and uncomment the following line.

Now, come out of the INSERT mode and save the changes.

Now, check if everything is configured properly by typing the given command.

Now restart Apache using the following command.

PHP

macOS Catalina comes with PHP 7.3.8 pre-installed.

To check the version of PHP in the Terminal type the following command.

Now we go to the apache2 directory.

Next, we open the httpd.conf file.

Now, enter into INSERT mode 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.

Now open the 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.

Extra

Mysql

To access your MySQL database tables you can either use phpMyAdmin, MySQL Workbench or Sequel Pro.

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.

PREREQUISITES:


In order to follow this guide, you should have a Mac computer with the Catalina OS installed.

I was using for several years MAMP, Fywheel, as well as package managers like brew, and all work pretty well, but why not using the preinstalled Apache and PHP that is shipped in almost all macOS?

In this tutorial, I will show you how to setup/install Apache, PHP, and MySQL on macOS Catalina.

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

Check if works by accessing:
http://localhost

Enable PHP for Apache

First, let’s make a backup of the default Apache configuration


Edit the Apache configuration


Uncomment the following line

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. In order to verify this, we run the command below to find out our Apache configuration.


Create the phpinfo() page in your DocumentRoot:

Verify PHP by accessing http://localhost/phpinfo.php

Customizing PHP settings (php.ini)

MacOS’ PHP uses a default php.ini file based on /private/etc/php.ini.default.
To customize your PHP environment, if a php.ini file doesn’t already exist at /private/etc/php.ini, copy the default template to create a main php.ini file:

Make any changes you wish to php.ini and restart apache to reload all configuration files:

If you were to run phpinfo() in a PHP file from the web server, you should now see that the Loaded Configuration File property now has the value /etc/php.ini.

A very common tweak to the default PHP configuration is to allow larger file upload sizes. The post_max_size and upload_max_filesize properties are only a few megs by default. These limits can be raised as you see fit.

Many developers also tweak the max_execution_time, max_input_time, and memory_limit settings depending on their project.

Always remember to restart apache after making changes to your PHP configuration.

Install MySQL on macOS Catalina

Download and install the latest MySQL version for your macOS.


Setup
Open a new terminal and run the code below this will update the mysql path on your ~/.profile


Please run mysql_secure_installation to make your MySQL secured

Recommended setup:
Strong Password? Yes
Change the root password? Yes
Remove anonymous users? yes
Disallow root login remotely? Yes
Remove test database? Yes
Reload privileges tables now? Yes

We can set a command shortcut for mysql:

Now, to access mysql console, we can run below short command:


Useful mysql commands

Connect PHP and MySQL

Create symlink to ensure PHP and MySQL can communicate each other.

Edited my Apache Configuration:


Uncommented the following lines

Virtual Hosts

Edit the Apache configuration file:


Add the below line after this included #Include /private/etc/apache2/extra/httpd-vhosts.conf


Create the apache2 vhosts directory.


Create the default virtual host configuration file.


Add the following configuration:

Install Apache Php Mysql Mac Catalina Free


The default virtual host was created for when the Apache web server can’t find a virtual host, it will use this configuration. By prefixing this file with an underscore, Apache will include it first.

Now we can create our first virtual host. The example below contains the virtual host configuration for my test site.

Create the virtual host configuration file:


Add the following configuration:

This VirtualHost configuration allows me to access my site from http://nuno-test.test for local development.


The final step is to restart Apache:


Test our apache configuration/strong>

Start, Stop, Restart and test Apache server config


I know it is a little bit daunting but I promise that we’ll never come back to this nasty lengthy configuration file again. Four simple commands are everything that we need to remember from now on. Start, stop, restart and configuration test.

Install Apache Php Mysql Mac Catalina

Mapping our vhosts on macOS hosts file


Add your virtual host to the bottom of the file. It should match the value you used for the ServerName configuration.


Flush macOS DNS cache:

Permissions

You may receive 403 Forbidden when you visit your local site. This is likely a permissions issue. Simply put, the Apache user (_www) group (_www) needs to have access to read, and sometimes write, to your web directory.

Conclusion

By using the macOS preinstalled Apache and PHP we can avoid installing extra software on our macOS which sometimes could lead us to conflicts/errors/miss configuration on our Mac Operating system.