Heute Nachmittag werde ich mit meinen Freunden ein Laravel-Projekt entwickeln . Dieses Projekt wurde von meinem Partner entwickelt, daher habe ich eine Kopie auf meinen Computer geklont, aber nachdem ich es konfiguriert hatte, lautete die Meldung „Keine Eingabedatei angegeben“
Zuerst vermutete ich, dass es sich um ein Problem mit dem Quellcode des Projekts handelte, und fügte dann direkt den folgenden Satz am Anfang der Eintragsdatei hinzu; Der gleiche Fehler trat auf, als ich die Website besuchte.
<?php exit(1);
Erklären Sie, dass es sich nicht um ein Problem mit dem Quellcode meines Projekts handelt, und schließen Sie Codeprobleme aus.
Das begann ich zu vermuten Es war ein Problem mit meiner eigenen Umgebung, also begann das Herumwerfen. Ich habe das Projekt gelöscht und ein neues gestartet, aber es hat immer noch nicht funktioniert. Ich habe festgestellt, dass dies das einzige Problem bei diesem Projekt ist. Ich bin mir also sicher, dass es kein Umweltproblem ist.
Erklären Sie, dass es sich nicht um ein Umweltproblem handelt, schließen Sie Umweltprobleme aus
Ich habe auf Baidu gesucht und einige Leute sagten, es könnte ein Problem sein Problem mit Homestead.yaml, aber ich habe es sorgfältig überprüft und keinen Fehler gefunden. Also habe ich es gegoogelt und konnte keinen guten Grund finden.
Fehlerbehebung bei Konfigurationsproblemen virtueller Maschinen
Ich dachte also, es sei kein Umgebungsproblem, kein Programmproblem~~~; Ich sollte in der virtuellen Maschine nachsehen. Schließlich habe ich diesen Fehler im NGNIX-Protokoll gesehen.
2019/05/23 12:31:44 [error] 5085#5085: *1 FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(/home/vagrant/Code/haopai-git/public/index.php) is not within the allowed path(s): (/www/wwwroot/dev.guooo.top/:/tmp/:/proc/) in Unknown on line 0 PHP message: PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0 Unable to open primary script: /home/vagrant/Code/haopai-git/public/index.php (Operation not permitted)" while reading response header from upstream, client: 192.168.10.1, server: hp.hopa.cc, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "hp.hopa.cc"
Als ich den obigen Fehler sah, ging ich auch online, um danach zu suchen. Im Internet wurde hauptsächlich über das Problem der Konfiguration von fastcgi_param in ngnix gesprochen, aber ich glaubte nicht, dass es so war Richtig, denn bei anderen Projekten gab es allein bei diesem Projekt ein Problem. Aus irgendeinem Grund ist mir aufgefallen, dass dieser Ordner nicht auf meinem Computer vorhanden sein sollte, also bin ich zum Projekt gegangen, um nach dieser Zeichenfolge zu suchen, und habe sie schließlich in der Datei .user.ini gefunden Als ich diese Datei entdeckte, wurde mir klar, dass es sein Problem war, also habe ich die Konfiguration in dieser Datei gelöscht. Der Inhalt der Datei lautet wie folgt:
open_basedir=***********
Okay, das Problem ist gelöst.
Nachdem ich zurückgeschaut und darüber nachgedacht habe, hätte ich eigentlich von Anfang an daran denken sollen, mir die NGNIX-Protokolle anzusehen. Ich war schon einmal mit der Datei .user.ini in Berührung gekommen. Damals fiel mir nur ein, dass sie zur Verhinderung von Cross-Site-Angriffen verwendet wurde.
Seit PHP 5.3.0 unterstützt PHP INI-Dateien im .htaccess-Stil auf Verzeichnisbasis. Solche Dateien werden nur von der CGI/FastCGI-SAPI verarbeitet. Diese Funktion macht die htscanner-Erweiterung von PECL überflüssig. Wenn Sie Apache verwenden, hat die Verwendung einer .htaccess-Datei den gleichen Effekt.
Zusätzlich zur Haupt-php.ini scannt PHP auch INI-Dateien in jedem Verzeichnis, angefangen bei dem Verzeichnis, in dem sich die ausgeführte PHP-Datei befindet, bis hin zum Web-Stammverzeichnis ($_SERVER['DOCUMENT_ROOT '] angegeben). Wenn sich die ausgeführte PHP-Datei außerhalb des Web-Root-Verzeichnisses befindet, wird nur dieses Verzeichnis gescannt.
Nur INI-Einstellungen mit den Modi PHP_INI_PERDIR und PHP_INI_USER werden in INI-Dateien im .user.ini-Stil erkannt.
Weitere technische Artikel zu Laravel finden Sie in der Spalte Laravel-Tutorial, um mehr zu erfahren!
Das obige ist der detaillierte Inhalt vonSchwierige Fehlerbehebung „Keine Eingabedatei angegeben.'. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!