Position actuelle: Accueil> Derniers articles> Comment désactiver les scripts PHP dans des répertoires spécifiques dans Nginx

Comment désactiver les scripts PHP dans des répertoires spécifiques dans Nginx

gitbox 2025-07-28

introduire

Dans certains cas, vous voudrez peut-être désactiver l'exécution de scripts PHP sur un répertoire spécifique de votre serveur Nginx. Avec le profil de Nginx, vous pouvez facilement y parvenir, améliorant ainsi la sécurité de votre site Web. Cet article expliquera en détail comment configurer Nginx pour interdire l'exécution des scripts PHP dans un répertoire spécifique.

Principe d'interdiction de Nginx d'exécuter PHP dans des répertoires spécifiés

Pour interdire l'exécution de scripts PHP dans Nginx dans des répertoires spécifiques, vous pouvez utiliser la directive `Location` de Nginx pour définir des restrictions d'accès pour les répertoires spécifiés. Plus précisément, vous associerez le chemin du répertoire à travers une expression régulière, puis bloquerez l'exécution du script PHP via la directive `Den All`. Voici les principes de base de la configuration:

Créer un bloc de serveur Nginx

Tout d'abord, vous devez créer un bloc de serveur dans le fichier de configuration de Nginx pour configurer votre site Web. Ce bloc de serveur contiendra des règles pour différents répertoires.

 
server {
    listen 80;
    server_name example.com;
    # Configurer le resteNginxOptions
}

Configurer les options pour interdire l'exécution de PHP

Ensuite, configurez des règles pour des répertoires spécifiques qui interdisent l'exécution de PHP. La directive de localisation vous permet d'ajouter des restrictions d'accès pour des répertoires spécifiques ou des chemins de fichier.

 
server {
    listen 80;
    server_name example.com;
    # Configurer d'autresNginxOptions

    location ~ /(dir1|dir2)/.*\.php$ {
        deny all;
    }
}

Dans la configuration ci-dessus, nous utilisons la directive «Location» pour faire correspondre les demandes qui commencent par `/ dir1 /` ou `/ dir2 /` et se terminer avec `.php». Grâce à la directive «Deny All», toutes les demandes de correspondance seront refusées. Vous pouvez ajuster le chemin du répertoire et les expressions régulières en fonction des besoins réels.

Exemple de configuration complet

Voici un exemple de configuration complet qui montre comment désactiver Nginx en exécutant des scripts PHP dans un répertoire spécifique.

 
server {
    listen 80;
    server_name example.com;

    root /path/to/website;
    index index.html;

    location ~ /(dir1|dir2)/.*\.php$ {
        deny all;
    }

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Dans cet exemple, le répertoire racine est spécifié comme `/ path / vers / site Web` et le fichier d'index par défaut` index.html` est défini. Grâce à la directive «Location», nous interdisons l'exécution des scripts PHP dans les répertoires `/ dir1 /` et `/ dir2 /`. Pour d'autres demandes, Nginx essaiera de fournir un fichier statique, et si le fichier n'existe pas, il renvoie une erreur 404.

Résumer

En utilisant la directive de localisation de Nginx, nous pouvons interdire efficacement le fonctionnement des scripts PHP à partir de répertoires spécifiques. C'est un moyen facile et efficace d'améliorer la sécurité du site Web. Lorsque vous effectuez ce type de configuration, assurez-vous de définir le chemin correct pour le répertoire où PHP est désactivé et ajustez les expressions régulières au besoin. Une fois la configuration terminée, n'oubliez pas de recharger Nginx pour que les modifications prennent effet.