How to Install Apache Web Server on MacOS

Channel: Linux
Abstract: Apache default page on macOSStep 2 – Configuring the Apache Server The Apache web server is running now on your macOS system. Now you will want to mak

The latest versions of macOS come with pre-installed Apache 2.4. But it’s hard to manage it via homebrew due to Apple has removed some of the required scrips from the latest macOS releases. This tutorial will help you to remove the default installed Apache from the system and install the Homebrew version of Apache on your system.

Prerequisites

Before starting the installation of the Apache (httpd) server using this tutorial you must have the following prerequisites.

  • Terminal: You must have Mac Terminal access and little knowledge about working with the terminal application. Ao login to your Mac system and open terminal
  • Homebrew: Homebrew is a popular package manager for the Mac operating systems. It is useful for installing most open source software like Node. Homebrew installation tutorial
Step 1 – Installing Apache on macOS

Remove built-in Apache server (if any) from your system. Open a terminal and execute commands to stop running Apache server and remove it.

sudo apachectl stop 
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 

Now install the new version Apache server provided by Homebrew:

brew install httpd 

After completing the installation process, configure the httpd service to be auto-started on system boot.

sudo brew services start httpd 

You have successfully installed the Apache webserver via Homebrew, and configured it to auto-start with a privileged account.

You can try to reach your server in a browser by pointing it at http://localhost:8080, you should see a simple header that says 「It works!」

Apache default page on macOSStep 2 – Configuring the Apache Server

The Apache web server is running now on your macOS system. Now you will want to make some configuration changes according to your local development environment. A configuration file /usr/local/etc/httpd/httpd.conf is generated by the installer which you need to edit in a text editor and make following changes.

  1. Set Apache Port:

    The Homebrew’s version of httpd uses port 8080. You have to manually change the listen port from the default of 8080 to the standard port 80.

    Find the line with  
    Listen 8080
    
    and change it to  
    Listen 80
    
  2. Change Document Root:

    Now, configure the document root for Apache. The default document root is set to 「/usr/local/var/www」. You can keep the document root unchanged and put your website files to this document root. But I assume you want to change the document root to set it to your home directory.

    Change this to point to your user directory where your_user is the name of your user account:

     DocumentRoot /Users/rahul/Sites
    

    You also need to change the tag configured just right below the DocumentRoot line. This should also be changed to point to your new document root as well:

    In that same block you will find an AllowOverride option, Set this to all to enable the uses of the .htaccess file in Apache.

    <Directory /Users/rahul/Sites>
       [...]
       #
       # AllowOverride controls what directives may be placed in .htaccess files.
       # It can be "All", "None", or any combination of the keywords:
       #   AllowOverride FileInfo AuthConfig Limit
       #
       AllowOverride all 
    </Directory>
    
  3. Enabling Rewrite Module:

    Also, you should enable the mod_rewrite module by removing the leading # symbol from the following line. Search the line and update it. this will enable URL rewrite on Apache.

     LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
    
  4. Setup User and Group for Apache:

    As you have configured the Apache document root to your home directory. You will face issues with the permissions because, by default, Apache runs as the user daemon and group daemon (Maybe username and group are to _www). For the personal systems, You can change these to match your user account (replace user_name with your real username), with a group of staff.

      User user_name
      Group staff
    
Step 3 – Deploy Sample Application on Apache

Let’s create a Sites folder in your home directory and create a sample index.html file for the testing.

mkdir ~/Sites 
echo "Welcome" > ~/Sites/index.html 

Restart apache to ensure your configuration changes have taken effect:

sudo apachectl -k restart 

Now, Point your browser to http://localhost, This should display your newly created index.html. All done.

Step 4 – Manage Apache Service

At this point, you have successfully installed the Apache server on macOS. The below-mentioned commands will help you to stop, start, and restart the Apache service at any time.

  • Stop the Apache Server:
    sudo apachectl stop 
    
  • Start the Apache Server:
    sudo apachectl start 
    
  • Restart the Apache Server:
    sudo apachectl restart 
    
Conclusion

This tutorial helped you to install and configure the Apache webserver on the macOS system.

Ref From: tecadmin

Related articles