views:

263

answers:

3

Everything was going great until I added AddHandler application/x-httpd-php5s .php to the .htaccess file in my local server's document root (which I change frequently depending on the site I'm working with). Since I did that when I visit http://localhost:8888 my browser just downloads the index.php and it's not processed at all, just the raw code. Now I removed that line from the .htaccess file but I'm still having this problem.

I've found that if I add an alternative entry to my hosts file for 127.0.0.1 the new entry behaves like 'localhost' used to. But if I add the line above to my .htaccess it knocks out that new host as well. I've tried reinstalling MAMP and clearing its caches and all the temporary files I could find. I surfed through Apache's httpd.conf file all to no avail.

So, to be clear: http://localhost:8888 is experiencing the above problem. If I add a new entry to my hosts file for 127.0.0.1, say 'goomba' and the above line is not in the root .htaccess (and has never been for that host/alias/whatever) then I can access http://goomba:8888 just fine. But if I do add that line to the .htaccess then I have to add yet another entry to my hosts file to get around it even if I remove that line from the the .htaccess file.

I'm fine with using a different 127.0.0.1 alias (host? what is that called?) but it's bugging me that this is still broken.

Just to be clear, I'm on Mac OS Leopard (but I'm not using the built in Apache setup, but MAMP).

A: 

First check if your apache server is running. Start->Run->cmd and then execute command:

netstat -abn

Lookup the result for line like this:

TCP 0.0.0.0:8888 0.0.0.0:0 LISTENING 600 [apache.exe]

If you cant find anything listening on port 8888 ( no 0.0.0.0:8888 line) then your apache is failing to start. To find out why it cant start you should find apache log directory and examine the error.log (may be you have updated your php resently?). If you find 0.0.0.0:80 listening line but some other software is listening there (do you have IIS running?) then you should remove / reconfigure that softure to free port 80. If you have apache listening on port 80 but still cant open your site and you cant figure out what is causing the problem via examining apache log files then it my be database problem. Check if your mysql is running and listening using same command but you should be looking for

TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING [mysqld-nt.exe]

If you cant find such line then your mysql server is not running - check mysql log files for errors. If both servers are running and you cant get any output in your browser then check your firewall and antivirus - they may block your requests. Hope this helps ;)

Sarfraz
A few things: I'm on Mac OS Leopard; the Apache server is working for new entries to my hosts file. Please see the updates to my post for more details. Thanks!
donut
+2  A: 

Perhaps you want application/x-httpd-php5 instead of application/x-httpd-php5s? (Note the lack of an s at the end.)

Amber
I tried that to no avail. Before it was working just fine without anything in the .htaccess.
donut
+1  A: 

You are applying a mimetype where a handler should be (see documentation on handlers)

Try this instead:

AddType application/x-httpd-php5 .php

EDIT: As you have indicated caching modules are loaded, you could read up on caching and htcacheclean (to clear the disk cache). You can also temporarily use the CacheDisable directive. One other thing that you could also try is to rename the file that you have requested (e.g. index.php -> index.bak), request the file again in the browser (should now 404), then revert and try again.

Cez
I've tried that (and again, just now) to no avail. My httpd.conf already has that line (minus the 5), anyways. My problem is that, despite the problematic line mentioned in my question being removed, I'm still having problems. It's like the server has cached the .htaccess file only for `localhost`, not for other hosts that point to 127.0.0.1. Please added emphasis to my question for clarification. Thank you, anyways!
donut
Does the server have any cache modules loaded? Yes, the "5" was left in by accident
Cez
It does: file_cache_module, cache_module, disk_cache_module, and mem_cache_module. How could I clear these caches? Would any of these cause this problem? Thanks!
donut
Simply renaming the file, trying to access it by the old name, and then renaming it again as you described worked like a charm. Thank you!
donut