J'ai passé des heures à découvrir comment installer Nginx + Ruby Enterprise Edition + PHP5-fpm et MYSQL, enfin tout est installé et tout semble avoir bien commencé.
Mais pour une raison quelconque, les fichiers php ne sont pas traités.
Les fichiers .html fonctionnent bien, mais lorsque j'essaie de visualiser un fichier .php, il semble qu'il n'existe pas, même s'il existe. Fait intéressant, lorsque j'essaie de visualiser un fichier .html qui n'existe pas, j'obtiens un joli message Nginx 404, mais lorsque je regarde un fichier .php, il ne me le donne même pas.
Donc, à ma compréhension pour les novices, il semble que la configuration soit défectueuse, ou que Nginx et PHP-fpm ne se parlent pas.
J'ai regardé autant d'autres exemples de fichiers de configuration nginx et je suis sûr que ce côté des choses va bien. Eh bien ... voici le bit pertinent du fichier conf de toute façon:
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;
}
Et
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;
Toute aide est grandement appréciée.
edit : Voici les en-têtes renvoyés par le fichier de test php " http://eman.id.au/test.php ":
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
Si vous jetez un œil aux en-têtes auxquels http://eman.id.au/test.php répond, vous verrez
X-Powered-By: PHP/5.3.2-1ubuntu4.5ppa5~lucid1
. Cela ne s'afficherait pas si la demande n'était pas transmise à PHP. De plus, si PHP ne peut pas trouver le chemin du fichier qui lui est transmis, il fera écho à l'erreurNo input file specified.
Étant donné que votre site génère l'en-tête powered by et n'a pas l'
No input file specified.
erreur, la raison la plus probable est que vous avez une erreur dans votre script PHP et que les erreurs d'affichage sont désactivées. Cela se traduit par une page vierge et une entrée dans votre journal d'erreurs, alors regardez-y et voyez si elle ne se remplit pas.la source
Quelques pensées:
Faut-il une barre oblique supplémentaire
NGINX a également un peu de mise en cache étrange, donc lorsque vous essayez l'URL dans votre navigateur, ajoutez un? Random = 12391 à la fin pour forcer un rafraîchissement. J'ai été perplexe pendant 30 minutes sur une configuration pour constater que cela fonctionnait tout au long, mais j'étais trébuché par le cache.
Vous voulez aussi probablement échapper un peu mieux à votre position (bien que cela ne cause pas le problème que vous rencontrez), il est préférable de pratiquer:
à
.php $ correspondrait à une demande telle que yourpagephp plutôt que simplement yourpage.php
la source