Apache2 virtual host settings in Ubuntu

Source: Internet
Author: User
Tags plone
Test Environment

* Operating System: Ubuntu 5.10
* Test server address: 10.39.6.59
* Testing machine Domain Name: * .firehare.com

Basic Configuration

We all know that if we want to set multiple domain names or host names on a single machine, we need to use name-based virtual hosts. So how should we set it? This is the problem that this guide is trying to solve. In the/etc/apache2/directory of ubuntu, there is a master configuration file apache2.conf for apache2. In this file, we can see the following line of content:

Include/etc/apache2/sites-enabled/[^. #] *

This line indicates that the file contains all files whose names do not contain the characters "." or "#" in the/etc/apache2/sites-enabled/directory. When we list the files in this directory, we find that there is only one 000-default soft link file. The actual connection is the default file in the/etc/apache2/sites-available Directory, it is not hard to see that the file name does not contain ". "or "#". Therefore, this file must be included in the configuration file apache2.conf. Open this file and find that it is actually a configuration file of the virtual host. However, because the virtual host in this file is *, it is actually a common configuration file. If we want to create a VM, we need to change the file to the following:

Namevirtualhost 10.39.6.59
<Virtualhost 10.39.6.59>
Servername www.firehare.com
Serveradmin ubuntu.firehare@gmail.com

DocumentRoot/var/www/
<Directory/>
Options followsymlinks
AllowOverride none
</Directory>
<Directory/var/www/>
Options indexes followsymlinks Multiviews
AllowOverride none
Order allow, deny
Allow from all
# This directive allows us to have apache2's default start page
# In/apache2-default/, but still have/go to the right place
# Commented out for Ubuntu
# Redirectmatch ^/$/apache2-default/
</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/var/log/apache2/error. Log

# Possible values include: Debug, info, notice, warn, error, crit,
# Alert, emerg.
Loglevel warn

Customlog/var/log/apache2/access. Log combined
Serversignature on

Alias/doc/"/usr/share/doc /"
<Directory "/usr/share/doc/">
Options indexes Multiviews followsymlinks
AllowOverride none
Order deny, allow
Deny from all
Allow from 127.0.0.0/255.0.0.0: 1/128
</Directory>

</Virtualhost>

Next we will analyze the setting statements related to the VM in the above section:

* 'Namevirtualhost 10.39.6.59 ': indicates a name-based virtual host with the IP address 10.39.6.59.
* '<Virtualhost 10.39.6.59> and </virtualhost>': indicates the configuration of a virtual host.
* 'Servername www.firehare.com ': sets the Domain Name of the VM.
* 'Serveradmin ubuntu.firehare@gmail.com ': sets the mail for this VM Administrator
* 'Documentroot/var/www/': sets the main directory path of the VM.
* 'Errorlog/var/log/apache2/error. log': sets error information for this VM.
* 'Customlog/var/log/apache2/access. Log combined': sets the access information of the VM.

In this way, we have configured a virtual host www.firehare.com. However, since this is the default configuration, after apache2 is restarted, no matter whether you enter any Domain Name Pointing to this host in the DNS server, will be directed to the/var/WWW directory pointed to by default configuration www.firehare.com. Unless this domain name is used by other VM configurations, for example, we have configured edunuke.firehare.com to point to the local host and configured the corresponding VM, enter the domain name edunuke.firehare.com and the domain name will be placed in the directory.
Further description

To make it clear, add another virtual host site edunuke.firehare.com. First, create an edunuke file in the/etc/apache2/sites-available/directory. Of course, this file name does not contain the "." or "#" characters. Then edit the file:

<Virtualhost 10.39.6.59>
Servername edunuke.firehare.com
Serveradmin ubuntu.firehare@firehare.com
DocumentRoot "/var/www/edunuke /"
Errorlog "/var/log/apache2/edunuke_errors.log"
Customlog "/var/log/apache2/edunuke_accesses.log" common
</Virtualhost>

The specific meanings of the settings are similar to those above. Then run the following command:

Sudo a2ensite edunuke

In this case, the virtual host site edunuke.firehare.com has been installed. You can also find a soft link to/etc/apache2/sites-enabled/in the/etc/apache2/sites-available/edunuke directory. Next, restart apache2 to run the VM site:

Sudo/etc/init. d/apache2 restart

In this way, if you enter edunuke.firehare.com in the browser, it will be directed to the/var/www/edunuke directory, the input of other domain names pointing to the local machine will be directed to the/var/WWW directory in the default configuration. If you are familiar with apache2, you may ask why it is so troublesome. Is it okay to put it in a file? Why should I use two files? It is actually very simple, because if I want to maintain the edunuke site, I just need to run the command:

Sudo a2dissite edunuke
Sudo/etc/init. d/apache2 restart

You can maintain the edunuke site without affecting the normal operation of other sites.
Advanced Configuration

I talked about the simple virtual host configuration method. This basically satisfies most of our needs. However, if Zope + plone is installed, the above settings are far from enough. Because the Zope + plone structure uses port 80 instead of port 80, We have to perform port redirection. To do this, we have to activate the rewrite and proxy modules. The activation module is very simple. Like the site configuration directory, apache2 also has two modules: mod-available and mod-enabled. All available modules are available in the directory of "mod-available", while the modules that have been installed in apache2 are in the directory of "mod-enabled. Because the rewrite and proxy module configuration boot files are already available in the directory of the mod-available, you just need to install them in apache2. Run the following command:

Sudo a2enmod rewrite
Sudo a2enmod proxy

Then, add the VM site plone.firehare.com, and create a file plone in the/etc/apache2/sites-available/directory similar to that created by the edunuke site. Obviously, this file name does not contain the "." or "#" characters. Then edit the file:

<Virtualhost 10.39.6.59>
Servername plone.firehare.com
Serveradmin ubuntu.firehare@firehare.com
Errorlog "/var/log/apache2/plone_errors.log"
Customlog "/var/log/apache2/plone_accesses.log" common

Rewriteengine on
Rewriterule ^/(. *) http: // 127.0.0.1: 8081/virtualhostbase/HTTP/plone. F... Om: 80/plone/virtualhostroot/$1 [L, P]

<Proxy *>
Order deny, allow
Deny from all
Allow from all
</Proxy>

</Virtualhost>

So that the plone.firehare.com virtual host site is installed, you can enter the http://plone.firehare.com in the address bar in the browser to redirect to the Zope + plone site.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.