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.
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:
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
}
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.
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.
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.