Install Apache
First, make sure you update the package manager.
sudo apt update sudo apt upgrade sudo apt update
Then, install the apache2 package.
sudo apt install apache2
Now, make sure that apache has access to the webservers public folder. You may need to rerun this, when you add new folders/files to your server.
sudo chown -R pi:www-data /var/www/html/ sudo chmod -R 770 /var/www/html/
To test the installation you can run the following test.
wget -O check_apache.html http://127.0.0.1 cat ./check_apache.html
Create a virtual host
Go to the Apache folder for available sites.
cd /etc/apache2/sites-available
Now create a new file for the vhost you want to create. Use <virtualhost.domain>.conf as name.
sudo nano <virtualhost.domain>.conf
As content you can use the following template and replace the ServerName and DocumentRoot.
<VirtualHost *:80> ServerName <virtualhost.domain> DocumentRoot /var/www/html/<folder> <Directory "/var/www/html/<folder>"> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/<virtualhost.domain>/error.log CustomLog ${APACHE_LOG_DIR}/<virtualhost.domain>/access.log combined </VirtualHost>
Also make sure, that the log directories you defined are already existing. Else Apache will fail to restart in the next step!
sudo mkdir /var/log/apache2/<virtualhost.domain>
Now, enable the new vhost and restart Apache.
sudo a2ensite <virtualhost.domain> sudo service apache2 restart
Connecting to a virtual host from a remote machine
Make sure to update the hosts file with a redirect to the raspberry for the new domain.
To do that navigate to the hosts file and open it.
cd /etc/ sudo nano hosts
Now add the following line and save the file.
<ipOfRaspberryPi> <virtualhost.domain>
Enable mod_rewrite
By default the mod_rewrite is not enabled and thus you can not use .htaccess files to create redirects. To change this execute the following command to enable mod_rewrite for Apache.
sudo a2enmod rewrite
More information can be found here.