How to Setup VirtualHosts in Lighttpd Server

Channel: Linux
Abstract: $HTTP["host"] == "site2.tecadmin.net" {$HTTP["host"] == "site1.tecadmin.net" {

VirtualHosting is an implementation of hosting multiple domains on single server. It enabled to utilize maximum resources of server and reduces cost. Now a days mostly all web servers supports virtualhosting environment. In our earlier article we describe to install Lighttpd server on CentOS/RHEL. This article will help you to setup VirtualHosts in Lighttpd server.

For example we are using following domains-

  1. site1.tecadmin.net
  2. site2.tecadmin.net
Step 1: Create Server Document Root

First create folders for both domains (if not exists)

# mkdir -p /sites/vhosts/site1.tecadmin.net/www
# mkdir -p /sites/vhosts/site2.tecadmin.net/www

For testing purpose we are creating an index.html file at both document roots

# echo "Welcome to Site1" > /sites/vhosts/site1.tecadmin.net/www/index.html
# echo "Welcome to Site2" > /sites/vhosts/site2.tecadmin.net/www/index.html
Step 2: Update Main Configuration File

Now edit Lighttpd main configuration file /etc/lighttpd/lighttpd.conf and enable to include virtualhosts files. Uncomment following line by removing starting # symbol.

include_shell "cat /etc/lighttpd/vhosts.d/*.conf"
Step 3: Create VirtualHost Configuration Files

Now start creating virutalhost configuration file for both domains or subdomains, First creating for site1.tecadmin.net

# vim /etc/lighttpd/vhosts.d/site1.tecadmin.net.conf
$HTTP["host"] == "site1.tecadmin.net" {

        server.document-root = "/sites/vhosts/site1.tecadmin.net/public"
        server.errorlog = "/var/log/lighttpd/site1.tecadmin.net.error.log"
        accesslog.filename = "/var/log/lighttpd/site1.tecadmin.net.access.log"
}

Now create configuration file for site2.tecadmin.net

# vim /etc/lighttpd/vhosts.d/site2.tecadmin.net.conf
$HTTP["host"] == "site2.tecadmin.net" {

        server.document-root = "/sites/vhosts/site2.tecadmin.net/public"
        server.errorlog = "/var/log/lighttpd/site2.tecadmin.net.error.log"
        accesslog.filename = "/var/log/lighttpd/site2.tecadmin.net.access.log"
}
Step 4: Verify Configuration and Restart Lighttpd

After making all above configuration, first verify the syntax of all configuration file including main configuration file with

# lighttpd -t -f /etc/lighttpd/lighttpd.conf

Syntax OK

If you found that all syntax is ok, lets restart service

# service lighttpd restart

Now test your both domain in browser and check that you are getting correct content on pages as created in step 1. For more details about VirtualHosts in Lighttpd visit its official site.

Ref From: tecadmin

Related articles