Setting up name based virtual hosts in Apache is fairly easy. Create a new file in /etc/httpd/conf.d, which on Red Hat will be loaded automatically by /etc/httpd/conf/httpd.conf.
Using the vi editor, I will create the following file.
vi /etc/httpd/conf.d/virtualhosts.conf
The file contents:
Options Indexes FollowSymLinks
AllowOverride FileInfo
Order allow,deny
Allow from all
NameVirtualHost *:80
ServerAdmin webmaster@sample.com
DocumentRoot “/www/docs/www.sample.com”
ServerName www.sample.com
ErrorLog logs/www.sample.com-error_log
CustomLog logs/www.sample.com-access_log common
ServerAdmin webmaster@sample.com
DocumentRoot “/www/docs/www2.sample.com”
ServerName www2.sample.com
ErrorLog logs/www2.sample.com-error_log
CustomLog logs/www2.sample.com-access_log common
ServerAdmin webmaster@sample.com
DocumentRoot “/www/docs/www3.sample.com”
ServerName www3.sample.com
ErrorLog logs/www3.sample.com-error_log
CustomLog logs/www3.sample.com-access_log common
The above configuration file will create three virtual hosts in the /www/docs directory.
If you have selinux enabled, use the following command to make this directory tree readable by Apache–“-R” means recursive.
chcon -R system_u:object_r:httpd_sys_content_t /www
Verify the selinux permissions:
ls -Z /www