nginx montrant vide des pages PHP
J'ai configurer un serveur nginx avec php5-fpm. Lorsque j'essaie de charger le site, j'ai une page blanche sans erreur. Les pages Html sont servis bien, mais pas de php. J'ai essayé d'allumer display_errors en php.ini, mais pas de chance. php5-fpm.le journal n'est pas de produire des erreurs et il n'est ni nginx.
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;
}
}
MODIFIER
voici mon nginx journal des erreurs:
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"
- Apparemment, php-fpm n'a pas été appelé par nginx, avez-vous vérifié journal des erreurs de nginx?
- Vérifier ma mise à jour ci-dessus.
- La nginx erreur
connect() failed ... fastcgi://127.0.0.1:9000
contredit votre conf nginx, recharger la conf nginx? - Je pense que cela est juste.
- Est-il important que votre
location
regex est à la recherche d'.php$
, mais votre demande est la demande de.txt$
? - om, bon point. Je suis nouveau sur ngnix, comme je viens de configurer un VPN sur digitalocean.com et utilisé la conf qu'ils ont fournis...
- Je suis vraiment surpris que cela ne semble affecter que quelques milliers de personnes sur la planète, que même la valeur par défaut de nginx+php config sont les causes de cette chose.
Vous devez vous connecter pour publier un commentaire.
Pour la référence, je joins mon
location
bloc pour la capture de fichiers avec l'.php
extension:Double-vérifier la
/path/to/fastcgi-params
, et assurez-vous qu'il est présent et lisible par l'nginx utilisateur.fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
va dans/etc/nginx/fastcgi_params
, dans mon cas, j'ai installé nginx en opt répertoire et dans ma version de lafastcgi_params
fichiers est dans ce répertoire,/opt/nginx/conf/fastcgi_params
.remplacer
avec
et supprimer fastcgi_param SCRIPT_FILENAME ... dans nginx.conf
.conf
a un paramètre de configuration manquant de_params
./etc/init.d/nginx restart
) fixe également pour moi sur Debian Testing après unenginx
de mise à niveau, le 10 septembre 2014.fastcgi_params
vsfastcgi.conf
: blog.martinfjordvald.com/2013/04/...fastcgi_param SCRIPT_FILENAME $request_filename;
fonctionne très bien, c'est juste, y compris fastcgi_params ou de le définir dans la ligne de ce qui s'est cassé.sudo find ./ -type f -exec sed -i 's/include fastcgi_params;/include fastcgi.conf;/g' {} \;
Également eu ce problème et a finalement trouvé la solution ici. En bref, vous devez ajouter la ligne suivante à votre nginx fastcgi fichier de configuration (/etc/nginx/fastcgi_params dans Ubuntu 12.04)
nginx
paquet au lieu de système, j'imagine ce paramètre est inclus dans Ubuntu paquet générique.De nombreux utilisateurs de l'automne dans ce fil, en attendant de trouver une solution pour les pages blanches affichés lors de l'utilisation nginx+php-fpm, m'étant l'un d'eux. C'est un récapitulatif de ce que j'ai fait après avoir lu beaucoup de réponses ici, en plus de mes propres enquêtes (mis à jour pour php7.2):
1) Ouvrir
/etc/php/7.2/fpm/pool.d/www.conf
et vérifier la valeur du paramètrelisten
.2) Paramètre
listen
doit correspondre àfastcgi_pass
paramètre dans votre fichier de configuration de site (i,e:/etc/nginx/sites-enabled/default
).3) Vérifier que le fichier existe réellement:
4) Si elle n'existe pas, cela signifie que php7.2-fpm n'est pas en cours d'exécution, si vous avez besoin de le redémarrer:
Quant à la
location
section dans/etc/nginx/sites-enabled/default
:De vérifier 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 par l'intermédiaire d'un include d'un fichier séparé.
Ce fichier est situé à
/etc/nginx/fastcgi.conf
et il ressemble:nginx comprend deux fichiers de paramètres: fastcgi_params et fastcgi.conf. La différence entre les deux est la définition de la variable
SCRIPT_FILENAME
:Pour faire une longue histoire courte, fastcgi.conf devrait toujours fonctionner. Si pour quelque raison vous avez mis en place est à l'aide de fastcgi_params, vous devez définir
SCRIPT_FILENAME
:Maintenant recharger nginx configuration:
Et de vérifier un fichier php s'affiche correctement. Par exemple:
/var/www/html/test.php
Où
/var/www/html
est le chemin d'accès à la racine du document.Si malgré tout, vous êtes toujours de voir un fichier vide, assurez-vous que votre
php.ini
ashort_open_tag
activé (si vous testez une page PHP avec les balises courtes).fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
A fait le tour, enfin.Assurez-vous que vous avez cela dans /etc/nginx/fastcgi_params
Qui sait pourquoi cela n'est-il pas déjà? La quantité de temps cela doit collectivement déchets!
J'ai écrit un court programme C qui retourne les variables d'environnement passé de nginx pour l'application fastCGI.
Enregistrer ce pour un fichier, par exemple
fcgi_debug.c
Pour le compiler, installer d'abord
gcc
etlibfcgi-dev
, puis exécutez:Pour l'exécuter, installez
spawn-fcgi
, puis exécutez:Ensuite, modifiez votre nginx fcgi config à point pour le programme de débogage:
Redémarrer nginx, actualisez la page, et vous devriez voir tous les paramètres s'affichent dans votre navigateur pour vous de débogage! 🙂
apt-get install spawn-fcgi libfcgi-dev
.Ces conseils m'ont aidé avec mon Ubuntu 14.04 LTS installer,
En plus j'avais besoin de tourner sur le
short_open_tag
dans/etc/php5/fpm/php.ini
Ajouter ceci dans le
/etc/nginx/conf.d/default.conf
:/etc/nginx/fastcgi_params
fichier serait plus approprié je pense.Au cas où quelqu'un est d'avoir ce problème, mais aucune des réponses ci-dessus, à résoudre leurs problèmes, j'ai eu ce même problème et l'avait le plus de temps de suivi vers le bas depuis mes fichiers de config est correcte, mon ngnix et php-fpm emplois ont été en cours d'exécution fine, et il n'y avait pas d'erreurs à venir à travers les journaux d'erreurs.
Erreur stupide, mais je n'ai jamais vérifié le Court Balise d'ouverture variable dans mon php.ini fichier qui a été créé à
short_open_tag = Off
. Depuis mes fichiers php ont été à l'aide de<?
au lieu de<?php
, les pages ont été à apparaître en blanc. Short Open Tag doit avoir été mis àOn
dans mon cas.Espère que cela aide quelqu'un.
La raison de ce problème se produit parce que le fastcgi configurations de nginx ne fonctionnent pas comme nécessaire et en place ou de traitement, ils réagissent comme des données html. Il y a deux façons dans laquelle vous pouvez configurer votre nginx pour éviter ce problème.
Méthode 1:
Méthode 2:
À la fois les méthodes de travail correctement, vous pouvez aller de l'avant et de prendre l'un d'entre eux. Ils ont presque effectuer les mêmes opérations avec très peu de différence.
Aucune des réponses ci-dessus a fonctionné pour moi - PHP a été correctement rendu tout sauf les pages qui ont misé sur la mysqli, pour lequel elle a été l'envoi d'une page vide avec un code de réponse de 200 et de ne pas jeter de toutes les erreurs. Comme je suis sur OS X, la solution était tout simplement
sudo port install php56-mysql
suivie par un redémarrage de PHP-FPM et de nginx.
J'ai été migration à partir d'une ancienne Apache/PHP configuration pour nginx, et n'a pas remarqué l'incompatibilité de version dans le pilote de
php-mysql
etphp-fpm
.J'ai eu un problème similaire, nginx a été le traitement d'une page à mi-chemin puis arrêt. Aucune des solutions proposées ici ont été de travailler pour moi. Je l'ai corrigé en changeant de nginx fastcgi mise en mémoire tampon:
Après les changements, mon
location
bloc ressemblait:Pour les détails, voir https://www.namhuy.net/3120/fix-nginx-upstream-response-buffered-temporary-file-error.html
Si vous obtenir un écran blanc, cela peut être parce que 2 raisons:
Navigateur bloquant les Images de s'afficher. Dans certains navigateurs, les cadres sont considérés comme dangereux. Pour surmonter cela, vous pouvez lancer la version sans cadre de phpPgAdmin par
http://-your-domain-name-/intro.php
Vous avez activé une fonctionnalité de sécurité de Nginx pour X-Frame-Options essayez de le désactiver.
Cela a résolu mon problème:
C'est mon vhost pour UBUNTU 18.04+apache+php7.2
La dernière ligne qui le rend différent que les autres réponses.
Bonne chance