Heute erzählte mir plötzlich ein Kollege, dass ein PHP-Skript, das ich für die Ausführung geplanter Aufgaben geschrieben habe, immer nicht ausgeführt werden konnte.
Das Skript selbst ist sehr einfach. Es enthält nur wenige Bibliotheksdateien und führt eine Funktion aus. Diese Funktion wurde an anderer Stelle aufgerufen und es gibt kein Problem. Ich habe lokal über einen Browser auf die Seite zugegriffen und die Ausführung war erfolgreich. Ich vermutete, dass es sich um ein Problem mit der geplanten Aufgabe meines Kollegen handelte. Ich habe die Befehlszeile erneut geöffnet und PHP verwendet, um das Skript direkt auszuführen. Es handelte sich um einen require-Einschlussdateifehler.
Ich weiß nicht, was es verursacht hat, aber dem Fehlerbericht nach zu urteilen, ist der Pfad vermutlich falsch, also hängt er mit dem relativen Pfad zusammen, also habe ich alle relativen Pfade in absolute Pfade geändert und dann ausgeführt, Problem gelöst.
Nach der Suche auf Baidu habe ich herausgefunden, dass bei der Verwendung von PHP zum Ausführen eines Skripts der Speicherort, an dem das Skript ausgeführt wird, der Pfad ist, an dem der PHP-Befehl aktuell ausgeführt wird, sodass der relative Pfad falsch ist. Es gibt zwei Möglichkeiten, das Problem zu lösen:
Erstens: Verwenden Sie absolute Pfade. Dies ist problematischer. Alle enthaltenen Dateien enthalten die Dateipfade, die in direkt enthaltenen Dateien enthalten sind , daher nur nützlich, wenn die ausführbare Datei relativ einfach ist.
2. Verwenden Sie die Funktion chdir, um das aktuelle Ausführungsverzeichnis in das Verzeichnis zu ändern, in dem sich die Datei befindet, chdir(dirname(__FILE__));
Das Obige stellt die ausführbare Datei im PHP-CLI-Modus vor, einschließlich des erforderlichen Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.