2016-06-02 13 views
0

Ich habe ein intermittierendes Problem mit dem Fehler fehlgeschlagen schließt Strom öffnen ...intermittierenden - PHP Warning: include failed to open stream: No such file or directory

99,9% der Zeit, die funktioniert perfekt beinhaltet, ist aber Zu Spitzenzeiten des Tages merke ich, dass ich einen Fehler in meinem PHP-Fehlerprotokoll bekomme.

PHP Warning: include ('database.php') failed to open stream: No such file or directory

Ich habe eine Datei mit diesem nur enthalten in ihm seine Werke sehr genau, damit ich weiß, haben wir ganz ein paar tausend Anfragen pro Tag ohne Probleme, aber aus diesen Tausenden von Anfragen scheinen wir etwa 10 pro Tag zu bekommen, die einfach mit dem Fehler PHP fehlschlagen: include ('database.php') konnte den Stream nicht öffnen: Keine solche Datei oder Verzeichnis

Es hat mich verrückt gemacht! - Ich habe etwas gegraben, um zu sehen, was sonst noch vom IIS-Server angefordert wird, und ich kann sehen, dass ich eine separate PHP-Datei aufruft, die nichts mit der obigen Datei zu tun hat. Es zählt einfach die Zeilen in meinem PHP-Fehlerprotokoll und wenn es ein Problem gibt, wird es eine E-Mail senden ....

Ich frage mich, ob aus irgendeinem Grund gibt es eine Art von Datei Prozesslimit, das heißt, wenn das Fehlerprotokoll ist groß genug, um der folgende Code completeing es tut Prozesse Datei an anderer Stelle wie beinhaltet ...

die Basis dieses Codes zu stoppen, etwas zu PHP ist: - wenn aus irgendeinem Grunde

function getLines($file) 
{ 
    $f = fopen($file, 'rb'); 
    $lines = 0; 

    while (!feof($f)) { 
     $lines += substr_count(fread($f, 8192), "\n"); 
    } 

    fclose($f); 

    return $lines; 
} 

$phpcount = getLines("c:/windows/temp/php-errors.log"); 

ich frage mich, Es gibt eine Art von Dateiprozesslimit, das heißt, wenn das Fehlerprotokoll zu groß ist, hat der obige Code Probleme und PHP beendet den Abschluss von Dateiprozessen wo dies mein Problem verursacht ...

+0

Wie hoch ist Ihre Festplattennutzung während dieser Spitzenzeiten? – skrilled

+0

Ich habe gerade die Festplattenauslastung verglichen, als die Fehler aufgetreten sind. Es liegt zwischen 7% und 17%. Es gab ein paar Gipfel woanders aber in der letzten Woche hat nichts 40% überschritten. – MarkB

+1

Mögliches Duplikat von [Fehler beim Öffnen des Streams: Keine solche Datei oder Verzeichnis] ​​(http://stackoverflow.com/questions/36577020/failed-to-open -stream-no-so-file-or-directory) –

Antwort

1

Meine Vermutung ist, dass der Fehler von einem Include in der Datei kommt, die nur ab und zu aufgerufen wird. Es könnte die Datei sein, die die Protokolldateizeilen zählt, oder die Datei, die eine E-Mail sendet.

Nach this checklist scheint der Fehler zu sein, dass die problematische Datei versucht, database.php mit einem relativen Pfad einzuschließen, und das schlägt fehl, da das aktuelle Arbeitsverzeichnis nicht das gleiche ist.

Die Lösung, wie in der Checkliste erwähnt, ist die Verwendung absoluter Pfade.

In jedem Fall sollten Sie absolute absolute Pfade in Ihren Includes verwenden. Es ist sehr wahrscheinlich, das Problem zu lösen.

Verwandte Themen