how to set up virtual host apache code example

Example 1: virtual host apache

# File: /etc/apache2/sites-available/domain1.com.conf

<VirtualHost *:80>

  # Server Name (domain name) and any aliases
  
  ServerName  domain1.com
  ServerAlias www.domain1.com
  
  #OPTIONAL Admin name
  ServerAdmin [email protected]


  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.html
  DocumentRoot /home/demo/public_html/domain1.com/public


  # Custom log file locations, OPTIONAL:
  LogLevel warn
  ErrorLog /var/log/apache2/error-mydomainname.com.log
  CustomLog /var/log/apache2/access-mydomainname.com.log combined

</VirtualHost>

# Enabling:
# sh ~ $
sudo a2ensite domain1.com # Refer to above ServerName!
# The utility may automatically suggest, but run:
sudo /etc/init.d/apache2 reload
# To restart apache!

Example 2: create a virtual host in apache

STEP 1:
# domain: DOMAIN_URL
# public: /var/www/DOMAIN_URL/public_html/public/

<VirtualHost *:80>
	# Admin email, Server Name (domain name), and any aliases
	ServerAdmin admin@DOMAIN_URL
	ServerName  DOMAIN_URL
	ServerAlias DOMAIN_URL
	
	# Index file and Document Root (where the public files are located)
	DirectoryIndex index.html index.php
	DocumentRoot /var/www/DOMAIN_URL/public_html/public/
	<Directory /var/www/DOMAIN_URL/public_html/public/>
        Options Indexes FollowSymLinks
        DirectoryIndex index.php
        AllowOverride All
        Require all granted
        Order allow,deny
        allow from all
	</Directory>
	# Log file locations
	LogLevel warn
	ErrorLog  /var/www/DOMAIN_URL/log/error.log
	CustomLog /var/www/DOMAIN_URL/log/access.log combined
</VirtualHost>


STEP 2: With our virtual host files created, we must enable them. We’ll be 
using the a2ensite tool to achieve this goal.

sudo a2ensite example.com.conf

STEP 3: When you are finished, you need to restart Apache to make these changes
take effect and use systemctl status to verify the success of the restart.

sudo systemctl restart apache2

refrence:
https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-18-04-quickstart