On 05/02/2013 12:35 PM, John Nichel wrote:
Hi all, I'm setting a new web server that will handle multiple 'satellite' web sites for my place of employment. These sites currently exist on an Apache 1.3 server and the previous admin configured them all in the main httpd.conf file. I want to make this easier to maintain, so I am setting up a config file for each virtual host in /etc/httpd/conf.d (ie satsite1.conf, satsite2.conf, etc.) I'm trying to find a way to determine if "NameVirtualHost 1.2.3.4:80" has already been called in a previously loaded conf file. Looking through the docs, I wasn't able to find what I was looking for in the virtual hosts section, and was hoping someone here had a suggestion. I could just define all the IP's that handle the vhosts in the main config file, but, if for whatever reason, one of those IP addresses doesn't currently have a vhost assigned to it, I get the warning " NameVirtualHost 1.2.3.4:80 has no VirtualHosts". Not an error, I know, but my OCD doesn't like it. :) I thank you in advance for any advice you may have. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx
John,Put the 'NameVirtualHost' directive in the main config file, you only need it once and you'll know it's been called (it's either/or really, you can't use Name based and IP based virtualhosts at the same time). Now for any request not matching one of your virtualhosts (NameVirtualHosts matched against the ServerName and ServerAlias directives as defined inside each virtual host) Apache will default to the virtualhost that was defined (meaning processed first from the config files), so make the first one a 'dummy', 'site map' or the main site.
For example (from my main config apache2.conf for 2.2, yours would be httpd.conf) I have:
# following file has 'Listen 80' directive Include /etc/apache2/ports.conf # for you, 'Listen 80' in httpd.conf # this tells apache to listen on all interfaces NameVirtualHost *# Include the virtual host configurations (/etc/apache2/sites-enabled/vhosts.conf):
Include /etc/apache2/sites-enabled/ which contains entries such as: # First VirtualHost is default #default <VirtualHost *> ServerAdmin <admin-email-address> ServerName example.com ServerAlias www.example.comDocumentRoot "/var/www/default" --------------->(change this to point to where you want mis-directed requests to go)
DirectoryIndex index.php index.htm ErrorLog /var/log/apache2/default-error.log CustomLog /var/log/apache2/default-access.log common ErrorDocument 400 "Quite simply, a Bad Request..."ErrorDocument 404 "I'm really not sure what you're looking for but, it's not here..."
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 Allow from localhost </Location> </VirtualHost> #site 1 <VirtualHost *> ServerAdmin <admin-email-address> ServerName example.com ---------------->(replace this with site 1) ServerAlias www.example.com ----------->(replace this with site 1) DocumentRoot "/var/www/site1" DirectoryIndex index.php index.htm ErrorLog /var/log/apache2/site1-error.log CustomLog /var/log/apache2/site1-access.log common ErrorDocument 400 "Quite simply, a Bad Request..."ErrorDocument 404 "I'm really not sure what you're looking for but, it's not here..."
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 Allow from localhost </Location> </VirtualHost> ...site2, site3, site4 and so on. -- Norman Registered Linux user #461062 -Have you been to www.apache.org yet?- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx