2010-02-23 3 views
11

Alles lief gut, bis ich AddHandler application/x-httpd-php5s .php in die .htaccess-Datei im Stammverzeichnis meines lokalen Servers (die ich häufig ändere, abhängig von der Site, die ich bin) arbeiten mit). Seit ich das gemacht habe, wenn ich http://localhost:8888 besuche, lädt mein Browser einfach die index.php und es wird überhaupt nicht verarbeitet, nur der rohe Code. Jetzt Ich entfernte diese Zeile aus der. Htaccess-Datei, aber ich habe immer noch dieses Problem.PHP-Dateien werden vom Browser heruntergeladen und nicht vom lokalen Dev-Server verarbeitet (MAMP)

Ich habe festgestellt, dass, wenn ich einen alternativen Eintrag zu meiner Hosts-Datei für 127.0.0.1 den neuen Eintrag verhält sich wie 'localhost' verwendet. Aber wenn ich die obige Zeile zu meinem .htaccess hinzufüge, wird auch dieser neue Host gelöscht. Ich habe versucht, neu zu installieren und seine Caches und alle temporären Dateien zu löschen, die ich finden konnte. Ich habe die httpd.conf-Datei von Apache ohne Erfolg durchsucht.

Also, um klar zu sein: http://localhost:8888 erfährt das obige Problem. Wenn ich einen neuen Eintrag für meine hosts-Datei für 127.0.0.1 hinzufüge, sage "goomba" und die obige Zeile ist nicht im Stammverzeichnis .htaccess (und war noch nie für diesen Host/alias/was auch immer), dann kann ich auf zugreifen . Aber wenn ich diese Zeile zu dem .htaccess hinzufüge, muss ich noch einen weiteren Eintrag zu meiner hosts-Datei hinzufügen, um es zu umgehen , selbst wenn ich diese Zeile aus der .htaccess-Datei entferne.

Mir geht es gut mit einem anderen 127.0.0.1 Alias ​​(Host? Wie heißt das?), Aber es nervt mich, dass dies immer noch gebrochen ist.

Nur um klar zu sein, ich bin auf Mac OS Leopard (aber ich verwende nicht das eingebaute Apache-Setup, sondern MAMP).

Antwort

4

Sie einen MIME-Typ der Anwendung, wo ein Handler (siehe documentation on handlers)

Versuchen Sie stattdessen sein sollte:

AddType application/x-httpd-php5 .php 

EDIT: Wie Sie Cache-Module sind angegeben geladen haben, können Sie nachlesen auf caching und htcacheclean (um den Festplatten-Cache zu löschen). Sie können auch vorübergehend die CacheDisable Direktive verwenden. Eine andere Sache, die Sie auch versuchen könnten, ist die Datei umbenennen, die Sie angefordert haben (z. B. index.php -> index.bak), die Datei erneut im Browser anfordern (sollte jetzt 404), dann zurück und versuchen Sie es erneut.

+0

Ich habe das (und wieder, gerade jetzt) ​​vergebens versucht. Meine httpd.conf hat sowieso schon diese Zeile (minus 5). Mein Problem ist, dass ich trotz der problematischen Zeile in meiner Frage immer noch Probleme habe. Es ist so, als hätte der Server die .htaccess-Datei nur für 'localhost' zwischengespeichert, nicht für andere Hosts, die auf 127.0.0.1 zeigen. Bitte betone meine Frage zur Klarstellung. Trotzdem Danke! – donut

+0

Sind auf dem Server Cache-Module geladen? Ja, die "5" wurde versehentlich hinterlassen – Cez

+0

Es tut: file_cache_module, cache_module, disk_cache_module und mem_cache_module. Wie kann ich diese Caches löschen? Würde eines dieser Probleme dieses Problem verursachen? Vielen Dank! – donut

0

Überprüfen Sie zuerst, ob Ihr Apache-Server läuft. Start-> Run-> cmd und dann Befehl ausführen:

netstat -abn

Lookup dies das Ergebnis für Zeile wie:

TCP 0.0.0.0:8888 0.0.0.0:0 HÖRT 600 [Apache .exe]

Wenn Sie auf Port 8888 (keine Zeile 0.0.0.0:8888) nichts hören können, wird Ihr Apache nicht gestartet. Um herauszufinden, warum es nicht starten kann, sollten Sie das Verzeichnis apache log finden und das error.log untersuchen (haben Sie Ihr PHP vielleicht schon aktualisiert?). Wenn Sie die 0.0.0.0:80 -Hörlinie finden, aber einige andere Software hört dort zu (haben Sie IIS läuft?), Dann sollten Sie diese Software entfernen/rekonfigurieren, um Port 80 freizugeben. Wenn Sie Apache an Port 80 hören, aber immer noch nicht öffnen können Ihre Website und Sie können nicht herausfinden, was das Problem verursacht, indem Sie Apache-Protokolldateien untersuchen, dann ist es mein Datenbankproblem. Überprüfen Sie, ob Ihr MySQL läuft und hört gleichen Befehl, aber Sie sollten für

TCP 0.0.0.0:3306 0.0.0.0:0 ZUHÖREN [mysqld-nt.exe]

suchen, wenn Sie eine solche Linie finden können Dann wird Ihr MySQL-Server nicht ausgeführt. Überprüfen Sie die MySQL-Protokolldateien auf Fehler. Wenn beide Server laufen und Sie keine Ausgabe in Ihrem Browser erhalten können, dann überprüfen Sie Ihre Firewall und Antivirus - sie können Ihre Anfragen blockieren. Hoffe, das hilft;)

+1

ein paar Dinge: Ich bin auf Mac OS Leopard; Der Apache-Server arbeitet für neue Einträge in meiner hosts-Datei. Weitere Informationen finden Sie in den Updates zu meinem Post. Vielen Dank! – donut

2

Vielleicht möchten Sie application/x-httpd-php5 anstelle von application/x-httpd-php5s? (Beachten Sie das Fehlen einer s am Ende.)

+0

Ich versuchte das vergebens. Zuvor funktionierte es einwandfrei, ohne dass irgendetwas in der .htaccess-Datei vorhanden war. – donut

1

Für das gleiche Problem, ich entfernt, um die '5' AddType application/x-httpd-php .php .htm .html

seine Arbeit gut! versuchen

12

Ich hatte ein ähnliches Problem ein paar Mal und Umbenennen der Datei hat nicht für mich arbeiten. Mit OS X Lion fand ich die richtige Konfiguration ist dies:

<IfModule php5_module> 
    AddType application/x-httpd-php .php 
    <FilesMatch \.php$> 
     SetHandler application/x-httpd-php 
    </FilesMatch> 
    AddType application/x-httpd-php-source .phps 
    <IfModule dir_module> 
     DirectoryIndex index.php index.html 
    </IfModule> 
</IfModule> 

Die Magie, die es für mich gemacht Arbeit ist die SetHandler application/x-httpd-php Teil.

Natürlich bearbeiten Sie die <IfModule php5_module> zu Ihrer PHP-Version.

+0

Dies war auch bei OSX Mountain Lion der Fall. – Jack

+3

wo sollte das platziert werden? –

+0

@ToniMichelCabet: Spät zur Party, aber platziere das in '/ etc/apache2/other/php5.conf' und stelle sicher, dass die Hauptkonfiguration des Apache (in'/etc/apache2/httpd.conf') eine unkommentierte Zeile hat (in der Nähe der Unterseite), die lautet: 'Include/etc/apache2/andere/*. Conf. – webtweakers

0

Ich hatte eigentlich ein sehr ähnliches Problem. Alle meine PHP-Dateien wurden heruntergeladen, als ich versuchte zu testen, ob PHP und Apache zusammen arbeiteten. Es stellte sich heraus, dass sie nicht zusammenarbeiteten.

Ich musste PHP deinstallieren, würde ich empfehlen, die gleiche Vorgehensweise und dann neu installieren php nur mit dem Zip-Datei-Download auf php.net, anstatt es mit MAMP zu installieren. Ich denke, mein Problem war, dass ich den PHP-Installer benutzt hatte. Ich empfehle das nicht.

Diese Website half mir sehr, ich hatte ein Problem mit Apache nicht gestartet und während das ist nicht Ihr Problem, löste diese Website sowohl die Apache nicht starten und das Herunterladen von PHP-Dateien Problem und obwohl Sie auf einem sind mac kann es dir auch helfen http://forums.phpfreaks.com/topic/185771-problem-starting-apache-2214-after-installing-php-5212

Hoffe alles funktioniert! Viel Glück!

0

in meinem Fall löschen oder kommentieren Sie "AddHandler php56-cgi .php" in Dateien beteiligt htacces meine Wurzel gelöst es

Beste