J'ai configuré un serveur nginx avec php5-fpm. Lorsque j'essaye de charger le site, j'obtiens une page vierge sans erreur. Les pages HTML sont servies correctement mais pas en PHP. J'ai essayé d'activer display_errors dans php.ini mais pas de chance. php5-fpm.log ne produit aucune erreur et nginx non plus.
nginx.conf
server {
listen 80;
root /home/mike/www/606club;
index index.php index.html;
server_name mikeglaz.com www.mikeglaz.com;
error_log /var/log/nginx/error.log;
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
ÉDITER
voici mon journal des erreurs nginx:
2013/03/15 03:52:55 [error] 1020#0: *55 open() "/home/mike/www/606club/robots.txt" failed (2: No such file or directory), client: 199.30.20.40, server: mikeglaz.com, request: "GET /robots.txt HTTP/1.1", host: "mikeglaz.com"
connect() failed ... fastcgi://127.0.0.1:9000
contredit votre conf nginx, recharger nginx conf?Réponses:
Pour référence, je joins mon
location
bloc pour attraper des fichiers avec l'.php
extension:Vérifiez le
/path/to/fastcgi-params
, et assurez-vous qu'il est présent et lisible par l'utilisateur nginx.la source
remplacer
avec
et supprimez fastcgi_param SCRIPT_FILENAME ... dans nginx.conf
la source
.conf
manque un paramètre de configuration supplémentaire dans_params
./etc/init.d/nginx restart
) l'a également corrigé pour moi sur Debian Testing après unenginx
mise à jour le 10 septembre 2014.fastcgi_params
vsfastcgi.conf
: blog.martinfjordvald.com/2013/04/…J'ai également eu ce problème et j'ai finalement trouvé la solution ici . En bref, vous devez ajouter la ligne suivante à votre fichier de configuration nginx fastcgi (/ etc / nginx / fastcgi_params dans Ubuntu 12.04)
la source
De nombreux utilisateurs tombent dans ce fil en espérant trouver une solution pour les pages vierges affichées tout en utilisant nginx + php-fpm , moi étant l'un d'entre eux. Voici un récapitulatif de ce que j'ai fini par faire après avoir lu de nombreuses réponses ici ainsi que mes propres enquêtes (mise à jour en php7.2):
1) Ouvrez
/etc/php/7.2/fpm/pool.d/www.conf
et vérifiez la valeur du paramètrelisten
.2) Le paramètre
listen
doit correspondre aufastcgi_pass
paramètre du fichier de configuration de votre site (i, e :)/etc/nginx/sites-enabled/default
.3) Vérifiez que le fichier existe réellement:
4) S'il n'existe pas, cela signifie que php7.2-fpm n'est pas en cours d'exécution, vous devez donc le redémarrer:
En ce qui concerne la
location
section dans/etc/nginx/sites-enabled/default
:Vérifiez que le fichier
snippets/fastcgi-php.conf
existe à l'emplacement/etc/nginx/
:Ce fichier contient une liste de définitions de variables requises par php7.2-fpm. Les variables sont définies directement ou via une inclusion d'un fichier séparé.
Ce fichier se trouve à
/etc/nginx/fastcgi.conf
et il ressemble à:nginx inclut deux fichiers de paramètres possibles: fastcgi_params et fastcgi.conf . La différence entre les deux est la définition de la variable
SCRIPT_FILENAME
:Pour faire une histoire courte, fastcgi.conf devrait toujours fonctionner. Si, pour une raison quelconque , vous utilisez fastcgi_params , vous devez définir
SCRIPT_FILENAME
:Maintenant, rechargez la configuration nginx:
Et vérifiez qu'un fichier php s'affiche correctement. Par exemple:
/var/www/html/test.php
Où
/var/www/html
est le chemin vers la racine du document.Si malgré tout cela, vous voyez toujours un fichier vierge, assurez-vous que votre
php.ini
ashort_open_tag
activé (si vous testez une page PHP avec de courtes balises).la source
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
A fait le tour enfin.Assurez-vous que vous l'avez dans / etc / nginx / fastcgi_params
Qui sait pourquoi ce n'est pas déjà là? Le temps que cela doit perdre collectivement!
la source
J'ai écrit un court programme C qui renvoie les variables d'environnement passées de nginx à l'application fastCGI.
Enregistrez-le dans un fichier, par exemple
fcgi_debug.c
Pour compiler, installez d' abord
gcc
etlibfcgi-dev
, puis exécutez:Pour l'exécuter, installez
spawn-fcgi
, puis exécutez:Ensuite, modifiez votre configuration nginx fcgi pour qu'elle pointe vers le programme de débogage:
Redémarrez nginx, actualisez la page et vous devriez voir tous les paramètres apparaître dans votre navigateur pour que vous puissiez déboguer! :-)
la source
apt-get install spawn-fcgi libfcgi-dev
.Ces conseils m'ont aidé avec mon installation Ubuntu 14.04 LTS,
De plus, j'avais besoin d'activer l'
short_open_tag
entrée/etc/php5/fpm/php.ini
la source
Ajoutez ceci dans
/etc/nginx/conf.d/default.conf
:la source
/etc/nginx/fastcgi_params
fichier serait plus approprié, je pense.Au cas où quelqu'un aurait ce problème mais qu'aucune des réponses ci-dessus ne résoudrait ses problèmes, j'avais ce même problème et j'ai eu le plus de mal à le suivre car mes fichiers de configuration étaient corrects, mes travaux ngnix et php-fpm fonctionnaient bien, et aucune erreur ne s'est produite dans les journaux d'erreur.
Erreur stupide mais je n'ai jamais vérifié la variable Short Open Tag dans mon fichier php.ini qui était définie sur
short_open_tag = Off
. Puisque mes fichiers php utilisaient<?
au lieu de<?php
, les pages étaient vides. Short Open Tag aurait dû être définiOn
dans mon cas.J'espère que cela aide quelqu'un.
la source
La raison pour laquelle ce problème se produit est que les configurations fastcgi dans nginx ne fonctionnent pas comme requis et, en place ou en cours de traitement, elles répondent sous forme de données html. Il existe deux façons possibles de configurer votre nginx pour éviter ce problème.
Méthode 1:
Méthode 2:
Les deux méthodes fonctionneraient correctement, vous pouvez continuer et prendre n'importe laquelle d'entre elles. Ils effectuent presque les mêmes opérations avec très peu de différence.
la source
Bonne chance
la source
Aucune des réponses ci-dessus n'a fonctionné pour moi - PHP rendait tout correctement sauf les pages qui reposaient sur mysqli, pour lesquelles il envoyait une page vierge avec un code de réponse 200 et ne lançait aucune erreur. Comme je suis sous OS X, le correctif était simplement
sudo port install php56-mysql
suivi d'un redémarrage de PHP-FPM et nginx.
J'étais en train de migrer d'une ancienne configuration Apache / PHP vers nginx et je n'ai pas remarqué la non-concordance de version dans le pilote pour
php-mysql
etphp-fpm
.la source
J'ai eu un problème similaire, nginx traitait une page à mi-chemin puis s'arrêtait. Aucune des solutions suggérées ici ne fonctionnait pour moi. Je l'ai corrigé en changeant la mise en mémoire tampon nginx fastcgi:
Après les changements, mon
location
bloc ressemblait à:Pour plus de détails, voir https://www.namhuy.net/3120/fix-nginx-upstream-response-buffered-temporary-file-error.html
la source
Si vous obtenez un écran vide, cela peut être dû à 2 raisons:
Navigateur bloquant l'affichage des cadres. Dans certains navigateurs, les cadres sont considérés comme dangereux. Pour surmonter cela, vous pouvez lancer la version sans cadre de phpPgAdmin en
http://-your-domain-name-/intro.php
Vous avez activé une fonction de sécurité dans Nginx pour X-Frame-Options, essayez de la désactiver.
la source
Cela a résolu mon problème:
la source
Ceci est mon hôte virtuel pour UBUNTU 18.04 + apache + php7.2
La dernière ligne le rend différent des autres réponses.
la source
J'ai eu une erreur similaire, mais en combinaison avec Nextcloud. Donc, au cas où cela ne fonctionnerait pas, essayez: Jetez un œil au manuel Nginx .
la source