PHP Scheitert an require_once

Ich habe ein PHP-script enthält ( oder 'erfordert' ) eine Reihe von anderen Skripts aus. Dies ist effektiv für den Import aller meiner Klassen. Was ich bin, die Begegnung wird eine HTTP 500-Fehlermeldung. Ich habe durchgesiebt und auskommentierten code Stück für Stück zu bestimmen, dass es andernfalls auf das require_once in einer meiner Dateien.

Hier ist der code:

index.php:

<?php
require_once("std/classes.php");
?>

Und std/classes.php:

<?php
RequireStandards();
RequireAddons();

function RequireStandards( )
{
    $ClassFiles = scandir("classes/standard");

    foreach( $ClassFiles as $ClassFile )
    {
        if( $ClassFile == "." || $ClassFile == ".." )
            continue;

        //require_once("classes/standard/" . $ClassFile );
    }
}

function RequireAddons()
{
    $ClassFiles = scandir("classes");

    foreach( $ClassFiles as $ClassFile )
    {
        if( $ClassFile == "." || $ClassFile == ".." || $ClassFile == "standard" )
            continue;

        //require_once("classes/" . $ClassFile );
    }
}

?>

Dieser code funktioniert wie es sitzt, aber sobald ich die Auskommentierung der erfordert, schlägt fehl. Was mir auffällt, wie seltsam ist, dass ich viel von anderen Websites auf diesem server, die Handlung in fast identischer Weise.

Fühle ich mich als ob ich irgendwie mein PHP-error-reporting deaktiviert... was ich nicht weiß, wie Sie sich wieder einschalten, da ich nur ein Upgrade auf PHP 5.3. Ich würde normalerweise erwarten, dass ein "couldnt open file' oder so in meinem browser, wenn PHP daran gescheitert ist.

Vielleicht könnte jemand mir sagen, warum das treten zurück ein HTTP 500, oder vielleicht gerade wie zu re-enable Fehlerberichterstattung. Es wäre sehr geschätzt werden; dies scheint einfach nicht zu viel Sinn.

  • Können Sie konsultieren Sie Ihren server-logs?
  • Ist Ihre Klasse Ordner in das root-Verzeichnis? Versuchen Sie, ein "/" vor dem Unterricht? Nur eine Vermutung.
  • vielleicht ein problem mit dem include-Pfad php.net/manual/en/function.set-include-path.php
  • Es ist besser $_SERVER['DOCUMENT_ROOT'] . '/classes/standard/;
  • Dies sind alle gültigen Kommentare - es stellte sich heraus, dass die relativen Pfade, die waren in Ordnung, die in XAMPP nicht übersetzen, so gut über IIS. Nach der re-Aktivierung der php-error-reporting habe ich es geschafft, herauszufinden, was diese waren, und korrigieren Sie Sie. Es scheint, dass die Datei-IO sich ein wenig geändert vom 4.?.? 5.3.
Schreibe einen Kommentar