Ich habe Stunden damit verbracht herauszufinden, wie man Nginx + Ruby Enterprise Edition + PHP5-fpm und MYSQL installiert. Endlich ist alles installiert und alles scheint gut angefangen zu haben.
Aber aus irgendeinem Grund werden PHP-Dateien nicht verarbeitet.
.html-Dateien funktionieren einwandfrei, aber wenn ich versuche, eine .php-Datei anzuzeigen, sieht es so aus, als ob sie nicht existiert, obwohl dies der Fall ist. Interessanterweise erhalte ich beim Versuch, eine nicht vorhandene HTML-Datei anzuzeigen, eine nette Nginx 404-Nachricht, aber wenn ich eine .php-Datei ansehe, gibt sie mir diese nicht einmal.
Nach meinem Anfängerverständnis sieht es also so aus, als ob entweder etwas mit der Konfiguration nicht stimmt oder Nginx und PHP-fpm nicht miteinander sprechen.
Ich habe mir so viele andere Beispiele für Nginx-Konfigurationsdateien angesehen und bin mir sicher, dass diese Seite in Ordnung ist. Nun ... hier ist sowieso das relevante Bit der conf-Datei:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/eman/$fastcgi_script_name;
include fastcgi_params;
}
Und
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
Jede Hilfe wird sehr geschätzt.
edit : Hier sind die Header, die aus der Test-PHP-Datei " http://eman.id.au/test.php " zurückgegeben werden:
HTTP/1.1 404 Not Found =>
Server => nginx/0.8.54
Date => Thu, 16 Dec 2010 19:30:30 GMT
Content-Type => text/html
Connection => close
X-Powered-By => PHP/5.3.2-1ubuntu4.5ppa5~lucid1
Wenn Sie sich die Header ansehen, mit denen http://eman.id.au/test.php antwortet, werden Sie sehen
X-Powered-By: PHP/5.3.2-1ubuntu4.5ppa5~lucid1
. Dies würde nicht angezeigt, wenn die Anforderung nicht an PHP übergeben würde. Wenn PHP den übergebenen Dateipfad nicht finden kann, wird der Fehler wiederholtNo input file specified.
Da Ihre Site den Header "powered by" ausgibt und den
No input file specified.
Fehler nicht aufweist, liegt der wahrscheinlichste Grund darin, dass Sie einen Fehler in Ihrem PHP-Skript haben und Anzeigefehler deaktiviert sind. Dies führt zu einer leeren Seite und einem Eintrag in Ihrem Fehlerprotokoll. Schauen Sie also dort nach, ob es nicht voll ist.quelle
Ein paar Gedanken:
Benötigt dies einen zusätzlichen Schrägstrich?
NGINX hat auch ein seltsames Caching-Problem. Wenn Sie also die URL in Ihrem Browser ausprobieren, fügen Sie am Ende ein? Random = 12391 hinzu, um eine Aktualisierung zu erzwingen. Ich war 30 Minuten lang verwirrt über eine Konfiguration, nur um festzustellen, dass sie die ganze Zeit funktionierte, aber ich wurde vom Cache gestolpert.
Sie möchten wahrscheinlich auch ein bisschen besser aus Ihrem Standort entkommen (obwohl dies nicht das Problem verursacht, das Sie haben). Es ist eine bessere Übung:
zu
.php $ würde mit einer Anfrage wie yourpagephp übereinstimmen und nicht nur mit yourpage.php
quelle