J'essaie de configurer un serveur Ubuntu (12.04) fraîchement installé, mais je ne parviens pas à obtenir les fichiers PHP exécutés via php-fpm. Quoi que je fasse, je reçois toujours un "Accès refusé". page (texte brut, pas HTML ou quoi que ce soit).
Paquets installés:
nginx
nginx-common
nginx-full
php5
php5-cli
php5-common
php5-fpm
Détails de la configuration:
PHP-FPM:
user = www-data
group = www-data
listen = /var/run/php5-fpm.sock
Nginx:
user www-data;
worker_processes 3;
events { worker_connections 1024; }
Domaine par défaut/test:
server {
listen 80;
server_name localhost;
root /extra/htdocs/default;
index index.html index.php
access_log /extra/logs/default/access.log;
error_log /extra/logs/default/error.log;
location / {
try_files $uri $uri/ /index.html;
}
location ~ \.php
{
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
/extra/htdocs/default/index.php:
<?php
phpinfo();
Tout le reste est par défaut. Les journaux Nginx et php-fpm ne montrent aucune erreur. Pourtant, lorsque je charge http://<server-ip>/index.php
, la page "Accès refusé" s'affiche.
Dépannage:
/extra
sur www-data
et la propriété sur 777, juste pour être sûr (je l'atténuerai une fois que cela fonctionnera bien sûr). Donc, ce n'est certainement pas un problème d'autorisations.php .html
, avec le même résultat.J'en ai vraiment marre, j'ai déjà installé cette configuration deux fois (bien que sur des machines OSX), et tout a fonctionné parfaitement. Y a-t-il quelque chose que je néglige?
Le contenu du journal:
Le journal des erreurs Nginx est vide.
Journal d’accès Nginx (adresse IP supprimée):
<ip> - - [17/Jul/2012:11:21:25 +0200] "GET /favicon.ico HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"
<ip> - - [17/Jul/2012:11:21:28 +0200] "GET /index.php HTTP/1.1" 403 46 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"
<ip> - - [17/Jul/2012:11:21:34 +0200] "-" 400 0 "-" "-"
journal php-fpm:
[17-Jul-2012 10:44:14] NOTICE: fpm is running, pid 4969
[17-Jul-2012 10:44:14] NOTICE: ready to handle connections
Enfin résolu le.
Le coupable était cette ligne dans ma config:
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
Si j'ai commenté cette ligne, tout a bien fonctionné. Cependant, j'ai vu cela dans presque tous les articles que j'ai lus à propos de la configuration de Nginx, alors ça m'a dérangé. En regardant mes configs pour la millionième fois, j'ai vu que cgi.fix_pathinfo
(dans php.ini
) avait la valeur 0, alors qu'il aurait dû être à 1. La valeur par défaut PHP utilise également 1, j'ai donc dû changer ceci dans mes heures de débogage, parce que je me souviens d'avoir lu à propos de cette valeur et pensais que c'était réglé correctement.
Quoi qu'il en soit, peut-être que cela aide quiconque googler pour ce problème.