Difference between revisions of "VirtualHost"

From The Uniform Server Wiki
Jump to navigation Jump to search
(Moved to new category; Additional grammar and cleanup edits.)
 
Line 1: Line 1:
VirtualHosts are usefull both for setting up [[Subdomain|Subdomains]] and for directing additional domains to your server.  Put simply, they allow a (sub)domain to point to a different DocumentRoot.
+
VirtualHosts are useful both for setting up [[Subdomain|Subdomains]] and for directing additional domains to your server.  Put simply, they allow a (sub)domain to point to a different DocumentRoot.
  
 
== httpd.conf File ==
 
== httpd.conf File ==
At the bottom of the httpd.conf file, located in 'diskw\usr\local\apache2\conf', there is a commented out section on setting up VirtualHosts.  It's relatively self explanatory, but to run down what you need to do, step by step:
+
At the bottom of the httpd.conf file, located in 'usr\local\apache2\conf', there is a commented out section on setting up VirtualHosts.  It's relatively self-explanatory, but to run down what you need to do, step by step:
 +
 
 
First, uncomment the line 'NameVirtualHost *'.  Now, at the very end of the file, paste the following:
 
First, uncomment the line 'NameVirtualHost *'.  Now, at the very end of the file, paste the following:
 
<code>  
 
<code>  
Line 14: Line 15:
 
</code>
 
</code>
  
To break down this example directive line by line:
+
Breaking down this example directive line by line:
 
*'''<VirtualHost *>''' says the following is going to be a VirtualHost.  The asterisk denotes any connection.  If you wanted to limit the VirtualHost to just port 80 (the default HTTP port) you would instead type '<VirtualHost *:80>'.
 
*'''<VirtualHost *>''' says the following is going to be a VirtualHost.  The asterisk denotes any connection.  If you wanted to limit the VirtualHost to just port 80 (the default HTTP port) you would instead type '<VirtualHost *:80>'.
 
*'''ServerAdmin webmaster@example.com''' assigns an administrator email address to the domain.
 
*'''ServerAdmin webmaster@example.com''' assigns an administrator email address to the domain.
 
*'''DocumentRoot /www/example/foobar/''' specifies the path to the document root.  The domain you're setting up will point to this directory of the server.
 
*'''DocumentRoot /www/example/foobar/''' specifies the path to the document root.  The domain you're setting up will point to this directory of the server.
*'''ServerName foobar.example.com''' is the domain name to use.  Obviously, the domain must first be pointed to the Uniform Server.
+
*'''ServerName foobar.example.com''' is the domain name to use.  Obviously, the domain must first be pointed to The Uniform Server.
*'''ErrorLog logs/foobar-error_log''' and '''CustomLog logs/foobar-access_log common''' specify where error log files will be saved.  You can put any directory you want, but a relativly logical naming convention is to put the (sub)domain before the title of the log, as done in this example.
+
*'''ErrorLog logs/foobar-error_log''' and '''CustomLog logs/foobar-access_log common''' specify where error log files will be saved.  You can put any directory you want, but a relatively logical naming convention is to put the (sub)domain before the title of the log, as done in this example.
 
*'''</VirtualHost >''' ends the VirtualHost directive.
 
*'''</VirtualHost >''' ends the VirtualHost directive.
  
Line 25: Line 26:
  
  
[[Category: Support]]
+
[[Category: Apache Configuration]]
[[Category: Troubleshooting ]]
 
[[Category: Application]]
 
[[Category: Development]]
 

Latest revision as of 12:13, 21 June 2013

VirtualHosts are useful both for setting up Subdomains and for directing additional domains to your server. Put simply, they allow a (sub)domain to point to a different DocumentRoot.

httpd.conf File

At the bottom of the httpd.conf file, located in 'usr\local\apache2\conf', there is a commented out section on setting up VirtualHosts. It's relatively self-explanatory, but to run down what you need to do, step by step:

First, uncomment the line 'NameVirtualHost *'. Now, at the very end of the file, paste the following:

<VirtualHost *>
   ServerAdmin webmaster@example.com
   DocumentRoot /www/example/foobar/
   ServerName foobar.example.com
   ErrorLog logs/foobar-error_log
   CustomLog logs/foobar-access_log common
</VirtualHost >

Breaking down this example directive line by line:

  • <VirtualHost *> says the following is going to be a VirtualHost. The asterisk denotes any connection. If you wanted to limit the VirtualHost to just port 80 (the default HTTP port) you would instead type '<VirtualHost *:80>'.
  • ServerAdmin webmaster@example.com assigns an administrator email address to the domain.
  • DocumentRoot /www/example/foobar/ specifies the path to the document root. The domain you're setting up will point to this directory of the server.
  • ServerName foobar.example.com is the domain name to use. Obviously, the domain must first be pointed to The Uniform Server.
  • ErrorLog logs/foobar-error_log and CustomLog logs/foobar-access_log common specify where error log files will be saved. You can put any directory you want, but a relatively logical naming convention is to put the (sub)domain before the title of the log, as done in this example.
  • </VirtualHost > ends the VirtualHost directive.

Repeat the <VirtualHost *> directive for each (sub)domain you wish to set up.