Link to home
Start Free TrialLog in
Avatar of b_rad_wright
b_rad_wrightFlag for United States of America

asked on

adding virtual host to httpd.conf

Hello,

I'm trying to set up an existing site on my WAMP server that uses virtual hosts.  Apache runs fine until I add the code for the virtual hosts to my httpd.conf file.  Once i add it, the server wont start and nothing is added to the error log so I can't figure out why it doesn't work.  Is it a syntax problem?  

This is what I add:
NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot C:\wamp\www\sitesTrunk\vbwww\admin
    ServerName admin.vbwww.tld
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot C:\wamp\www\sitesTrunk\vbwww\main
    ServerName vbwww.tld
    <Location /docs/>
        ForceType application/x-httpd-php
    </Location>
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot C:\wamp\www\sitesTrunk\vbwww\members
    ServerName members.vbwww.tld
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot C:\wamp\www\sitesTrunk\vbwww\files
    ServerName files.vbwww.tld
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot C:\wamp\www\sitesTrunk\vbwww\main\version
    ServerName version.vbwww.tld
</VirtualHost>

Open in new window

Avatar of b_rad_wright
b_rad_wright
Flag of United States of America image

ASKER

PS - I just read that if i'd like localhost to continue to work i'd need to add that to my httpd.conf file and my host file as well so I've done that.  And the ServerNames listed above are already in my host file under the following pattern: 127.0.0.1    files.vbwww.tld

Avatar of arober11
As you've stated, not starting implies you've introduced a syntax error into your httpd.comf

So depending on the Apache version either uses the .exe to syntax checker e.g.

apache.exe -t


else make a copy of you httpd.conf, then remove all but one of the new Virtualhost blocks, start-it and if all ok, stop apache and repeat, adding back one virtualhost at a time till apache fails to start. If it didn't start with the initial block you've located the source of the error.


Oh what's your Listen directive look like e.g. Does it look anything like:

Listen 80
Ok.  I'm not sure what you are referring to on the apache.exe -t or where execute that command.  I'm assuming the command line...

as for the second suggestion, the only virtual host that worked was local host.

I am listening to 80 as well...just like you've listed.  
Ref: "I'm not sure what you are referring to on the apache.exe -t", see: http://httpd.apache.org/docs/1.3/windows.html#signal
I'm new to apache so that doc is over my head.  What dir do i need to execute that command from?  I opened the console, changed dirs to where I have apache placed (C:\wamp\bin\apache\Apache2.2.11) and tried to execute that but cmd doesn't recognize that command.  

I know that is a bit of a rookie issue but I'm not following the doc you linked to...can you dumb it down a bit?
also, shouldn't my attempt at your "plan b" approach have showed us something we need to know?
not sure if this is of consequence but I attempted to run httpd -k start from the bin dir at c:\wamp\bin\apache\Apache2.2.11\bin and it said [error] (os 2) The system cannot find the file specified.  : No installed service named "Apache2.2".

ASKER CERTIFIED SOLUTION
Avatar of b_rad_wright
b_rad_wright
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
So you've used my second solution:


" else make a copy of you httpd.conf, then remove all but one of the new Virtualhost blocks, start-it and if all ok, stop apache and repeat, adding back one virtualhost at a time till apache fails to start. If it didn't start with the initial block you've located the source of the error."

The virtual host definitions do not need to located in a separate file, so your steps b + c are unnecessary, as is your step e as any values outsife the new virtual hos definitions will be inherited, and the directives are optional anyway.


I tried your second solution and it did nothing.  When I did what you suggested, none of them worked so that didn't help because they were all "the source of the error."  Knowing they were all the error didn't move me any further to figuring out how to fix it.  I'm not totally sure why what I did worked but got me to the solution was this article - http://www.infinitedesigns.org/archives/217 - not your suggestions.  

Further, you didn't respond to my additional questions as I was working toward a solution so I haven't awarded partial points or assisted solutions since I took it from broke to fixed all on my own.

Sorry arober11, I'm not gonna award you points.  
You can expect a day or so between posts, as this is a community supported forum, if you require someone to be instantly available to answer your questions you'll need employ an IT professional. The volunteer experts here have jobs / lives, which take precedence.

Anyway the error was obviously in your new entries, and you followed my suggestion of removing your the new entries, then adding them back, till you identified the erroneous <Location> block in your second V-host, so what are you arguing about.

Also as the easiest option of letting Apache test your configuration file for you, per the example I gave / paragraph I linked to, (have included below) was beyond your comprehension:  "I'm new to apache so that doc is over my head." you need to give the experts a chance to compose a reply that is at your level.
Another very useful feature is the configuration files test option. To test the Apache configuration files, run:

    apache -t

This is especially useful following alterations to the configuration files while Apache is still running. You can make the changes, confirm that the syntax is good by issuing the "apache -t" command, then restart Apache with "apache -k restart". Apache will re-read the configuration files, allowing any transactions in progress to complete without interruption. Any new request will then be served using the new configuration.

Open in new window