2 votes

Nginx dit que le fichier n'est pas trouvé lors de la demande de fichier PHP sur une racine différente

Je utilise un root différent pour le chemin /cloud mais chaque fois que j'essaie de demander un fichier /cloud/*.php nginx dit 404 fichier non trouvé. Je peux accéder à /cloud/*.html sans aucun problème. Je peux même accéder à n'importe quel /*.php mais d'une certaine manière pas sur /cloud. Mon fichier de configuration ressemble à

serveur {
        écouter 80 serveur par défaut;
        écouter [::]:80 serveur par défaut;
        root /var/www/html;

        index index.html index.htm index.nginx-debian.html index.php;

        server_name _;

        location /cloud {
                root /home/fhost/public_html;
        }
        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

        location ~ /\.ht {
                refuser tout;
        }
}

2voto

HugoFS Points 313

En utilisant PHP avec deux racines, vous aurez besoin d'un bloc location pour chacune. La solution la plus propre est un bloc de location imbriqué dans un bloc location ^~ /cloud. Notez l'utilisation du modificateur ^~ qui fait en sorte que ce bloc location prenne le pas sur l'autre bloc location ~ \.php$. Voir ce document pour plus d'informations.

location ^~ /cloud {
    root /home/fhost/public_html;

    location ~ \.php$ {
        ...
    }
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X