Apache Macos Catalina

2018 Mac-Mini macOS Big Sur, 32 GB. Assuming you are using the version of Apache that came bundled with Mojave, I would suggest switching over to the Homebrew version of httpd instead. It's already up to date at 2.4.46. Once you've installed Brew, you can use.

PREREQUISITES:


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

  • Macos catalina apache, How 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 Apache. The new macOS Catalina comes with Apache pre-installed. All we have to do is switch it on.
  • 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.
  • A handy ssh book for beginners and forgetful veteran developers and Unix/Linux/macOS users. Open a terminal and than type the following command to restart the apache 2 web server: $ sudo /usr/sbin/apachectl restart. $ sudo apachectl -k restart. Sample outputs: Restart Apache 2 Mac OS X.

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

Apache Openoffice Mac Catalina

Check if works by accessing:
http://localhost

Enable PHP for Apache

Apache Macos Catalina

Apache Macos Catalina Installer

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:

Disable Apache Mac Catalina


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.

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.

When we use web server as apache2 very often we need mod_rewrite rules to be enabled. In case of linux kernel based OS enabling the mod_rewrite is easy. A single command can enable it. For Mac OS it is bit different.

Macos Catalina Apache

To enable mod_rewrite on Mac we need to the followings:

Apache Directory Studio Macos Catalina

Step #1: Open the httpd.conf file

Apache Tomcat Macos Catalina

Step #2: Uncomment the following line

Step #3: Restart the apache

This should enable the mod_rewrite for apache2

If you try using a2enmod to enable the mod_rewrite rules in Mac will not work as a2enmod was written for the Debian distribution, as it is a Debian-specific.