Seite 1 von 2

Internal Server Error 500 bei bestimmten Beiträgen

Verfasst: 08.09.2004 10:33
von mgutt
Ich habe das Problem, dass wenn ich einen Beitrag editiere, und dann auf absenden gehe, dass dann eine "Internal Server Error" Meldung erscheint.

Das ist aber nur vereinzelnt... und diese Beiträge, wenn es mal einen betrifft, lassen sich nicht mehr editieren.

Bzw. wenn es einen Dateianhang betrifft, dann lädt er diesen nicht hoch.

Bearbeite ich aber den Beitrag im Text, wird die Änderung übernommen, aber trotzdem erscheint die Fehlermeldung.

Ziemlich komische Sache.

Laut Strato kann ich die Dateien überprüfen per Telnet, denn Strato meint, dass in einer php Datei ein Fehler sein muss. Den müsste ich beheben.

Nur welche soll ich alle überprüfen.. posting.php kann es ja eigentlich nicht sein, da es ja nur den bestimmten Beitrag betrifft..

Verfasst: 08.09.2004 19:50
von Acid
Lässt sich denn ein genaues Muster feststellen? Beiträge von bestimmten Usern ? Nur Beiträge mit Anhängsel (vom Attachment MOD?) ?
Du kannst es mal testweise mit originaler posting.php und functions_post.php testen (nicht einzeln testen).

Verfasst: 09.09.2004 12:53
von mgutt
ich kann leider kein schema erkennen. (außer, dass es sich dabei um meine eigenen beiträge handelt)

mit dem attachment mod schein es nichts zu tun zu haben

beim letzten mal war es zwar beim anhängen von dateien.. aber davor war es einfach nur beim editieren vom text.

ich gehe heute abend mal hin und lasse mal die beiden dateien überprüfen.

Verfasst: 18.09.2004 15:55
von mgutt
Hier nur nochmal die Mail von Strato, falls jemand anders auch mal die Probleme kriegen sollte. Ich werde das jetzt erst gleich machen, da ich vorher noch nicht dazu gekommen bin. Da der Fehler sehr selten vorkommt, kann ich auch nicht sofort sagen, ob er behoben werden konnte. Aber ich melde mich, wenn ich näheres weiß. Zur Zeit habe ich stark das Attachment Mod in Verdacht, da es macht was es will.

cu Marc
Sehr geehrter Kunde,

vielen Dank für Ihre Anfrage vom 01.09.2004
Dann hat der Fheler was mit dem Inhalt diese Beitrages zu tun, Sie sollten
versuchen auf einschlägigen Foren dazu Infos zu erhalten, da diese bestimmt Wesentlich genauer sind.

Hier einige nützliche Informationen zu Umgang mit eigenen PHP-Scripten
bei der Fehlermeldung "Internal Server Error" bzw. Fehler 500:

Bedenken Sie bitte das PHP-Scripte, in unseren Webhosting-Paketen, eine Maximale Laufzeit
von 30 Sekunden haben, sind diese überschritten hat dies den Fehler 500 zur Folge.
PHP-Dateien sollen immer im ASCII-Modus übertragen werden. Wenn Sie Ihr
PHP-Script mit dem "Notepad" editiert haben können Sich ausserdem noch Steuerzeichen
"eingeschlichen" haben.
Die Steuerzeichen werden nur direkt am Server sichtbar, verwenden Sie hierzu die
SSH-Verbindung bzw. Telnet.
Wenn Sie mit der Server-Console verbunden sind können Sie folgenden Befehl eingeben:

"less IhrePhpDatei.php" bitte mit Enter abschliessen

Wenn Sie am Ende einer Zeile die Zeichen "^M" vorfinden sind dies Steuerzeichen
welche den Fehler 500 auslösen.

Um eine detailierte Fehlermeldung zu erhalten geben Sie bitte folgende Zeile ein:

"php IhrePhpDatei.php" bitte mit Enter abschliessen

Diese Informationen sollten Sie in die Lage versetzen den Fehler 500
weiter einzugrenzen.
Eine Überprüfung Ihrer eigenen PHP-Scripte ist im Rahmen dieses Supports nicht möglich, bitte haben Sie Verständnis dafür, daß wir nicht Ihre Scripte korrigieren können.

Verfasst: 18.09.2004 16:20
von mgutt
Fehlercheckliste:
Das Script ist korrekt auf den Server übertragen und hat auch keine Fehler, aber im Browser erscheint nicht die gewünschte Ausgabe, sondern der Source-Code des Scripts oder der Browser zeigt das Download-Fenster an. Grund hierfür ist, daß die Ausführung von CGI-Programmen generell nicht möglich ist oder das Script im falschen Verzeichnis steht. Über das richtige Verzeichnis für die CGIs kann nur der Provider Auskunft geben.



Einer der häufigsten Fehler ist immer noch die falsche Übertragung des Scripts per FTP. Das Script muß im ASCII-Modus auf den Server übertragen werden. Wird dies nicht gemacht, bleiben Steuerzeichen am Zeilenende (Newline) übrig. Überprüfen läßt sich das, indem man per Telnet die Datei anschaut (less dateiname), sind nun ^M an den Zeilenenden zu sehen, hat man zwei Möglichkeiten, entweder man entfernt diese per Hand auf dem Unix-System oder man lädt die Datei nochmal per ASCII-Modus auf den Server.



Die zweite große Problematik bei der Installation eines Scripts ist das setzen der entsprechenden Rechten auf dem Unix-System. Die entsprechenden Rechte bei den komplexen Scripts findet man bei der Anleitung. Wichtig ist vorallem, daß das Script Ausführungsrechte besitzt. Eine sehr ausführliche Beschreibung des CHMOD-Befehls habe ich noch separat zusammengestellt.

Sollte das Script auf andere Dateien zugreifen, ist es erforderlich, daß die Zugriffsrechte auch für diese Dateien richtig gesetzt sind. Eine Adressen-Datenbank die von einem Script ausgelesen wird, als auch das Verzeichnis müßen für alle lesbar sein. Wenn ein Script in Dateien schreibt (z.B. Gästebuch), muß die Datei und ihr Verzeichnis zusätzlich für alle Schreib-Rechte haben.



Stimmt bei dem Script der Pfad in der ersten Zeile, der auf den Perl-Interpreter verweist (z.B. #!/usr/local/bin/perl)? Per Telnet kann man am Prompt mit dem Unix-Befehl which perl den Pfad herausfinden.



Ist bei der Ausführung des Scripts ein Fehler aufgetreten, findet man diesen am schnellsten, indem man das Script per Telnet am Prompt ausführt. Der Interpreter gibt dann meistens eine ergiebige Fehlermeldung aus, die einem hilft den Fehler zu korrigieren.

Verfasst: 18.09.2004 16:22
von mgutt
ich gehe folgenden weg:

- MS DOS Eingabeaufforderung (bei XP)
- telnet
- open www.meinedomain.de
- name und pw
- dann will ich den Befehl "less" benutzen..

Aber der sagt "less: command not found"

Und jetzt?

Die Befehle "cat" und "more" sind anscheinend verfügbar.

Verfasst: 18.09.2004 16:34
von mgutt
ok wieder was gefunden:
more "Dateiname" macht das gleiche wie less, hat aber weniger Funktionen. Der Befehl funktioniert aber im Gegensatz zu less auch mit dem Windows - Telnet.
Geht die Überprüfung also auch mit more? Dann mache ich das.

weiteres von Strato:
more
Dieser Befehl zeigt eine Datei seitenweise am Bildschirm. Die Befehlsstruktur ist
more Returntaste
Zur nächsten Seite blättern Sie mit der Leertaste; zeilenweises Blättern ermöglicht die Returntaste. Seitenweise zurück gelangen Sie mit "b".
und wie soll ich jetzt die steuerzeichen "^M" erkennen?.. jetzt sagt nicht alles einzeln durchblättern..

Verfasst: 18.09.2004 16:54
von mgutt
so einen weiteren Weg versucht.

Ich habe mit Dreamweaver nach dem Steuerzeichen "^M" auf meiner lokalen Homepage gesucht und konnte folgende Ergebnisse herausfinden:

[ externes Bild ]

Muss ich diese Zeichen jetzt in all diesen Dateien entfernen, ja?

Verfasst: 18.09.2004 16:58
von mgutt
ok das wird es dann auch nicht sein:

Code: Alles auswählen

/^mysql/
bzw.
das andere script schein wohl genau diese zeichen wohl automatisch aus den language-dateien zu entfernen und kommt deswegen darin vor.

:evil:

Ok, dann brauche ich jetzt wieder Hilfe :wink: Hier war ich stehen geblieben:
und wie soll ich jetzt die steuerzeichen "^M" erkennen?.. jetzt sagt nicht alles einzeln durchblättern

Verfasst: 18.09.2004 17:02
von Leuchte
Es gibt einen schönen Button wo Edit draufsteht..