jbbarnes
asked on
Virtual Hosts not working under RedHat 9.0
I have been successfully hosting three websites on one machine using Apache under Windows 2000. I need to move them to my Red Hat 9 server running Apache 2.0.40. I have three directories set up:
/var/www/abc (for abc.com)
/var/www/xyz (for xyz.com)
/var/www/123 (for 123.com)
with the appropriate web pages inside each one. I have put the following into my httpd.conf:
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@abc.com
DocumentRoot /var/www/abc
ServerName abc.com
ErrorLog logs/abc.com-error_log
CustomLog logs/abc.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@xyz.com
DocumentRoot /var/www/xyz
ServerName xyz.com
ErrorLog logs/xyz.com-error_log
CustomLog logs/xyz.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@123.com
DocumentRoot /var/www/123
ServerName 123.com
ErrorLog logs/123.com-error_log
CustomLog logs/123.com-access_log common
</VirtualHost>
It doesn't work like it did on the Windows server. No matter which of the three sites I try to open in a browser, the first virtual host is used. In this case, abc.com. If I reorder my VirtualHost entries so that the xyz is defined first, then trying to open any one of them always displays the xyz page. Same for 123.
I am connecting with a browser located offsite and reloading each time to ensure I'm getting a fresh page. I am stopping and restarting httpd every time I make a change. I've checked and doublechecked filepaths and consulted every book and online syntax reference I can find. And it worked under Windows. What could be wrong?
P.S. In case it's helpful, here is my entire conf file. I've removed only comments. (Gee whiz, can I pare this down some? Seems like a lot of stuff I don't need, like internationalization or unneeded modules.)
ServerTokens OS
ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
MaxClients 150
MaxRequestsPerChild 1000
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
<IfModule perchild.c>
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
MaxRequestsPerChild 0
</IfModule>
Listen 80
Include conf.d/*.conf
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule auth_anon_module modules/mod_auth_anon.so
LoadModule auth_dbm_module modules/mod_auth_dbm.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule imap_module modules/mod_imap.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect. so
<IfModule prefork.c>
LoadModule cgi_module modules/mod_cgi.so
</IfModule>
<IfModule worker.c>
LoadModule cgid_module modules/mod_cgid.so
</IfModule>
User apache
Group apache
ServerAdmin root@localhost
#ServerName new.host.name:80
UseCanonicalName Off
DocumentRoot "/var/www/html"
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<LocationMatch "^/$>
Options -Indexes
ErrorDocument 403 /error/noindex.html
</LocationMatch>
<IfModule mod_userdir.c>
UserDir disable
</IfModule>
DirectoryIndex index.html index.html.var
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
TypesConfig /etc/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
HostnameLookups Off
ErrorLog logs/error_log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/access_log combined
ServerSignature On
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /manual "/var/www/manual"
<Directory "/var/www/manual">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
</IfModule>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<IfModule mod_cgid.c>
Scriptsock run/httpd.cgid
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
IndexOptions FancyIndexing VersionSort NameWidth=*
AddIconByEncoding (CMP,/icons/compressed.gif ) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .et
AddLanguage fr .fr
AddLanguage de .de
AddLanguage he .he
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddLanguage pl .po
AddLanguage kr .kr
AddLanguage pt .pt
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pt-br .pt-br
AddLanguage ltz .ltz
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw
AddLanguage hr .hr
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw
ForceLanguagePriority Prefer Fallback
AddDefaultCharset ISO-8859-1
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
AddType application/x-tar .tgz
AddHandler imap-file map
AddHandler type-map var
AddOutputFilter INCLUDES .shtml
Alias /error/ "/var/www/error/"
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
<Directory "/var/www/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 400 /error/HTTP_BAD_REQUEST.ht ml.var
ErrorDocument 401 /error/HTTP_UNAUTHORIZED.h tml.var
ErrorDocument 403 /error/HTTP_FORBIDDEN.html .var
ErrorDocument 404 /error/HTTP_NOT_FOUND.html .var
ErrorDocument 405 /error/HTTP_METHOD_NOT_ALL OWED.html. var
ErrorDocument 408 /error/HTTP_REQUEST_TIME_O UT.html.va r
ErrorDocument 410 /error/HTTP_GONE.html.var
ErrorDocument 411 /error/HTTP_LENGTH_REQUIRE D.html.var
ErrorDocument 412 /error/HTTP_PRECONDITION_F AILED.html .var
ErrorDocument 413 /error/HTTP_REQUEST_ENTITY _TOO_LARGE .html.var
ErrorDocument 414 /error/HTTP_REQUEST_URI_TO O_LARGE.ht ml.var
ErrorDocument 415 /error/HTTP_SERVICE_UNAVAI LABLE.html .var
ErrorDocument 500 /error/HTTP_INTERNAL_SERVE R_ERROR.ht ml.var
ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTE D.html.var
ErrorDocument 502 /error/HTTP_BAD_GATEWAY.ht ml.var
ErrorDocument 503 /error/HTTP_SERVICE_UNAVAI LABLE.html .var
ErrorDocument 506 /error/HTTP_VARIANT_ALSO_V ARIES.html .var
</IfModule>
</IfModule>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@abc.com
DocumentRoot /var/www/abc
ServerName abc.com
ErrorLog logs/abc.com-error_log
CustomLog logs/abc.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@xyz.com
DocumentRoot /var/www/xyz
ServerName xyz.com
ErrorLog logs/xyz.com-error_log
CustomLog logs/xyz.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@123.com
DocumentRoot /var/www/123
ServerName 123.com
ErrorLog logs/123.com-error_log
CustomLog logs/123.com-access_log common
</VirtualHost>
/var/www/abc (for abc.com)
/var/www/xyz (for xyz.com)
/var/www/123 (for 123.com)
with the appropriate web pages inside each one. I have put the following into my httpd.conf:
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@abc.com
DocumentRoot /var/www/abc
ServerName abc.com
ErrorLog logs/abc.com-error_log
CustomLog logs/abc.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@xyz.com
DocumentRoot /var/www/xyz
ServerName xyz.com
ErrorLog logs/xyz.com-error_log
CustomLog logs/xyz.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@123.com
DocumentRoot /var/www/123
ServerName 123.com
ErrorLog logs/123.com-error_log
CustomLog logs/123.com-access_log common
</VirtualHost>
It doesn't work like it did on the Windows server. No matter which of the three sites I try to open in a browser, the first virtual host is used. In this case, abc.com. If I reorder my VirtualHost entries so that the xyz is defined first, then trying to open any one of them always displays the xyz page. Same for 123.
I am connecting with a browser located offsite and reloading each time to ensure I'm getting a fresh page. I am stopping and restarting httpd every time I make a change. I've checked and doublechecked filepaths and consulted every book and online syntax reference I can find. And it worked under Windows. What could be wrong?
P.S. In case it's helpful, here is my entire conf file. I've removed only comments. (Gee whiz, can I pare this down some? Seems like a lot of stuff I don't need, like internationalization or unneeded modules.)
ServerTokens OS
ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
MaxClients 150
MaxRequestsPerChild 1000
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
<IfModule perchild.c>
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
MaxRequestsPerChild 0
</IfModule>
Listen 80
Include conf.d/*.conf
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule auth_anon_module modules/mod_auth_anon.so
LoadModule auth_dbm_module modules/mod_auth_dbm.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule imap_module modules/mod_imap.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.
<IfModule prefork.c>
LoadModule cgi_module modules/mod_cgi.so
</IfModule>
<IfModule worker.c>
LoadModule cgid_module modules/mod_cgid.so
</IfModule>
User apache
Group apache
ServerAdmin root@localhost
#ServerName new.host.name:80
UseCanonicalName Off
DocumentRoot "/var/www/html"
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<LocationMatch "^/$>
Options -Indexes
ErrorDocument 403 /error/noindex.html
</LocationMatch>
<IfModule mod_userdir.c>
UserDir disable
</IfModule>
DirectoryIndex index.html index.html.var
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
TypesConfig /etc/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
HostnameLookups Off
ErrorLog logs/error_log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/access_log combined
ServerSignature On
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /manual "/var/www/manual"
<Directory "/var/www/manual">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
</IfModule>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<IfModule mod_cgid.c>
Scriptsock run/httpd.cgid
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
IndexOptions FancyIndexing VersionSort NameWidth=*
AddIconByEncoding (CMP,/icons/compressed.gif
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .et
AddLanguage fr .fr
AddLanguage de .de
AddLanguage he .he
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddLanguage pl .po
AddLanguage kr .kr
AddLanguage pt .pt
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pt-br .pt-br
AddLanguage ltz .ltz
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw
AddLanguage hr .hr
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw
ForceLanguagePriority Prefer Fallback
AddDefaultCharset ISO-8859-1
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
AddType application/x-tar .tgz
AddHandler imap-file map
AddHandler type-map var
AddOutputFilter INCLUDES .shtml
Alias /error/ "/var/www/error/"
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
<Directory "/var/www/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 400 /error/HTTP_BAD_REQUEST.ht
ErrorDocument 401 /error/HTTP_UNAUTHORIZED.h
ErrorDocument 403 /error/HTTP_FORBIDDEN.html
ErrorDocument 404 /error/HTTP_NOT_FOUND.html
ErrorDocument 405 /error/HTTP_METHOD_NOT_ALL
ErrorDocument 408 /error/HTTP_REQUEST_TIME_O
ErrorDocument 410 /error/HTTP_GONE.html.var
ErrorDocument 411 /error/HTTP_LENGTH_REQUIRE
ErrorDocument 412 /error/HTTP_PRECONDITION_F
ErrorDocument 413 /error/HTTP_REQUEST_ENTITY
ErrorDocument 414 /error/HTTP_REQUEST_URI_TO
ErrorDocument 415 /error/HTTP_SERVICE_UNAVAI
ErrorDocument 500 /error/HTTP_INTERNAL_SERVE
ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTE
ErrorDocument 502 /error/HTTP_BAD_GATEWAY.ht
ErrorDocument 503 /error/HTTP_SERVICE_UNAVAI
ErrorDocument 506 /error/HTTP_VARIANT_ALSO_V
</IfModule>
</IfModule>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@abc.com
DocumentRoot /var/www/abc
ServerName abc.com
ErrorLog logs/abc.com-error_log
CustomLog logs/abc.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@xyz.com
DocumentRoot /var/www/xyz
ServerName xyz.com
ErrorLog logs/xyz.com-error_log
CustomLog logs/xyz.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@123.com
DocumentRoot /var/www/123
ServerName 123.com
ErrorLog logs/123.com-error_log
CustomLog logs/123.com-access_log common
</VirtualHost>
ASKER
This isn't actually very specific to my problem, as it comes from another issue of someone trying to do the reverse. Can someone actually point out in the conf file snippet I included what I'm doing wrong? As far as I can see, I have these entries ( ServerName, etc.) included. I'm using *'s for the IPs, as the documentation allows, and the VirtualHosts do have DNS records.
What changes would someone suggest making to the following?
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@abc.com
DocumentRoot /var/www/abc
ServerName abc.com
ErrorLog logs/abc.com-error_log
CustomLog logs/abc.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@xyz.com
DocumentRoot /var/www/xyz
ServerName xyz.com
ErrorLog logs/xyz.com-error_log
CustomLog logs/xyz.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@123.com
DocumentRoot /var/www/123
ServerName 123.com
ErrorLog logs/123.com-error_log
CustomLog logs/123.com-access_log common
</VirtualHost>
What changes would someone suggest making to the following?
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@abc.com
DocumentRoot /var/www/abc
ServerName abc.com
ErrorLog logs/abc.com-error_log
CustomLog logs/abc.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@xyz.com
DocumentRoot /var/www/xyz
ServerName xyz.com
ErrorLog logs/xyz.com-error_log
CustomLog logs/xyz.com-access_log common
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@123.com
DocumentRoot /var/www/123
ServerName 123.com
ErrorLog logs/123.com-error_log
CustomLog logs/123.com-access_log common
</VirtualHost>
are you accessing your webpages by typing "abc.com", "xyz.com", and "123.com" or by typing "www.abc.com", etc.
you may want to put:
ServerName www.abc.com
instead of
ServerName abc.com
for the 3 sites.
you may want to put:
ServerName www.abc.com
instead of
ServerName abc.com
for the 3 sites.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
The ServerAlias tip solved the problem. It was not necessary when running under Windows, but seems to be when running under Linux.
Now, you need to do a bit more on you httpd.conf:
1. make sure that your mainhost, ServerName, DocumentRoot ..... are defined (you can
use the same IP as the other VirtualHosts
eg:
ServerName tiger.bush.us.com
......
2. Define your mainhost as a VirtualHost as well (you can put it as your first VirtualHost,
just make a few records for the mainhost)
eg
<VirtualHost 123.1.123.111>
ServerName tiger.bush.us.com
ServerAlias tiger.bush.us.com
DocumentRoot "/yourdoc-root"
ScriptAlias /cgi-bin/ "/your-path-to/cgi-bin/"
<Directory "/www/docs/headcase/cgi-bi
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
# then put your other VirtualHost
3. Make sure that you have a DNS record for the VirtualHosts.
Have a look at the following page for more details:
http://oldlook.experts-exchange.com/questions/20772540/Trouble-with-Virtual-Hosts-Moving-From-Linux-to-Win32.html