user1155594
user1155594

Reputation: 315

Apache IP Virtual Hosts

Server has two IPs, fresh centos min install. Apache is working, both ips load Apache test page. both www.domain.com and domain.com resolve to second IP.

I'd like for the first IP (192.168.0.1) to load Apache test page, this is working fine

I want the second IP (192.168.0.2) to load a website in /home/site/www

Currently when we goto domain.com or www.domain.com or 2nd IP it loads apache test page instead of the site, here's our config. Also I have the IPs listed as 192 instead of the real ips. What am I missing? Why isn't 192.168.0.2 loading /home/site/www instead of the Apache test page?

ServerRoot "/etc/httpd"
Listen 80
ServerName 192.168.0.1:80
DocumentRoot "/var/www/html"
<Directory "/var/www/html">

NameVirtualHost 192.168.0.2:80

<VirtualHost 192.168.0.2:80>
DocumentRoot /home/site/www
ServerName mydomain.com
ServerAlias *.mydomain.com
ErrorLog logs/mydomain.com-error_log
CustomLog logs/mydomain.com-access_log common
</VirtualHost>

Update

The Fix

chcon -R --reference=/var/www /home/site/www

SELinux needed the correct permissions set on it, using the reference it copies the same permissions to my new folder

Upvotes: 2

Views: 6902

Answers (2)

Pedro Lobito
Pedro Lobito

Reputation: 98861

Try this:

ServerRoot "/etc/httpd"
Listen 80
ServerName 192.168.0.1:80

NameVirtualHost 192.168.0.1:80
NameVirtualHost 192.168.0.2:80


<VirtualHost 192.168.0.1:80>
DocumentRoot /var/www/html
ServerName mydomain.com  #change accordingly
ServerAlias *.mydomain.com
ErrorLog logs/mydomain.com-error_log
CustomLog logs/mydomain.com-access_log common
</VirtualHost>


<VirtualHost 192.168.0.2:80>
DocumentRoot /home/site/www
ServerName mydomain2.com
ServerAlias *.mydomain2.com
ErrorLog logs/mydomain2.com-error_log
CustomLog logs/mydomain2.com-access_log common
</VirtualHost>

Don't forget to apply the changes on apache. service httpd reload or similar command. Also, make sure the directory /var/www/html has, at least, reading permissions for the apache user.

Upvotes: 4

Ikstar
Ikstar

Reputation: 163

You are missing the NameVirtualHost directive.

  NameVirtualHost 192.168.0.2:80

I would also highly suggest putting in Directory directives in as well.

Upvotes: -1

Related Questions