Facebook Twitter Instagram
    TecAdmin
    • Home
    • FeedBack
    • Submit Article
    • About Us
    Facebook Twitter Instagram
    TecAdmin
    You are at:Home»Web Servers»Apache»How To Create Apache VirtualHost in Ubuntu 18.04 & 16.04 LTS

    How To Create Apache VirtualHost in Ubuntu 18.04 & 16.04 LTS

    By RahulNovember 17, 20153 Mins ReadUpdated:July 25, 2019

    Virtual Hosting refers to running multiple domains (or multiple websites) on a single server. The best uses of Virtual Hosting can be seen on shared hosting servers, where thousands of websites hosted on a single server and share the single system resources.

    Advertisement

    This article will help you to create Virtual hosts in Apache2 server on Ubuntu, Debian & LinuxMint systems.

  • Read: Set Up Virtual Hosts in Nginx on Ubuntu
  • 1. Install Apache

    You may skip this option if you already have installed Apache server in your system. If not use the following command to install Apache server on Ubuntu system. Also as a best practice don’t forget to update repositories metadata.

    sudo apt-get update
    sudo apt-get install apache2
    

    Step 2: Create Apache VirtualHost

    In Apache on Ubuntu all the virtual host configuration files are stored under /etc/apache2/sites-available directory. With the new Apache installation you will find a default virtual host file there. Create a new Virtual Host configuration file by copying default file.

    cd /etc/apache2/sites-available/
    sudo cp 000-default.conf site1.example.com.conf
    

    Now Edit new virtual host configuration file and update as per your requirement. My site1.example.com configuration file looks like below.

    vim site1.example.com.conf
    
    <VirtualHost *:80>
            ServerAdmin [email protected]
            ServerName site1.example.com
            DocumentRoot /var/www/site1.example.com/httpdocs
    
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
            </Directory>
            <Directory /var/www/>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride None
                    Order allow,deny
                    allow from all
            </Directory>
    
            ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
            <Directory "/usr/lib/cgi-bin">
                    AllowOverride None
                    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                    Order allow,deny
                    Allow from all
            </Directory>
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
            LogLevel warn
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    

    Now create a directory structure in your system, as per defined in above virtual host, and assign proper ownership and file permission.

    mkdir -p /var/www/site1.example.com/httpdocs
    chmod 755 /var/www/site1.example.com/httpdocs
    chown www-data.www-data /var/www/site1.example.com/httpdocs
    

    Now upload your project files on /var/www/site1.example.com/httpdocs/ directory. For this example we have created a index.html file for testing purpose like below.

    echo "<h1>site1.example.com</h1>" > /var/www/site1.example.com/httpdocs/index.html
    

    Step 3: Enable First Virtual Host

    Now we have successfully created our first virtual host in Apache. Now use the following command to enable this Virtual Host, So that Apache can load this configuration file on next reload.

    a2ensite site1.example.com
    

    Basically this creates a soft link of Virtual Host configuration file in directory /etc/apache2/sites-enabled/. To activate the new configuration, we need to run:

    service apache2 reload
    

    Now you can access http://site1.example.com in your browser. If you don’t have dns configured for your domain, do a local mapping by adding an entry in /etc/hosts files.

     ...
     192.168.1.100  site1.example.com
     ...
    

    Step 4: Create Another Virtual Host

    If you want to add another virtual host on your server, just repeat step 2 and 3 with changing your site name like site2.example.com.

    Enjoy Virtual Hosting!

    a2ensite Apache Apache2 httpd virtualhost
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email WhatsApp

    Related Posts

    CodeIgniter Remove index.php Using .htaccess

    Configuring the Nginx Reverse Proxy in Front of Apache

    Simple Redirects with .htaccess

    View 4 Comments

    4 Comments

    1. István Radics on October 17, 2019 5:15 pm

      Hi, Rahul,
      the second site take me to the apache default page ?
      Can you tell me what did I wrong?
      BR,
      István

      Reply
    2. Robin Chaudhary on July 25, 2019 6:22 am

      i got stuck while copying default configuration host file
      could not get the same result as above.
      can you help me?

      Reply
      • Rahul on July 25, 2019 7:04 am

        Hi Robin, What issue are you facing?

        Reply
    3. YulianD on July 25, 2018 8:46 pm

      gracias por el aporte, me ha sido de gran ayuda.

      Reply

    Leave A Reply Cancel Reply

    Advertisement
    Recent Posts
    • Error: EACCES: permission denied, scandir (Resolved)
    • How To Install Python 3.11 on Ubuntu 22.04 / 20.04
    • How to Install Python 3.11 on Amazon Linux 2
    • An Introduction to the “./configure” Command: Compiling Source Code in Linux
    • How to Install PHP 8.x on Pop!_OS
    Facebook Twitter Instagram Pinterest
    © 2023 Tecadmin.net. All Rights Reserved | Terms  | Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.