Immer über den "Die Seite kann nicht angezeigt werden, da ein interner server Fehler aufgetreten.", ohne eine option zu aktivieren, Fehler-reporting

Ich habe ein wirklich blödes problem und ich habe keine Ahnung wie es zu lösen. Einer meiner Kunden wollte mir ein einfaches PHP-Skript auf seiner website, die gehostet wird auf einem Windows/PHP shared-hosting.

Das problem ist, dass Sie die Fehlerberichterstattung deaktiviert und ich habe keinen Zugriff auf error-logs. Das einzige, was ich bekommen hab ist

Die Seite kann nicht angezeigt werden, da ein interner server Fehler aufgetreten.

Habe ich versucht,

<?php
error_reporting(E_ALL);
ini_set('display_errors','On');

foreach(1 as $i);
?>

aber es ändert nichts, ich bin noch immer generische 500 Fehler. Gibt es irgendeinen anderen Weg, um PHP-Fehlermeldungen angezeigt? Die hosting-tech-Unterstützung ist vollständig non-responsive, aber ich möchte das irgendwie lösen, auch mit einigen Hack, was bedeutet, dass ich egal, wie schmutzig die Lösung ist, alle die mir wichtig ist, dass ich die Fehlermeldung im detail.

Ich habe versucht, hinzufügen von benutzerdefinierten error-handler Euch vorgeschlagen, aber ich bin noch immer die 500 Seiten und keine-Fehler-log geschrieben

<?php
date_default_timezone_set("Europe/Prague"); //tried commenting this line out, didn't help

function fileLogHandler($errno, $errstr, $errfile, $errline) {
    $logFile = "error.log";
    $f = fopen($logFile, "a") or die("Couldn't open log file for write");
    fwrite($f, strftime("%c") . " $errstr on line $errline\nin file $errfile\n\n");
}

set_error_handler("fileLogHandler");

foreach(1 as $i);
?>

Wenn, führe ich diese auf meinem lokalen Rechner funktioniert es wie erwartet

$ php -f test.php  && cat error.log 
Fri Oct 28 15:40:14 2011 Invalid argument supplied for foreach() on line 12
in file /Users/darth/Sites/shalamar/test.php

aber es funktioniert nicht auf der host-Maschine ...

Versuchte ich zu dumm, sich die ganze Skript zu

<?php
$logFile = "error.log";
$f = fopen($logFile, "a");
fwrite($f, "Hi");
?>

endete merken, dass ich wahrscheinlich nicht schreiben Berechtigungen in den Ordner. Das problem ist, es ist ein windows server und wenn ich versuche, ändern Sie die Rechte über FileZilla, bekomme ich die schöne

Command:    SITE CHMOD 666 error.log
Response:   500 'SITE CHMOD 666 error.log': command not understood

Ich habe versucht zu google, und wie es aussieht, kann ich nicht die Datei-Berechtigungen per FTP.

Senden das Protokoll über die E-Mail endet auch in 500 Fehler

mail("[email protected]", "Voice of desperation");

Anregungen jetzt?

Update: vielen Dank für alle Vorschläge bisher, aber ich fand heraus, dass ich nicht einmal Zugriff auf das Dateisystem, so kann ich nicht schreiben in eine log-Datei. Mindestens das ist, was es sieht so aus, also Sprach ich mit dem tech-support-Leute, und Sie sagen, Sie sehen in ihm innerhalb der nächsten Woche.

  • Es könnte sein, weil das ganze Skript geparst wird, bevor Sie ausgeführt wird. Versuchen Sie, das error_reporting und ini_set Aufrufe an das Ende des Skripts.
  • Haben Sie versucht,, um eine benutzerdefinierte error handler? php.net/manual/en/function.set-error-handler.php
  • ach ja, habe ich, aber ich habe keinen Zugriff auf das Dateisystem und ich kann keine E-Mails senden ... bereits per E-Mail-tech-support und geben Sie mir schreiben zugreifen, denn sonst sehe ich keine Lösung möglich
InformationsquelleAutor Jakub Arnold | 2011-10-28
Schreibe einen Kommentar