Saturday, October 03, 2009

xampp on Vista: Problem Solved

So xampp is cool. When it works. It's everything you need all rolled into an easy-to-install package to turn your computer into a web server. (This is crucial if you are a web developer and are trying to build/debug a web site. You must have one of the computers that is in the same room with you acting as a web server...)

But here's the problem: there's so much junk installed on computers these days that it is quite common to get "port conflicts" with some other piece of installed software. When you try to enable the Apache web server or the MySQL database server that are installed with xampp, sometimes they just won't start up. They seem like they're trying to, but then... nothing.

I googled it. Turn off skype, they say. I don't have Skype, can't be that.

Google again. Turn off the anti-virus. Nope. Not that.

Google again. Turn off World Wide Web Publishing Service. Nope. Not there. Not even listed as a service on my Vista laptop.

For the life of me, I could not see what was opening port 80. I use Process Explorer all the time on Windows. But there are so many things running on my Vista laptop, it would have taken me forever to find port 80 looking through things one at a time. I finally traced it down to a process called "System:4" (process ID 4, that is) by using a tool called Tcpview, from the same very cool cat that keeps Process Explorer in tip top shape. Thanks, Mark.

Finally... google led me to this post saying that I should also turn off "SQL Server Reporting Services (MSSQLServer)". Additionally, I turned off everything else SQL Server related in the services control panel. I really probably don't need them for anything that I actually use. They were "accidentally" installed/activated as a side effect of installing some Visual Studio or SDK, I'm sure...

Whew. Hopefully this helps somebody out. Maybe save you the handful of hours I just donated to the bit bucket.

One more comment: I really do not understand why Skype, WWW Publishing, SQL Reporting, or any of these other things should be grabbing onto port 80. What the heck? Port 80's for a web server. Go away unless you're a web server! Leave me alone so when I want to run a web server, it just works like it's supposed to. Or at least show me something when I go to http://localhost in my browser.

But hey, I'm done ranting. Apache and MySQL are running now. I can run CDash on my Vista laptop again and....

Life is Good (really, it is.... :-)

1 comment:

David said...

Here's another good blog post about getting xampp apache and IIS to co-exist on the same server, leaving IIS with its default settings... How to change xampp apache so that it can serve http and https also, just on alternate ports.