How to Install Apache HTTP Server using HomeBrew on MacOS

Installation

How to Install Apache HTTP Server on MacOS – TecAdmin

A much better description is here from the folks at Git-Tower.

We need to install a local apache. This page shows how to install http doing this:

brew install httpd
sudo brew services start httpd

I found apache2 as a module, so I am trying that instead:

brew install apache2
brew services start apache2

Note that using sudo, this fails telling me that Homebrew should not be started as root. So start the apache as normal user.

The Git-Tower folks say it’s better to do this:

brew install httpd php

Note that we’re using the fact that httpd refers to Apache; also note that we’re installing php should you not have it.

Starting, stopping, restarting

brew services start httpd
brew services restart httpd
brew services stop httpd

It has started an apache daemon on port 8080.

Configuration

The tutorial refers to /usr/local/etc/httpd and /usr/local/var/www, but in fact, at least for me, the configuration is in /opt/homebrew/etc/httpd, and the webroot is in /opt/homebrew/var/www.

Install PHP with Apache

Open /opt/homebrew/etc/httpd/httpd.conf and do these changes:

Listen 8080

to

Listen 80

Comment in

Include /opt/homebrew/etc/httpd/extra/httpd-vhosts.conf

as well as

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

Add these lines where the modules are loaded:

LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so
Include /opt/homebrew/etc/httpd/extra/httpd-php.conf

Edit / create a file /opt/homebrew/etc/httpd/extra/httpd-php.conf:

<IfModule php_module>
  <FilesMatch .php$>
    SetHandler application/x-httpd-php
  </FilesMatch>

  <IfModule dir_module>
    DirectoryIndex index.html index.php
  </IfModule>
</IfModule>

Virtual Host Setup

Edit /opt/homebrew/etc/httpd/extra/httpd-vhosts.conf.

I’ve e.g. replaced the file by this:

<VirtualHost *:80>
    ServerName koolreport-examples.test
    DocumentRoot /opt/local/www/examples

    <Directory "/opt/local/www/examples">
        Require all granted
        AllowOverride All
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName koolreport.test
    DocumentRoot /opt/local/www/reports

    <Directory "/opt/local/www/reports">
        Require all granted
        AllowOverride All
    </Directory>
</VirtualHost>

After having added koolreport.test and koolreport-examples.test to /etc/hosts for 127.0.0.1.

I’m adding koolreport.test as an virtual host; I’ll blog in a separate post about the koolreport installation.

Add a simple phpinfo.php

Create a file /opt/homebrew/var/www/phpinfo.php with this content:

<?php phpinfo();

Restart the Server

brew services restart httpd

Related: [[🧠 Ideaverse/Other/- -|Other]]

Created: 1$=dv.span(dv.current().file.ctime)

Share