Apache Macos Catalina

Recommend switching to Docker

I finally switched to using Docker for local development on macOS. While the following tutorial works for macOS Catalina, it has limitations. 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 Mojave, read my post on Updating Apache, PHP, and MySQL for macOS Catalina.

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: 0001. Enable Apache on macOS. Facing issues with MAMP on MacOS Here is a guide setting up your own localhost on mac Catalina (latest), Takes around 15 Minutes. Tool Needed: Mac, Supply: MacOs. Setting up Apache Server & Loading inbuilt PHP 7. Starting up the inbuilt Apache Once the Terminal opens you see a Window like this.

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:

Stop Apache Mac Catalina

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.

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. Readme converter for mac. I like the following as it doesn't require changing lots of configuration:

Macos

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:

Download

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.

Apache Macos Catalina Download

Question or issue on macOS:

Apache

I have Apache webserver (the one supplied by Apple) running on my Macbook and it ran flawlessly, until I upgraded to Catalina 10.15.
I used the same httpd.conf, but now it is displaying

You don’t have permission to access this resource.Server unable to read htaccess file, denying access to be safe

I thought is was folder access by Catalina, but I don’t know how to let Apache access the web root folder (which is inside my /Users/me/Documents folder)as Apache is not a normal /Application.

Port 80 is open when I check with lsof -nP -i4TCP:80 | grep LISTEN op nmap, so Apache does start.

I set a simple index.html in the root folder, but the problem persists.
And when I remove the .htaccess from the Apache root folder I get:

You don’t have permission to access this resource.

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

What can be the problem here ?

How to solve this problem?

Solution no. 1:

I have found the solution, myself.

It is a Catalina issue:

  1. Go to System Preferences => Security & Privacy => Full Disk Access
  2. Click on the “+” button to add an app and go to the root folder of the disk and press
    Cmd + Shift + .(dot)
  3. Go to /usr/sbin/ and select httpd.

That worked for me.

Solution no. 2:

i had the same error, the problem in my case was that macOS Catalina comes with the php module disable by default, in the error log apear as:

Disable apache mac catalina

tail /private/var/log/apache2/error_log


[Wed Feb 26 18:10:57.123036 2020] [autoindex:error] [pid 3145] [client
127.0.0.1:53734] AH01276: Cannot serve directory /Library/WebServer/Documents/subdir/: No matching DirectoryIndex
(index.html) found, and server-generated directory index forbidden by
Options directive

Apache

the apache server was loking for index.html instead of index.php so it was blocking the list directory, I uncommented the line #LoadModule php7_module libexec/apache2/libphp7.so in /etc/apache2/httpd.conf and restart the apache server


sudo apachectl restart

and it just work. hope it helps.

Apache Macos Catalina Update

Solution no. 3:

The above answer save my life!

I tried all the different Apache configs possible, nothing worked.

Just a small correction for step 2 – click on the “+” sign to add an app, navigate to the root folder then press Cmd + Shift + .(dot) which will show all hidden folders and allow you to see the folder in step 3 (/usr/sbin/)

I wish Apple would have at least shown some error in such a case…

Solution no. 4:

Mac catalina apache forbidden issue

Step 1: sudo code /etc/apache2/httpd.conf Revelation robben ford pdf owner.

Install Apache On Macos Catalina

Step 2:search for line #LoadModule php7_module libexec/apache2/libphp7.so
and uncomment no need to delete it.

Step 3: sudo apachectl restart

Step 4: open Web browsers type localhost

Step5: Done

Apache Macos Catalina Installer

Hope this helps!