My dear chaps, you probably were appeased with this topic thinking it was a solved one.. afraid that's far from being so..
Just finished trying everything found turning every stone in sight.. no more unturned stones around, but still Xampp Apache on Win Seven refuses to start.
Here's the full report - Here are the investigation's steps:
- Notice: prior to ensuing steps I installed in a Windows Seven Operating System stand-alone versions of Apache, MySQL and PHP, and they all worked.
- Create and format partition, then install Windows Seven Pro in it; works fine.
- first action immediately after installing Operating System: install Xampp 1.7.3 Win32:
Run its executable, Install Folder: C:\Program Files (x86), automatically runs command line executable asking: Relocate paths? Yes. Portable? No. Start Control Panel? Yes.
Control Panel Opens: fine, all applications not checked as services.
- first test after install:
In Control Panel, press Apache Start button, Control Panel text window says: Busy... Apache started, but no green flag appears to the left of Start button, whic do not turn to Stop.
Notice: first attempt to Start Apache just after boot seems to light the green flag for a second, then it disappears.
Try to install Apache as a service by checking Svc checkbox in XAMPP Control Panel: Pauses then fails.
Try to install Apache as service as above and then reboot. Takes some time to answer, then fails again.
Notice: MySQL runs fine.
- check hosts file: does the Operating System know it has to serve requests for localhost and 127.0.0.1 locally?
Inspect file: C:\Windows\System32\drivers\etc\hosts
here's it, part of:
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
Everything seems to be commented out here.
A little searching about What does 'localhost name resolution handled within DNS' mean, seems to return that "now your browser does not consult hosts file anymore before asking a remote DNS server". Right?
Moreover, as it says it maps IPs to host names, it should follow that IP should work regardless of host names, isn't it?
So this is the conclusion, and please correct me if it's wrong:
if one asks for "localhost", the machine seeks its corresponding IP, regardless of where it seeks it, either in local hosts file or in a remote DNS server; anyway localhost is translated to 127.0.0.1.
and 127.0.0.1 is standard for "this vary machine" anyway.
Just in case, try to uncomment this line: "127.0.0.1 localhost" and reboot, to no avail.
So much for the hosts file, then.
- check port 80: anyone listening here, on HTTP standard port 80?
I know about Skype using port 80 by default and ensuing need to move it to another port. Does not apply here: Xampp is the only application installed here on a clean
Windows Seven just installed.
So: Command Line Prompt\netstat -a
Result: nobody on port 80 here.
It seems Apache cannot start despite port 80 free.
- check further web services: are there other web servers/services running I don't know of - either using port 80 or another?
Check this suggestion: "Stop the service "World Wide Web Publishing Service" because it use port 80.". Start Menu\Run\msconfig\Services sports no such name.
Check a suggested IIS Microsoft Web Server: Control Panel\Programs\Programs and Features\Turn Windows Features on or off. There are two items listed whose name begins
with "Internet Information Services", both of them fully off. Moreover, no "World Wide Web Publishing Service" here.
It reasonably seems no web service alive here.
- check Apache settings: does it listen to localhost/127.0.0.1 port 80?
Inspect file: C:\Program Files (x86)\xampp\apache\conf\http.conf
where there are the following rows:
Listen 80
ServerName localhost:80
DocumentRoot "C:/Program Files (x86)/xampp/htdocs"
on the other hand, no mention at all of 127.0.0.1
Try to change "Listen 80" to "Listen 127.0.0.1:80" to no avail, and then reverse it to original state.
Try to change in httpd.conf Listen directive to :8000, and try it with both Apache checked as Svc and not. Nothing.
Notice httpd.conf file includes lots of further config files into "extra" subfolder, one of them named httpd-xampp.conf.
Hardly a conclusion here: I'm not sure Apache is set to listen to 127.0.0.1 without explictly writing 127.0.0.1 somewhere in its config file.
- check test page: is it there, one never knows..?
indeed, here's it, matching DocumentRoot above: C:\Program Files (x86)\xampp\htdocs\index.html
- try stopping the firewall
stop it for both private and public networks. Nothing.
Notice there is no antivirus installed on this Operating System.
- try program compatibility trouble shooter:
and tell it Xampp is what I'm having problems with.
Start program with applied "Windows compatibility mode: Windows XP (Service Pack 2): Nothing.
Start program with applied "Windows compatibility mode: Windows XP (Service Pack 3): Nothing.
Start program with applied "Windows compatibility mode: Windows Vista: Nothing.
- assorted suggestions, one never knows..
Stop a service called BranchCache: Start Menu\Run\services.exe\a service called BranchCache: originally it is set as Startup: Manual, Status: None. Disabling it and rebooting is of no avail
Stop a service called http.sys: Start Menu\Run\services.exe\ nor Task Manager\Services\: http.sys does not appear to be even present.
add the following registry entry:
1) Launch RegEdit:
2) Go to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
3) Add a new DWORD (32-bit) value
4) Name it ‘NoRun’ not including the quotes
5) Double click the new property
6) In the Value data field type ‘1' not including quotes and click OK
7) Re-boot your computer
No avail.
Try this other registry entry:
1) Launch RegEdit:
2) Go to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
3) Find a DWORD (32-bit) value ‘Start’ not including the quotes
4) Go to the properties
5) In the Value data field type ‘0' not including quotes and click OK (Factory value is 3 - three in figure)
6) Re-boot your computer
No avail.
suggestion: "It appears that Windows 7 has a service called http.sys which starts automatically and uses port 80; set Apache to run as a service so that at boot Apache grabs port 80 before http.sys does."
Start Menu\Run\msconfig\Services and Start Menu\Run\services.exe\ show no http.sys thing. Notice the lists they show are not identical.
suggestion: change port Apache listens on from 80 to another.
tried it to no avail.
Whole stuff starts getting on my nerves..
, particularly in view of the fact that Apache, when previously installed by itself, worked.
Anyhow, this is a riddle that's ought to be solved, so.. any idea?
Quite a lot of thanks in advance..
REFERENCES:
viewtopic.php?f=16&t=37143http://www.cameroncooke.com/2009/01/25/ ... -solution/http://stackoverflow.com/questions/8133 ... he-problemhttp://serverfault.com/questions/4689/w ... itself-whyhttp://stackoverflow.com/questions/1416 ... sp-net-mvc