Zach Uram wrote:
On Tue, Sep 9, 2008 at 3:54 PM, André Warnier <[EMAIL PROTECTED]> wrote:
Just a guess :
1) the new entry you have added to /etc/apache2/sites-available (and
sites-enabled) is called e.g. "darcs", which for some reason precedes
"default" in the directory.
2) in the apache.conf, there is something like
Include /etc/apache2/sites-enabled/*
3) so now, when Apache starts, it "includes" the configuration of your new
Virtual Host *before* it includes the "default" Virtual Host.
4) as a result, the default virtual host is no longer "default", but
"darcs", and nothing works anymore like before.
(It is the new default because it is now the first defined virtual host in
your setup)
Check :
rename /etc/apache2/sites-available/darcs to
/etc/apache2/sites-available/xxx (and the same for sites-enabled), and
restart Apache. Does it work again ?
Am I close ?
André
Hi André,
I figured it out before I read your message but yes that seems to be
what happened. I have removed the other terms from
/etc/apache2/sites-available/darcs in ServerAlias so it now has:
<VirtualHost *:80>
ServerName darcs.jesujuva.org
ServerAlias darcs.jesujuva.org
DocumentRoot /var/www/darcs
</VirtualHost>
I restarted apache and it works. Someone had recommended I add those
terms to ServerAlias and that is what screwed me up. This was the
first time I setup a virtual host so I must be careful what *advice* I
apply :-) BTW by ServerName it is the subdomain (ie.
http://darcs.jesujuva.org) and then what is the difference exactly
between that and ServerAlias?
In your above configuration, the ServerAlias is totally unnecessary,
since it is the same as the ServerName.
You would only need ServerAlias if that same virtual server could/should
be accessed using different (valid DNS) hostnames, like
ServerName darcs.jesujuva.org
ServerAlias www.darcs-jesujuva.org
ServerAlias www1.jesujuva.org
etc..
(all of these names in DNS pointing to the same IP address of your server).
Apart from the related tip from Kris about the various virtual server
config files in /etc/apache2/sites-available and
/etc/apache2/sites-enabled, here is what I do to insure that virtual
servers are "included" in the correct order :
# Include the "Generic" site definitions
Include /etc/apache2/sites-enabled/.Generic
NameVirtualHost *:80
# Include the "default server" site definitions
Include /etc/apache2/sites-enabled/.default
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/[^.#]*
The first 2 includes each include a specific file, which I name with a
starting dot (.)
(To make sure of the order in which those files are included)
The final include then includes all the other files (through links in
/etc/apache2/sites-enabled/), whose names do not start with a dot
(because usually, apart from the default server, it does not matter in
which order the virtual hosts are defined).
Since you are new to Virtual Hosts, let me give you some more
information/tips :
1) Everything you put in the Apache configuration file prior to the
"NameVirtualHost" line, are parameters that act as default values for
*all* your Virtual Hosts (including the default Virtual Host).
So whenever a Virtual Host "needs" a parameter value, and it is not
explicitly defined in his own <VirtualHost> section, it will use the
default parameter value as defined before the "NameVirtualHost" line.
After the "NameVirtualHost" line, what you define is individual
"personalities" of your webserver, one personality per <VirtualHost>
section. Any configuration parameter defined there, overrides the
default specified in the main section above.
2) A VirtualHost is not a separate webserver. All Apache "children" are
identical, and are able to "take the personality" of any of the Virtual
Hosts, depending on the request that comes in.
When a request comes in, it is always first given to the "main" Apache
process. That one looks which "Apache child" is currently available,
and passes the request to that one for processing.
The "main" Apache process does not handle requests. It just gets all
the requests, and passes them to children for processing. It also is
the one who decides how many children run, when to start or kill one, etc..
The selected Apache child then looks at the "Host:" header line of the
request to see to which VirtualHost the request "wants to talk", and it
then "takes the personality" of that specific VirtualHost to process the
request. If the child does not find a "Host:" line, or if the name
given in the "Host:" line does not match any of the ServerName or
ServerAlias directives in any of the <VirtualHost> sections, then the
child takes the personality of the default VirtualHost to answer the
request. The default VirtualHost has nothing special, it just happens
to be the first <VirtualHost> section that Apache encounters when it
loads its configuration file.
I just felt like telling you the above because I have the impression
that a misunderstanding of the above is the source of 90% of the
problems encountered by people unfamiliar with Virtual Hosting in
general. I hope it helps you.
André
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: [EMAIL PROTECTED]
" from the digest: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]