web-dev-qa-db-fra.com

Impossible d'ouvrir index.php par défaut avec nginx

Quel est le problème avec ma définition de serveur? Si j'essaie d'accéder à "www.testing.com", je reçois un fichier binaire à télécharger à la place du fichier index.php. Si j'essaie d'accéder à "testing.com", je reçois le fichier index.php.

J'ai déjà essayé de définir nom_serveur sur:

servername testing.com;
servername testing.com www.testing.com;
servername testing.com www.testing.com *.testing.com;

Même comportement: je ne peux pas obtenir index.php avec "www.testing.com", juste avec "testing.com" . (Bien sûr, testing.com n'est pas le mien, c'est par exemple).

    user              nginx;
    worker_processes  4;
    error_log         /var/log/nginx/error.log warn;
    pid               /var/run/nginx.pid;

    events {
         worker_connections  1024;
    }


    http {
         include      /etc/nginx/mime.types;
         default_type  text/plain;

         log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for"';

         access_log  /var/log/nginx/access.log  main;

         fastcgi_intercept_errors    on;
         sendfile                    on;
         keepalive_timeout           65;
         gzip                        on;
         index                       index.php index.html index.htm;

         server {
              listen 80;
              server_name www.testing.com;
              root /home/vhosts/testing;

              location / {
                  try_files $uri $uri/ /index.php index.php;
              }

        location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
                  expires max;
                  add_header Pragma public;
                  add_header Cache-Control "public, must-revalidate, proxy-revalidate";
              }

        location ~* \.php$ {
                 try_files $uri =404;
                 include fastcgi.conf;
                 fastcgi_pass  127.0.0.1:9000;
              }
         }
    }
19
Damiano Barbati

vous devez d’abord vérifier vos paramètres php-fpm (peut-être en utilisant une connexion socket au lieu de port dans votre configuration php-fpm) et ajouter l’index par défaut à votre emplacement "/"

location / {
    index index.php index.html index.htm;
    try_files $uri $uri/ =404;
}
19
Sergey Nikolaev

ajouter fastcgi_index index.php; dans location ~* \.php$

location ~* \.php$ {
                 try_files $uri =404;
                 include fastcgi.conf;
                 fastcgi_pass  127.0.0.1:9000;
                 fastcgi_index  index.php;
              }
8
Ali Akbar Azizi

vérifiez que votre fpm est en cours d'exécution et qu'il est allumé 127.0.0.1:9000

location ~ \.php$ {
     try_files $uri =404;
     include fastcgi.conf;
     fastcgi_pass  127.0.0.1:9000;
 }

également enregistrer les erreurs et vérifier

 error_log  /var/log/nginx/error.log  debug;

pour un exemple de vérification https://github.com/rtCamp/easyengine/blob/master/conf/nginx/singlesite/basic.conf

1
Strik3r

Celui-ci a fonctionné pour moi:

    location = / {
        index index.php index.html index.htm;
        try_files $uri /index.html;
    }

La configuration de l'emplacement complet avec proxy est:

    location = / {
    index index.php index.html index.htm;
    try_files $uri /index.html;
    proxy_pass http://localhost:8081;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $Host;
    proxy_cache_bypass $http_upgrade;
    }
0
JoaquinLarra