Ich teste derzeit nginx und habe einige virtuelle Hosts eingerichtet, indem ich Konfigurationen für jeden virtuellen Host in einer eigenen Datei in einem Ordner namens abgelegt habe sites-enabled
.
Ich bitte dann nginx, alle diese Konfigurationsdateien zu laden, indem ich:
include C:/nginx/sites-enabled/*.conf;
Dies ist meine aktuelle Konfiguration:
http {
server_names_hash_bucket_size 64;
include mime.types;
include C:/nginx/sites-enabled/*.conf;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
root C:/www-root;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
index index.html index.htm index.php;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server{
server_name localhost;
}
}
Und dies ist eine der Konfigurationen für einen virtuellen Host:
server {
server_name testsubdomain.testdomain.com
root C:/www-root/testsubdomain.testdomain.com;
}
Das Problem ist, dass ich für testsubdomain.testdomain.com keine PHP-Skripte ausführen kann, es sei denn, ich habe einen Standortblock mit fastcgi-Parametern dafür definiert.
Was ich tun möchte, ist, PHP für alle gehosteten Sites auf diesem Server aktivieren zu können (ohne einen PHP-Standortblock mit fastcgi-Parametern hinzufügen zu müssen), um die Wartbarkeit zu gewährleisten. Dies ist so, dass ich, wenn ich Fastcgi-Werte für PHP ändern muss, diese einfach an einem Ort ändern kann.
Ist das für Nginx möglich? Wenn ja, wie kann das gemacht werden?
"location" directive is not allowed here in /etc/nginx/conf.d/php.conf
. Weißt du warum das so ist?/etc/nginx/conf.d/global
. Fügen Sie also diese Include-Zeile in Ihr vhost (/etc/nginx/sites-enabled/your-vhost
) ein und dann sollte es funktionieren. Ihre hat/etc/nginx/nginx.conf
wahrscheinlich eine Zeile, die lautetinclude C:/nginx/conf.d/*.conf
, und da dort keine Standortanweisungen zulässig sind, wäre dies sinnvoll.