Install Apache Web Server on Arch Linux

Install Apache Web Server on Arch Linux

Apache a powerful and the most popular web server. It makes a great choice for anything from a powerful production server to a small personal home server. It is often installed as part of LAMP web service solution stack.

 

Install Apache Web Server

Install from the official repository.

sudo pacman -S apache

 

Configure Apache Web Server

Open the configuration file.

sudo nano /etc/httpd/conf/httpd.conf

Default user and group are set to http and can be changed with User and Group options respectively. Administrator email address is defines with ServerAdmin option. The default location where the web pages are accessed from is /srv/http. This value can be changed with DocumentRoot option in which case <Directory> values should also be changed appropriately.

 

Enable TLS / SSL

Add or uncomment the following lines and save the file.

Listen 443
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include conf/extra/httpd-vhosts.conf

By default the port is set by Listen 80 option. Multiple ports can be listened to by adding an option for each port such as Listen 443 for SSL connections. The last line is optional and can be left commented out. Virtual hosts can instead be added to the main configuration as opposed to the supplementary configuration file.

 

Setup a default Web Directory

Copy the directory directive changing the options and values as needed. Each directory or sub-directory can have it’s own directive with distinct settings.

<Directory "/mnt/web">
    AllowOverride All
    Options Indexes FollowSymLinks
</Directory>

Between the <Directory> tags options can be added that are specific to that directory or all directories if the path is not specified. Options directive can be used to define options like Indexes which allows listing of directories and files or FollowSymLinks which allows symbolic links. If .htaccess files are to be used AllowOverride should be should be set to All otherwise value of None is recommended.

 

If DocumentRoot option was changed to a new directory then create it to store website files.

sudo mkdir /mnt/web

 

Change the owner and group of the document root directory.

sudo chown -R http:http /mnt/web

 

Change the permissions of the document root directory.

sudo chmod -R 775 /mnt/virtual/web

 

Start Apache Web Server

Start the service.

sudo systemctl start httpd

 

Enable the service to run at boot.

sudo systemctl enable httpd

 

Once successfully installed it may be desirable to configure Apache user passwords to prevent unauthorized access to the server. To complete the LAMP server also install MySQL / MariaDB and install PHP. Optionally also install phpMyAdmin.

dom