Ik kan zo snel denken aan een paar dingen:
a. Je roept httpd-vhosts.conf niet aan in httpd.conf
Aan het einde van httpd.conf staat (o.a.):
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
Je zult dus het commentaal-teken in de regel #Include conf/extra/httpd-vhosts.conf moeten weghalen, zodat het wordt:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
(en natuurlijk moet httpd-vhosts.conf in de submap
extra staan onder de
conf map én je moet apache herstarten, zie bij b.).
b. Je bent wellicht vergeten om apache te herstarten na je aanpassingen.
c. Niet apache maar andere webserver-software luistert nu op poort 80 op je pc. [Niet waarschijnlijk, maar toch maar even genoemd].
d. Je hebt je aanpassingen wellicht in het verkeerde bestand gezet. Je praat namelijk over het bestand
host, maar ik heb het over
hosts
Je kunt kijken of de httpd.conf / httpd-vhosts.conf 'klopt' d.m.v. de volgende aanroep van httpd.exe in de bin map van apache/xampp:
-t : run syntax check for config files
-M : a synonym for -t -D DUMP_MODULES
-t -D DUMP_MODULES : show all loaded modules
-S : a synonym for -t -D DUMP_VHOSTS
-t -D DUMP_VHOSTS : show parsed settings (currently only vhost settings)
-L : list available configuration directives
-l : list compiled in modules
-h : list available command line options (this page)
-V : show compile settings
-v : show version number
-E file : log startup errors to file
-e level : show startup errors of level (see LogLevel)
-w : hold open the console window on error
-k uninstall : uninstall an Apache service
-k config : change startup Options of an Apache service
-k install : install an Apache service
-k stop|shutdown : tell running Apache to shutdown
-k restart : tell running Apache to do a graceful restart
-k start : tell Apache to start
-n name : set service name and use its ServerConfigFile
-c "directive" : process directive after reading config files
-C "directive" : process directive before reading config files
-f file : specify an alternate ServerConfigFile
-d directory : specify an alternate initial ServerRoot
-D name : define a name for use in <IfDefine name> directives
Options: %s [-v] [-V] [-h] [-l] [-L] [-t] [-S]
%s [-k install|config|uninstall] [-n service_name]
%s [-w] [-k start|restart|stop|shutdown]
%s [-C "directive"] [-c "directive"]
Usage: %s [-D name] [-d directory] [-f file]
In jouw geval zijn dus 2 tests relevant:
httpd.exe -t
httpd.exe -S
Ziet er bij mij zo uit:
C:\Program Files\Apache Software Foundation\Apache2.2\bin>
httpd.exe -t
Syntax OK
C:\Program Files\Apache Software Foundation\Apache2.2\bin>
httpd.exe -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server dummy-host.blah.nl (C:/Program Files/Apache Software Foundation/Apache2.2/conf/extra/httpd-vhosts.conf:28)
port 80 namevhost dummy-host.blah.nl (C:/Program Files/Apache Software Foundation/Apache2.2/conf/extra/httpd-vhosts.conf:28)
port 80 namevhost dummy-host2.blah.nl (C:/Program Files/Apache Software Foundation/Apache2.2/conf/extra/httpd-vhosts.conf:37)
Syntax OK
C:\Program Files\Apache Software Foundation\Apache2.2\bin>
C:\Program Files\Apache Software Foundation\Apache2.2\bin>
Verder is het zo dat als je
http://localhost aanroept dat dan de DocumentRoot instelling van de eerste VirtualHost in je httpd-vhosts.conf wordt gebruikt (als je die tenminste laat aanroepen in httpd.conf), want je hebt geen VirtualHost gedefinieerd voor de 'website' localhost.
# The
first VirtualHost section is used
for all requests that do not
#
match a ServerName or ServerAlias in any <VirtualHost> block.
Als je
http://site1.nl en
http://site2.nl aanroept zouden die de daarbij gedefinieerde websites in httpd-vhosts.conf moeten aanroepen.
Succes,
Tijs.