Configuration de l'emplacement Nginx pour les sous-dossiers
Dans cet article, nous explorerons comment configurer Nginx pour diffuser le contenu de deux sous-dossiers, un à le chemin racine et l'autre à une URL spécifique.
Considérez le répertoire suivant structure :
/var/www/myside/ ├── static ├── manage
Notre objectif est de rendre le dossier /static accessible à l'URL racine (par exemple, http://example.org/) et le dossier /manage accessible à /manage (par exemple, http ://exemple.org/manage). Dans ce cas, le dossier /manage contient le code du framework PHP de Slim, avec le fichier PHP réel situé dans /var/www/mysite/manage/public/index.php.
Configuration Nginx
Pour y parvenir, nous pouvons utiliser la directive de localisation de Nginx. Voici une configuration possible :
server { listen 80; server_name example.org; error_log /usr/local/etc/nginx/logs/mysite/error.log; access_log /usr/local/etc/nginx/logs/mysite/access.log; root /var/www/mysite; location / { root /var/www/mysite/static; index index.html; } location /manage { alias /var/www/mysite/manage/public; index index.php; if (!-e $request_filename) { rewrite ^ /manage/index.php last; } location ~ \.php$ { if (!-f $request_filename) { return 404; } fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } } location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_index index.php; } }
Explication
Décomposons la configuration :
Utilisation de l'alias par rapport à la racine
Lors de l'utilisation d'un alias, Nginx sert les fichiers du répertoire spécifié tout en conservant l'original URI. Ceci est utile pour notre objectif, car nous voulons que l'URI /manage pointe vers le répertoire /var/www/mysite/manage/public.
En revanche, root modifie le répertoire racine du bloc d'emplacement, donc cela ne convient pas à notre scénario dans lequel nous souhaitons servir différents sous-dossiers à partir de différents emplacements.
Réécrire la règle pour index.php
La règle de réécriture garantit que les demandes de fichiers inexistants dans le dossier /manage sont redirigées vers index.php. Cela permet à l'application PHP de Slim de gérer la demande.
Gestion des fichiers PHP
Les deux blocs d'emplacement pour la gestion des fichiers PHP incluent la configuration nécessaire pour exécuter des scripts PHP, tels que FastCGI. paramètres et variables. La directive fastcgi_pass dirige les requêtes PHP vers un serveur PHP FastCGI.
Notes finales
Assurez-vous que votre serveur PHP FastCGI est en cours d'exécution et correctement configuré. Cette configuration devrait vous permettre de diffuser correctement le contenu des sous-dossiers /static et /manage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!