Setup Apache2 Virtual Host
Environment
- Debian 9.7 x64
- Apache HTTP Server 2.4.25
Excerpt https://httpd.apache.org/docs/2.4/en/vhosts/
Log 2019 / 05
1. Install Apache HTTP Server 2.4
root@athos:~# apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade
root@athos:~# apt-get -y --no-install-recommends install apache2
2. Create User
root@athos:~# adduser alpha
root@athos:~# adduser delta
3. Configure DocumentRoot
mkdir -p /var/www/alpha/public_html
mkdir -p /var/www/delta/public_html
chown -R alpha:alpha /var/www/alpha/public_html/
chown -R delta:delta /var/www/delta/public_html/
chmod -R 755 /var/www/
echo alpha > /var/www/alpha/public_html/index.html
echo delta > /var/www/delta/public_html/index.html
root@athos:~# mkdir -p /var/www/alpha/public_html
root@athos:~# mkdir -p /var/www/delta/public_html
root@athos:~# chown -R alpha:alpha /var/www/alpha/public_html/
root@athos:~# chown -R delta:delta /var/www/delta/public_html/
root@athos:~# chmod -R 755 /var/www/
root@athos:~# echo alpha > /var/www/alpha/public_html/index.html
root@athos:~# echo delta > /var/www/delta/public_html/index.html
4. Configure VirtualHost
cat <<EOF > /etc/apache2/sites-available/alpha.conf
<VirtualHost *:80>
ServerName alpha
ServerAlias alpha.athos.host
ServerAdmin webmaster@alpha.athos.host
DocumentRoot /var/www/alpha/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
EOF
root@athos:~# cat <<EOF > /etc/apache2/sites-available/alpha.conf
> <VirtualHost *:80>
> ServerName alpha
> ServerAlias alpha.athos.host
> ServerAdmin webmaster@alpha.athos.host
> DocumentRoot /var/www/alpha/public_html
> ErrorLog ${APACHE_LOG_DIR}/error.log
> CustomLog ${APACHE_LOG_DIR}/access.log combined
> </VirtualHost>
> EOF
cat <<EOF > /etc/apache2/sites-available/delta.conf
<VirtualHost *:80>
ServerName delta
ServerAlias delta.athos.host
ServerAdmin webmaster@delta.athos.host
DocumentRoot /var/www/delta/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
EOF
root@athos:~# cat <<EOF > /etc/apache2/sites-available/delta.conf
> <VirtualHost *:80>
> ServerName delta
> ServerAlias delta.athos.host
> ServerAdmin webmaster@delta.athos.host
> DocumentRoot /var/www/delta/public_html
> ErrorLog ${APACHE_LOG_DIR}/error.log
> CustomLog ${APACHE_LOG_DIR}/access.log combined
> </VirtualHost>
> EOF
5. Enable VirtualHost
root@athos:~# a2ensite alpha.conf
Enabling site alpha.
To activate the new configuration, you need to run:
systemctl reload apache2
root@athos:~# a2ensite delta.conf
Enabling site delta.
To activate the new configuration, you need to run:
systemctl reload apache2
root@athos:~# systemctl reload apache2
root@athos:~# apache2ctl -S
VirtualHost configuration:
*:80 is a NameVirtualHost
default server athos.host (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost athos.host (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost alpha (/etc/apache2/sites-enabled/alpha.conf:1)
alias alpha.athos.host
port 80 namevhost delta (/etc/apache2/sites-enabled/delta.conf:1)
alias delta.athos.host
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/run/apache2/" mechanism=default
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33