24

Here is the error I get when booting up Apache2:

 * Starting web server apache2
 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [warn] NameVirtualHost *:80 has no VirtualHosts

I first followed this guide on setting up Apache to host multiple sites:

http://www.debian-administration.org/articles/412

I then found a similar question on ServerFault and tried applying the solution, but it didn't help.

Here is an example of my final VirtualHost config:

<VirtualHost *:80>
    ServerAdmin admin@xxx.com
    ServerName  www.xxx.com
    ServerAlias xxx.com

    # Indexes + Directory Root.
    DirectoryIndex index.html
    DocumentRoot /var/www/www.xxx.com

    # Logfiles
    ErrorLog  /var/www/www.xxx.com/logs/error.log
    CustomLog /var/www/www.xxx.com/logs/access.log combined
</VirtualHost>

with the domain X'd out to protect the innocent :-)

Also, I have the conf.d/virtual.conf file mentioned in the guide looking like this:

NameVirtualHost *

The odd thing is that everything appears to work fine for two of the three sites.

  • Post your complete(!) Apache httpd configuration or at least every NameVirtualHost and <VirtualHost ...> line. – joschi Oct 21 '09 at 15:39
  • You cannot mix the two types on the same ip:port. I've had a setup where I had two ip's, one had massvhost hanging off it, the other had all the regular namebased hosts. More importantly, what is the goal? What are you trying to achieve? What are your constraints? – Marcin Oct 21 '09 at 17:31
29

The IP addresses named with NameVirtualHost have to match the IP address in each VirtualHost element.

Example:

NameVirtualHost *:80
NameVirtualHost *:81

<VirtualHost *:80>
# ...
</VirtualHost>

<VirtualHost *:81>
# ...
</VirtualHost>

# This will not work!
<VirtualHost *>
# ...
</VirtualHost>

Read the Apache Virtual Host documentation for details.

  • Wish I could up vote more than once. They really should call this out more clearly in the documentation. – Alex W Dec 1 '15 at 19:34
13

Replace this:

NameVirtualHost *

With this:

NameVirtualHost *:80
  • 2
    I appreciate the simple answer and wish I could accept both – rcampbell Oct 23 '09 at 14:08
5

Adding to the responses, one thing that i noticed is that you can't run SSL without having explicit declaring the :80 on every NameVirtualHost and VirtualHost directives, apache won't support having:

NameVirtualHost *

and

NameVirtualHost *:443

Mixed up in the same config, you will get errors on apache listening on port zero if you do that.

For me i just added :80 to every host so SSL could work proprietly.

0

Ex:

<VirtualHost 85.25.97.252:80>
ServerName domain.com
ServerAlias *.domain.com
ServerAdmin webmaster@domain.com
DocumentRoot "/var/www/domain.com/httpdocs/"
<Directory "/var/www/domain.com/httpdocs/">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.