I have two domain names, two ssl certs and two ip addresses. I am trying to configure my apache virtualhost files for them.
First, i commented out all instances of "NameVirtualHost" and "Listen" for ports 80 and 443. Then i did the following with my virtual hosts files.
VirtualHost file for domain1:
NameVirtualHost 1.1.1.1:80 Listen 1.1.1.1:80 Listen 1.1.1.1:443 <VirtualHost 1.1.1.1:80> ServerName domain1.com ... </VirtualHost> <VirtualHost 1.1.1.1:443> ... </VirtualHost>
VirtualHost file for domain2:
NameVirtualHost 2.2.2.2:80 Listen 2.2.2.2:80 Listen 2.2.2.2:443 <VirtualHost 2.2.2.2:80> ServerName domain2.com ... </VirtualHost> <VirtualHost 2.2.2.2:443> ... </VirtualHost>
I had ignored the same error for the 2 months I have had an Ubuntu server. I found this post nicely solved the error. Thank you Michael!. As did you Jay, I found the culprit at /etc/apache2/ports.conf . I tried simply this:
# NameVirtualHost *:80I only commented out that line and no other changes and no more
"NameVirtualHost *:80 has no VirtualHosts"
Somewhere in your configuration, probably in the Apache default configuration file (I think /etc/apache2/httpd.conf
in Ubuntu? someone can correct me in the comments), is a line that looks like:
NameVirtualHost *:80 # Also Listen 80 Listen 443
Comment them out, and in your VirtualHost
configuration files, add:
Listen 111.111.111.111:80 Listen 222.222.222.222:80 # If also using SSL Listen 111.111.111.111:443 Listen 222.222.222.222:443 NameVirtualHost 111.111.111.111:80 NameVirtualHost 222.222.222.222:80
In many default Apache configurations, the Listen
and NameVirtualHost
directives are supplied with wildcards, or globally to apply to all network interfaces. Since you're using multiple IP addresses bound to different configurations, you need to be more specific in your config directives than your distribution's default config file.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With