Zach Uram wrote:
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, likeOn Tue, Sep 9, 2008 at 3:54 PM, André Warnier <aw@xxxxxxxxxx> 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?
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: users-unsubscribe@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx