setup apache2 virtual host | zuhdi.org

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

Hugo. Malte Kiefer & Zuhdi Najib.