Adding virtual host on linux



1. domain added in linode panel

2. create your-domain.com virutal file

<VirtualHost 173.255.202.153:80>
        ServerAdmin [email protected]
        ServerName your-domain.com
        ServerAlias www.your-domain.com
        DocumentRoot /home/your-domain/public_html/
        ErrorLog /home/your-domain/logs/error.log
        CustomLog /home/your-domain/logs/access.log combined
</VirtualHost>

mkdir -p /home/your-domain/public_html
mkdir /home/your-domain/logs

----------------------------------------------------------

to disable default site
a2dissite default

to enable default site
a2ensite default

to enable new virtual host site after creating virtual host file in /etc/apache2/sites-available/your-domain.com run below command
a2ensite your-domain.com

to restart apache2
/etc/init.d/apache2 restart

reload new site without starting new site
/etc/init.d/apache2 reload


Creating self signed certificate to activate the ssl
su - root
mkdir /root/certs && cd /root/certs

Create the certificate:
openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out MyCertificate.crt -keyout MyKey.key

<VirtualHost *:443>
    SSLEngine On
    SSLCertificateFile /etc/ssl/certs/example.com.crt
    SSLCertificateKeyFile /etc/ssl/private/example.com.key
    SSLCACertificateFile /etc/ssl/certs/ca-certificates.crt  #If using a self-signed certificate, omit this line

    ServerAdmin [email protected]
    ServerName www.example.com
    ServerAlias www.example2.com #If using alternate names for a host
      DocumentRoot /var/www/html/example.com/public_html/
    ErrorLog /var/www/html/example.com/log/error.log
    CustomLog /var/www/html/example.com/log/access.log combined
</VirtualHost>

Ensure that the Apache SSL module is enabled, and enable the virtualhost configuration:

a2enmod ssl
a2ensite example.com

service apache2 restart