HOST MULTIPLE WEBSITES ON A SINGLE SERVER WITH APACHE ON UBUNTU

For hosting multiple website in single server you need first server configure & running.

I am using LINODE hosting for my all website & i have not facing any issue from this.

If you don't have hosting server or you need to change your hosting provider, please refer below link.

Referral URL : https://www.linode.com/?r=74338d15b376adb3cf1e4d38f777fd7251d58d7d

Referral Code : 74338d15b376adb3cf1e4d38f777fd7251d58d7d


For hosting we are going to user Name Based Virtual Hosting.

Name based virtual hosting is commonly used method to host multiple websites on same IP address or single server.

To host two or more websites on a single server follow below steps :


Step 1 : Create a website directory

Create a directory for website :

Use below command for create new directory.

mkdir /var/www/website-example.com

Step 2 : Put files in directory

Now put your code in this directory or create an index.html page with following command.

nano /var/www/website-example.com/index.html

Step 3 : Change directory permission

Next, change the ownership of website-example.com directory to www-data:

chown -R www-data:www-data /var/www/website-example.com

Step 4 : Create a virtual host configuration file

Now, you will need to create an apache virtual host configuration file to run two or more websites.

Create an Apache virtual host configuration file for website-example.com.

Below command will create new file & open for editing.

nano /etc/apache2/sites-available/website-example.com.conf

Add the following lines in opened file, Save and close after editing.

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/website-example.com/
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	<Directory /var/www/website-example.com/>
		AllowOverride All
	</Directory>
	ServerName website-example.com
	RewriteEngine on
	RewriteCond %{SERVER_NAME} =www.website-example.com [OR]
	RewriteCond %{SERVER_NAME} =website-example.com
	RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Step 5 : Enable new site config

Enable the new created virtual host configuration file with the following commands :

a2ensite website-example.com

Step 6 : Restart apache server

Restart apache for new changes.

systemctl restart apache2

Step 7 : Run new website

Now, open your preferred browser and run URL http://website-example.com.

That's all done here.