Ich bin frustriert über meine Nginx-Konfiguration und bitte um Hilfe beim Schreiben meiner Konfigurationsdatei, um mehrere Projekte aus Unterverzeichnissen im selben Stammverzeichnis zu bedienen. Dies ist kein virtuelles Hosting, da alle denselben Hostwert verwenden. Vielleicht verdeutlicht ein Beispiel meinen Versuch:
- Anfrage
192.168.1.1/
soll dazu dienen ,index.php
aus/var/www/public/
- Anfrage
192.168.1.1/wiki/
soll dazu dienen ,index.php
aus/var/www/wiki/public/
- Anfrage
192.168.1.1/blog/
soll dazu dienen ,index.php
aus/var/www/blog/public/
Diese Projekte verwenden PHP und verwenden fastcgi.
Meine aktuelle Konfiguration ist sehr minimal.
server {
listen 80 default;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
root /var/www;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
}
Ich habe verschiedene Dinge mit ausprobiert alias
und rewrite
konnte die Dinge für Fastcgi nicht richtig einstellen. Es scheint , es sollte ein beredter Weise als Standort Blöcke zu schreiben und zu duplizieren root
, index
, SCRIPT_FILENAME
usw.
Alle Hinweise, die mich in die richtige Richtung bringen, sind willkommen.
Antworten:
Da sich Ihre Projekte nicht im selben Stamm befinden, müssen Sie hierfür mehrere Speicherorte verwenden.
Fügen Sie außerdem fastcgi_index in Ihre Datei fastcgi_params ein und fügen Sie es auf Serverebene ein, damit Sie Ihre PHP-Speicherorte so klein wie möglich halten.
quelle
Löst nach Standort + Alias:
quelle
Hier ist, was ich versucht habe, weitere Details unter http://programmersjunk.blogspot.com/2013/11/nginx-multiple-sites-in-subdirectories.html
quelle