web-dev-qa-db-fra.com

Nginx PHP: aucun fichier d'entrée spécifié

J'ai hérité de ce serveur Web avec Nginx et j'essaye d'obtenir une nouvelle configuration de base PHP site ici.

J'ai suivi les instructions ici. https://Gist.github.com/GhazanfarMir/03bd1f1f770a3834d47274586d46ea62

Je peux lire des fichiers html simplement fichier dans mon répertoire. Mais pour les fichiers PHP, je vois cette erreur dans la page Web:

Aucun fichier d'entrée spécifié.

Je ne sais pas comment résoudre ce problème. Dans mon fichier de conf, j'ai cette configuration pour le PHP et la section racine:

location / {
    root      /var/www/mydomain.org/html;
    index     index.html index.htm index.php;
    try_files $uri/index.html $uri.html $uri @app;
}

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $request_filename;
}
4
bb2j3z

Le message d'erreur "Aucun fichier d'entrée spécifié" est presque toujours dû à la valeur de SCRIPT_FILENAME ne pointe pas vers un fichier. Le location ~ \.php$ doit connaître la racine du document et la variable $request_filename est construit en concaténant la racine du document avec l'URI actuel.

Vous avez défini une racine de document pour le location / bloc, mais pas le location ~ \.php$ bloquer. Habituellement, ce sont la même valeur, donc une seule instruction root peut être placée dans le bloc environnant et héritée par tous les blocs location qui ne remplacent pas la valeur.

Par exemple:

root      /var/www/example.org/html;

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

location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $request_filename;
}

location @app {
    ...
}

Voir ce document pour plus de détails.

1
Richard Smith