Re: Help tracking down a weird error with Apache and local / remote connections.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a common enough setup that it is unlikely to be a bug and more likely to be a configuration error.

cPanel creates VirtualHosts using the IP address of the server. For example, I have a cPanel server running behind NAT, so there are two default virtual hosts:
<VirtualHost 192.168.118.82:80>
    ServerName 192.168.118.82
    DocumentRoot /var/www/html
    ServerAdmin hostmaster@xxxxxxxxxxx
    <IfModule suphp_module>
        suPHP_UserGroup nobody nobody
    </IfModule>
</VirtualHost>
<VirtualHost *>
    ServerName ph04.example.com
    DocumentRoot /var/www/html
    ServerAdmin hostmaster@xxxxxxxxxxx
    <IfModule suphp_module>
        suPHP_UserGroup nobody nobody
    </IfModule>
</VirtualHost>

The actual account Virtual Host uses the IP address in the VirtualHost block, so the default that would be selected would be the one with the IP address:

<VirtualHost 192.168.118.82:80>
  ServerName example.net
  DocumentRoot /home2/example_net/public_html
  ServerAdmin webmaster@xxxxxxxxxxx

would fall back to the first Virtual Host because it is more specific.

If there is a different IP for the website on one of your systems - for example in the hosts file - that would cause it to all back to a different Virtual Host than you expect because the IP doesn't match.

- Y


On Sun, Feb 5, 2017 at 6:44 PM, Spork Schivago <sporkschivago@xxxxxxxxx> wrote:
Yehuda,

Could you please explain what you mean in a little more detail?   I only have one server running Apache and I only have that one DNS server.   I don't really see how my DNS server could be setup in such away where it affects Apache's DocumentRoot's directive...

When I was logged into the remote server running Apache, Apache was serving files from a different directory than it was when I was accessing Apache via my local machine.   I hope that makes sense.   Looking at my Apache conf log, when I was accessing Apache from my local machine, it was acting properly, because I didn't have a VirtualHost setup for the www host, but when I was accessing Apache from the server that was running Apache, it was serving files from the domain.com VirtualHost directory.    ServerAliases have been commented out.   To my knowledge, this should not happen.

I can probably regenerate it.   I've restarted the server and everything, but I was thinking maybe this was some sort of bug and not a misconfigured server.

On Sun, Feb 5, 2017 at 4:47 PM, Yehuda Katz <yehuda@xxxxxxxxxx> wrote:
Did you check your DNS to make sure both systems are resolving to the same IP address?

- Y


On Thu, Jan 26, 2017 at 3:31 PM, Spork Schivago <sporkschivago@xxxxxxxxx> wrote:
I have a bit of a weird problem that I'd like some help tracking down.   I'm pretty sure it's something with Apache.   In my Apache 2.4.25 (cPanel) config file, I have the ServerAliases disabled.   There's a "catch-all" entry for unbound IPs, that look like this:

<VirtualHost *>
    ServerName myhostname.mydomain.com
    DocumentRoot /var/www/html
    ServerAdmin myrealemail@xxxxxxxxxxxxx

    <IfModule suphp_module>
        suPHP_UserGroup nobody nobody
    </IfModule>

</VirtualHost>

Further down, I have a VirtualHost entry for mydomain.com, which has a DocumentRoot of /home/<myusername>/public_html

I setup a test file, /home/<myusername>/public_html/.well-known/acme-challenge/test that says www.mydomain.com-test.

Then I setup another test file, /var/www/html/.well-known/acme-challenge/test that says myhostname.mydomain.com-test

I have .htaccess files in /home/<myusername>/public_html that redirect all traffic to secure ports.   I have cPanel installed and have manually setup subdomains for the various cPanel stuff.

Anyway, when I run the following command on the remote server:
   curl http://www.mydomain.com/.well-known/acme-challenge/test

I see the 301 redirect.   When I run:
   curl https://www.mydomain.com/.well-known/acme-challenge/test
I see the:
   www.mydomain.com-test


However, when I run those commands on my local Linux box instead of the remote server that's running Apache, I see:
  curl http://www.mydomain.com/.well-known/acme-challenge/test
  myhostname.mydomain-test

  curl https://www.mydomain.com/.well-known/acme-challenge/test
  www.mydomain.com-test


It's not just curl, lynx, the command line web browser, does the same thing.   On the remote computer that's running Apache, for some reason, I'm seeing different results than I am when I run the commands on my local Linux box.

Any idea what's going on?

Thanks!

Sincerely,
Ken Swarthout




[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux