PHP nach Softwareupdate kaputt!

MacErik

MacErik

Aktives Mitglied
Thread Starter
Dabei seit
06.09.2002
Beiträge
633
Reaktionspunkte
12
Hallo zusammen,
ich habe gestern System-Updates eingespielt:
"Security Update 2004-08-09" (1.0)
"Java 1.4.2 Update 2" (1.4.2 Update 2)
"Security Update 2004-09-07" (1.1)
"Mac OS X Update" (10.3.5)
Seitdem funktioniert PHP auf dem lokalen Webserver nicht mehr. Dateien mit der Endung .php werden heruntergeladen und nicht angezeigt.
Wenn ich im Terminal "tail /var/log/httpd/error_log" eingebe bekomme ich: "Apache/1.3.29 (Darwin) DAV/1.0.3 PHP/4.3.2 mod_perl/1.26 configured -- resuming normal operations".
Also eigentlich alles OK. Weiß vielleicht jemand Rat?
Danke
Erik
 
Ich denke, dass es eher etwas mit Deinem Browser zu tun hat. Ohne installiertes PHP zeigt er in Deinem Browser-Fenster nämlich nur den Quelltext der .php-Dateien, weil der Parser fehlt.

Wie das zu beheben geht kann ich Dir leider auch nicht sagen. Bei mir funzt alles reibungslos.
 
mach doch mal bitte folgendes im Terminal und poste die Ausgabe:
printf 'HEAD / HTTP/1.0\n\n' | nc -w 10 localhost 80 | grep Server
 
Da ist wohl ungefragt die httpd.conf überschrieben worden! Apache gibt php als Textdateien wieder, solange er nicht durch folgende Zeile:

application/x-httpd-php phtml pht php

veranlasst wird PHP mit der Auswertung zu beauftragen. Zusätzlich muß PHP mit einer LoadModule und einer AddModule-Anweisung in httpd.conf aktiviert worden sein. Schau mal nach, sicher gibt es ein backup Deiner alten httpd.conf! Ist aber schon dreist, daß ein update das überschreibt!
 
@wegus
die Vermutung ist berechtigt, aber ich glaub da noch nicht so recht dran.
Ich habe hier auch nen lokalen WebServer laufen, aber bei mir wurde von den Updates die httpd.conf nicht überschrieben.
 
@maceis:
Die Ausgabe ist folgende:
Server: Apache/1.3.29 (Darwin) DAV/1.0.3 PHP/4.3.2 mod_perl/1.26

@alle:
PHP scheint wohl zu laufen. Richtig komisch finde ich ja, dass die Dateien nicht als Text angezeigt werden, sondern der Browser versucht sie herunterzuladen.
 
in diesem Fall, vermute ich, dass tatsächlich ein Fehler in der httpd.conf vorliegt.
was sagt
httpd -t
?
Welche Einträge hast Du im error_log und im access_log, wenn Du eine php-Datei aufrufst?
Welche Endung verwendest Du für php-Dateien ?
Wie sehen die Einträge in der httpd.conf hinsichtlich php aus ?

Noch ne Frage am Rande:
Wozu hast Du perl aktiv ? AFAIK verwendet man i. d. R. entweder php oder perl.
 
Hallo,
"httpd -t" bringt ein herrliches
Syntax OK
Im error_log und access_log ist nichts Ungewöhnliches zu sehen.
Die php-Einträge in der httpd.conf lauten:

LoadModule php4_module libexec/httpd/libphp4.so

AddModule mod_php4.c

AddHandler server-parsed .php

<IfModule mod_4.c>
# If php is turned on, we repsect .php and .phps files.
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

# Since most users will want index.php to work we
# also automatically enable index.php
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>

Meine php-Dateien enden mit .php.
Perl habe ich übrigens installiert, weil ich bislang eigentlich alles damit gemacht habe. Aber seit ein paar Wochen versuche ich mit auch an MySQL und PHP. Daher läuft (oder lief) momentan beides.

Gruß
Erik
 
entferne mal diese Zeile:
AddHandler server-parsed .php
und starte den Webserver neu.

Dann müsste es wieder funktionieren ;)
 
Hat leider nix gebracht. Das Verhalten ist exakt das gleiche!
Ich habe jetzt mal auf die httpd.conf.default zurückgesattelt. Das da kein php geht ist ja klar, aber der browser versucht immer noch die .php Datei runterzuladen und zeigt nicht den Quelltext an!
Das verstehe ich nicht!
Erik
 
Das überrascht mich.
Ich hatte die Zeile mal spasshalber bei mir eingefügt:
Folge: *.php-Dateien wurden heruntergeladen.
Zeile gelöscht:
*.php Dateien werden ordnungsgemäß angezeigt.
Hast Du auch wirklich den Server nach der Änderung neu gestartet ?
 
Ich habe den ganzen Rechner jetzt zweimal neu gestartet! Nach dem ersten Mal hat sich gar nichts geändert. Nach einem weiteren Neustart geht es jetzt wieder.
Verstehen kann ich es trotzdem nicht richtig. Aber auf jeden Fall vielen Dank für die Hilfe.
Erik
 
Hm, sicher daß der Pfad in dem Apache die httpd.conf sucht noch der Selbe ist ? Ein Anzeigen oder Downloaden von Dateien erfolgt immer dann, wenn Apache die Dateiendung nicht kennt. Da Du aber die nötigen Einträge in der conf hast, werden sie also nicht ausgewertet! Entweder weils eine andere conf gibt, oder weil eine andere Angabe die Zeilen quasi inaktiviert. Entferne mal testweise perl aus der conf-Datei. Ist es dann auch wirklich weg ? Was ist dann mit PHP?
 
@MacErik

ich meine ich hatte mal ein ähnliches Problem bei mir wurde die
libphp4.so mit einer anderen ausgetauscht.
mit der libphp4.so (1177896 Bytes) funzt bei mir..

--

kermit:~ goblin$ cd /usr/libexec/httpd/
kermit:/usr/libexec/httpd goblin$ ls -al
total 8272
drwxr-xr-x 41 root wheel 1394 6 Mar 2004 .
drwxr-xr-x 63 root wheel 2142 15 Sep 06:44 ..
-rw-r--r-- 1 root wheel 8400 15 Dec 2003 httpd.exp
-rwxr-xr-x 1 root wheel 109320 13 Sep 2003 libdav.so
-rwxr-xr-x 1 root wheel 310984 13 Sep 2003 libperl.so
-r-xr-xr-x 1 root wheel 1177896 18 Nov 2003 libphp4.so
-r-xr-xr-x 1 root wheel 1776492 18 Nov 2003 libphp4.so.bak
 
Zurück
Oben Unten