{"id":2987,"date":"2025-02-21T13:34:30","date_gmt":"2023-07-06T12:23:15","guid":{"rendered":""},"modified":"2025-02-02T00:46:19","modified_gmt":"2025-02-01T23:46:19","slug":"how-to-configure-apache-virtual-hosts-on-ubuntu-22-04","status":"publish","type":"post","link":"https:\/\/netcloud24.com\/knowledgebase\/how-to-configure-apache-virtual-hosts-on-ubuntu-22-04\/","title":{"rendered":"How to Configure Apache Virtual Hosts on Ubuntu 22.04"},"content":{"rendered":"<p>\u00a0<\/p>\n<\/p>\n<header>\n<h1>\u00a0<\/h1>\n<\/header>\n<article>\n<p>Apache Virtual Hosts allow you to host multiple websites on a single server by using different domains or subdomains. This guide will walk you through configuring Apache virtual hosts on Ubuntu 22.04. Whether you&#8217;re hosting multiple websites on your local machine or a , this tutorial will help you manage multiple sites efficiently.<\/p>\n<section>\n<h2>Step 1: Install Apache Web Server<\/h2>\n<p>If Apache is not already installed on your system, you can install it using the following command:<\/p>\n<pre><code>sudo apt update\r\nsudo apt install apache2 -y<\/code><\/pre>\n<p>Once installed, start and enable Apache to ensure it runs automatically at boot:<\/p>\n<pre><code>sudo systemctl start apache2\r\nsudo systemctl enable apache2<\/code><\/pre>\n<\/section>\n<section>\n<h2>Step 2: Create Directory for Each Website<\/h2>\n<p>For each website you want to host, create a separate directory in the <code>\/var\/www\/<\/code> directory. For example, to host two websites <code>example1.com<\/code> and <code>example2.com<\/code>, run the following commands:<\/p>\n<pre><code>sudo mkdir -p \/var\/www\/example1.com\/public_html\r\nsudo mkdir -p \/var\/www\/example2.com\/public_html<\/code><\/pre>\n<p>Set the correct permissions for these directories:<\/p>\n<pre><code>sudo chown -R $USER:$USER \/var\/www\/example1.com\/public_html\r\nsudo chown -R $USER:$USER \/var\/www\/example2.com\/public_html\r\nsudo chmod -R 755 \/var\/www<\/code><\/pre>\n<\/section>\n<section>\n<h2>Step 3: Create a Sample HTML Page<\/h2>\n<p>For each website, create a sample HTML page to confirm that the virtual host setup is working. For example:<\/p>\n<pre><code>nano \/var\/www\/example1.com\/public_html\/index.html<\/code><\/pre>\n<p>Add the following content to the file:<\/p>\n<pre><code>&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n    &lt;title&gt;Welcome to Example1.com!&lt;\/title&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n    &lt;h1&gt;Success! This is the homepage of Example1.com&lt;\/h1&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/code><\/pre>\n<p>Repeat the process for <code>example2.com<\/code> with a similar file.<\/p>\n<\/section>\n<section>\n<h2>Step 4: Configure Apache Virtual Hosts<\/h2>\n<p>Apache uses configuration files to define virtual hosts. For each domain, create a separate configuration file. For example:<\/p>\n<pre><code>sudo nano \/etc\/apache2\/sites-available\/example1.com.conf<\/code><\/pre>\n<p>Add the following content to configure the first virtual host:<\/p>\n<pre><code>&lt;VirtualHost *:80&gt;\r\n    ServerAdmin admin@example1.com\r\n    ServerName example1.com\r\n    ServerAlias www.example1.com\r\n    DocumentRoot \/var\/www\/example1.com\/public_html\r\n    ErrorLog ${APACHE_LOG_DIR}\/error.log\r\n    CustomLog ${APACHE_LOG_DIR}\/access.log combined\r\n&lt;\/VirtualHost&gt;<\/code><\/pre>\n<p>Create a similar configuration file for the second website:<\/p>\n<pre><code>sudo nano \/etc\/apache2\/sites-available\/example2.com.conf<\/code><\/pre>\n<p>Add the following content:<\/p>\n<pre><code>&lt;VirtualHost *:80&gt;\r\n    ServerAdmin admin@example2.com\r\n    ServerName example2.com\r\n    ServerAlias www.example2.com\r\n    DocumentRoot \/var\/www\/example2.com\/public_html\r\n    ErrorLog ${APACHE_LOG_DIR}\/error.log\r\n    CustomLog ${APACHE_LOG_DIR}\/access.log combined\r\n&lt;\/VirtualHost&gt;<\/code><\/pre>\n<p>Save and close the files.<\/p>\n<\/section>\n<section>\n<h2>Step 5: Enable the Virtual Hosts<\/h2>\n<p>Enable each virtual host configuration file using the <code>a2ensite<\/code> command:<\/p>\n<pre><code>sudo a2ensite example1.com.conf\r\nsudo a2ensite example2.com.conf<\/code><\/pre>\n<p>Disable the default virtual host to avoid conflicts:<\/p>\n<pre><code>sudo a2dissite 000-default.conf<\/code><\/pre>\n<p>Reload Apache to apply the changes:<\/p>\n<pre><code>sudo systemctl reload apache2<\/code><\/pre>\n<\/section>\n<section>\n<h2>Step 6: Set Up Local Hostnames (Optional)<\/h2>\n<p>If you&#8217;re testing the virtual hosts on a local machine, you can modify the <code>\/etc\/hosts<\/code> file to simulate DNS resolution:<\/p>\n<pre><code>sudo nano \/etc\/hosts<\/code><\/pre>\n<p>Add the following lines:<\/p>\n<pre><code>127.0.0.1 example1.com\r\n127.0.0.1 example2.com<\/code><\/pre>\n<p>Save and close the file. You should now be able to access both websites by navigating to <code>http:\/\/example1.com<\/code> and <code>http:\/\/example2.com<\/code> in your browser.<\/p>\n<\/section>\n<section>\n<h2>Step 7: Obtain SSL Certificates with Let&#8217;s Encrypt (Optional)<\/h2>\n<p>To secure your websites with HTTPS, you can use Let&#8217;s Encrypt to obtain free SSL certificates. First, install Certbot:<\/p>\n<pre><code>sudo apt install certbot python3-certbot-apache -y<\/code><\/pre>\n<p>Run the following command to obtain and install SSL certificates for both domains:<\/p>\n<pre><code>sudo certbot --apache -d example1.com -d www.example1.com\r\nsudo certbot --apache -d example2.com -d www.example2.com<\/code><\/pre>\n<p>Certbot will automatically configure your virtual host files to use the SSL certificates.<\/p>\n<\/section>\n<footer>\n<p>You have successfully configured Apache virtual hosts on Ubuntu 22.04. This allows you to host multiple websites on a single server, making it easy to manage different domains. For reliable and scalable hosting solutions, consider using . They offer a variety of hosting services, including <strong>windows virtual private servers<\/strong>, <strong>vps windows hosting<\/strong>, and <strong>windows virtual dedicated server hosting<\/strong>. Whether you&#8217;re looking for <strong>uk vps windows<\/strong> or <strong>windows vps italy<\/strong>, their hosting services provide the performance and flexibility you need for hosting your websites.<\/p>\n<\/footer>\n<\/article>\n<div class=\"post-author-box\" style=\"border-top:1px solid #ddd;margin-top:20px;padding-top:15px;\">\n<p><strong>Author:<\/strong> \u0141ukasz Bodziony<\/p>\n<p><strong>Website:<\/strong> <a href=\"https:\/\/ca.netcloud24.com\" target=\"_blank\" rel=\"dofollow\">Windows VPS<\/a><\/p>\n<p><em>\u0141ukasz Bodziony is the CEO and founder of <a href=\"https:\/\/netcloud24.com\" target=\"_blank\" rel=\"dofollow\">NETCLOUD24<\/a>, a global VPS hosting brand proudly originating from Poland. With extensive experience in cloud computing, virtualization, and server management, he delivers high-performance <strong>Windows VPS<\/strong> and <strong>Remote Desktop Services (RDS)<\/strong> solutions to clients across Europe, North America, and beyond.<\/em><\/p>\n<p><em>His expertise covers a wide range of technologies, including <strong>Microsoft Azure<\/strong>, <strong>Proxmox VE<\/strong>, <strong>Amazon Web Services (AWS)<\/strong>, and numerous other virtualization and cloud platforms.<\/em><\/p>\n<p><em>Beyond running his hosting business, \u0141ukasz also provides <strong>professional paid server configuration and optimization services<\/strong> for companies and individuals. Outside of work, he is dedicated to caring for his children and building a secure future for them.<\/em><\/p>\n<p><em>If you are interested in working with him or need expert assistance with your hosting, cloud environment, or server setup, feel free to reach out via <a href=\"https:\/\/ca.netcloud24.com\" target=\"_blank\" rel=\"dofollow\">Windows VPS<\/a>.<\/em><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0 \u00a0 Apache Virtual Hosts allow you to host multiple websites on a single server by using different domains or subdomains. This guide will walk you through configuring\u2026<\/p>\n","protected":false},"author":1,"featured_media":3421,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[],"tags":[14,12,11,23,20,21,22,17,7,8,6,10,18,19,15,24,16,5,13,9],"class_list":["post-2987","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-cheapvps","tag-cloudvps","tag-hostingvps","tag-rds","tag-rdscal","tag-remotedesktop","tag-remotedesktopvps","tag-servervps","tag-ukvps","tag-virtualserver","tag-vpshosting","tag-vpsserver","tag-vpssolutions","tag-vpswindows","tag-vpswithwindows","tag-windowsrds","tag-windowsserver","tag-windowsvps","tag-windowsvpshosting","tag-windowsvpsuk"],"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/2987","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/comments?post=2987"}],"version-history":[{"count":0,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/2987\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/media\/3421"}],"wp:attachment":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/media?parent=2987"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/categories?post=2987"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/tags?post=2987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}