2015-12-15 1 views
2

J'ai installé un serveur Ngnix et configuré, il aime:Ngnix - FastCGI envoyé à stderr: « message PHP: Avis de PHP: Undefined variable

server { 
    listen 80 default_server; 
    listen [::]:80 default_server ipv6only=on; 

    root /usr/share/nginx/html; 
    index index.php index.html index.htm; 

    # Make site accessible from http://localhost/ 
    server_name localhost; 

    location/{ 
      # First attempt to serve request as file, then 
      # as directory, then fall back to displaying a 404. 
      try_files $uri $uri/ =404; 
      # Uncomment to enable naxsi on this location 
      # include /etc/nginx/naxsi.rules 
    } 

    # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests 
    #location /RequestDenied { 
    #  proxy_pass http://127.0.0.1:8080;  
    #} 
    # redirect server error pages to the static page /50x.html 
    # 
    error_page 500 502 503 504 /50x.html; 
    location =/{ 
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
    # 
    location ~ \.php$ { 
      try_files $uri =404; 
      fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    #  # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini 
    # 
    #  # With php5-cgi alone: 
    #  fastcgi_pass 127.0.0.1:9000; 
    #  # With php5-fpm: 
      fastcgi_pass unix:/var/run/php5-fpm.sock; 
      fastcgi_index index.php; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
      include fastcgi_params; 
    } 

    # deny access to .htaccess files, if Apache's document root 
    # concurs with nginx's one 
    # 
    #location ~ /\.ht { 
    #  deny all; 
    #} 

}

Je reçois ces erreurs (copié de mon error.log):

*9 FastCGI sent in stderr: "PHP message: PHP Notice: Undefined variable: confMsg in /usr/share/nginx/html/admin-interface/login.php on line 196" while reading upstream, client: 127.0.0.1, server: localhost, request: "GET /admin-interface/login.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "localhost" 

2015/12/16 00:27:37 [error] 952 # 0: * 9 FastCGI envoyé à stderr: « Message PHP: PHP Notice: Undefined index : nom d'utilisateur dans/us r/share/nginx/html/admin-interface/login.php sur la ligne 245 Message PHP: PHP Remarque: Indéfini index: nom d'utilisateur dans /usr/share/nginx/html/admin-interface/login.php à la ligne 249 " lors de la lecture en amont, client: 127.0.0.1, serveur: localhost, requête: "GET /admin-interface/login.php HTTP/1.1", en amont: "fastcgi: // unix: /var/run/php5-fpm.sock : ", host:" localhost "

J'essaie de configurer cet environnement en utilisant un serveur Ngnix, cet environnement fonctionne en utilisant un hébergement différent. J'ai changé le cgi.fix_pathinfo = 0 dans mon php.ini

Qu'est-ce qui me manque dans ma configuration? Merci dans Avancé

Répondre

2

Ce n'est pas une erreur , c'est un notice. Le script accède à la variable $confMsg qui n'existe pas à ce stade.

Vous pouvez modifier le niveau de signalement des erreurs dans php.ini (ce qui a également un impact sur les autres scripts et vous ne souhaitez pas désactiver les notifications) ou corriger l'accès aux variables incorrect dans le script.

La deuxième solution serait plus facile car il suffisait d'initialiser $confMsg = '';.

-1

Je suis désolé de dire que cette question est si vague qu'il est difficile de répondre ... Quel est le problème ?? Dans la mesure où je peux voir à partir du fichier d'erreur, il n'y a pas de problème ici. Juste des avis PHP.

Regardez ceci:

error_page 500 502 503 504 /50x.html; 
location = /50x.html { 

Vous ne voyez pas quelque chose de mal? Vous incluez le/emplacement dans l'emplacement de l'erreur, pas de logique mon ami ... Vos fichiers php sous "/" ne seront jamais transmis à php5-fpm de cette façon. À moins que je ne comprenne rien de ce que vous demandez, faites ceci;

supprimer;

location = /50x.html { 

et vers le bas.

ajouter ceci:

location ~ [^/]\.php(/|$) { #open location bracket 

    fastcgi_split_path_info ^(.+?\.php)(/.*)$; 
    if (!-f $document_root$fastcgi_script_name) { #open condition bracket 
     return 404; 
    } #close condition bracket 

    include fastcgi_params; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 

} #close location bracket 

alors;

sudo nginx -t # to test your config. 

S'il y a un problème, recherchez les crochets d'ouverture et de fermeture car cela semble être votre ennemi juré (vous êtes dans le bloc de serveur que vous ouvriez un support pour - assurez-vous la fermer). Si tout passe

sudo nginx -s reload 

Et s'il vous plaît, la prochaine fois que vous postez du code, prenez une seconde pour supprimer tous les commentaires indésirables. Cela vous aidera à obtenir des réponses ou du moins à vous intéresser à votre question. Si tout va bien alors, vous pouvez envisager d'ajouter ces configurations d'emplacement pour un serveur plus robuste/efficace;

# send expire headers 
location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { 
    access_log off; # optional 
    log_not_found off; # optional 
    expires max; 
} 

location = ^/favicon.ico { 
    access_log off; 
    log_not_found off; 
} 

# robots noise... 
location = ^/robots.txt { 
    log_not_found off; 
    access_log off; 
    allow all; 
} 

# block access to hidneen files (.htaccess per example) 
location ~ /\. { access_log off; log_not_found off; deny all; } 

Si vous ne comprenez pas un paramètre, ne l'ajoutez pas.Ce serait comme mettre de l'essence dans votre voiture sans savoir de quel type il s'agit.