Ich poste also eine Antwort, weil ich nach der zweimaligen Neuinstallation die Dinge (aus meiner Sicht) ein wenig anders eingestellt habe. Wie ich oben sagte, stehe ich vor einem Dilemma, da keine meiner Konfigurationen mit den anderen Antworten übereinstimmt, die ich finden konnte. Zum Beispiel:
Mein /etc/nginx-Ordner ist grundsätzlich wie folgt aufgebaut:
|- /etc/nginx/
| |- conf.d/
| | |- default.conf
| |
| |- fastcgi_params
| |- mime.types
| |- modules/ -> /usr/lib/nginx/modules
| |- nginx.conf
| |- scgi_params
| |- uwsgi_params
Es gibt kein /sites-available oder /sites-enabled, wie überall zu sehen, das erwähnte fastcgi-php.conf ist tatsächlich ein fastcgi_params im Stammordner, mein Standard befindet sich daher nicht im Ordner „site-available“.
Hier sind die beiden Konfigurationsdateien, die ich jetzt habe (Domäne versteckt unter my_domain.com): Erstens: die nginx.conf (fast unberührt)
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
include /etc/nginx/sites-available/*.conf;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
Zweitens die /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name my_domain.com www.my_domain.com;
location / {
root /var/www/www.my_domain.com;
index index.php index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/www.my_domain.com;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
#if (!-f $document_root$fastcgi_script_name) {
# return 404;
#}
root /var/www/www.my_domain.com;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
Ich habe auch eine Zeile hinzugefügt
text/php php;
Zu den MIME-Typen denke ich auch daran, den Cache von my_domain in den von mir verwendeten Browsern (Firefox, Opera und Chrome) zu löschen.
Die Datei wird jedoch trotzdem heruntergeladen.
Was habe ich falsch gemacht ?
Bearbeiten: Da ich gerne ein blog.my_domain.com, shop.my_domain.com und forum._mydomain.com erstellen möchte, habe ich die Ordner /site-available und /site-enabled erstellt und beabsichtige, in jedem gleichnamigen Ordner unter /sites-available ein blog/forum/shop.my_domain.com.conf zu erstellen, warte aber auf eine funktionierende Konfiguration, um sie in nginx.conf sichtbar zu machen (mit einer Include-Zeile, richtig?).
Ich verstehe also nicht wirklich, wie diese beiden Ordner funktionieren. Die CNAME-Einträge der Subdomains sind auf my_domain.com eingestellt. Ich habe auch gelesen, dass man für diese Subwebsites einen Symlink erstellen kann, aber ich weiß nicht wirklich, von wo nach wo? Nochmals vielen Dank
Das Fehlerprotokoll sagt mir, dass die Verbindung zu /var/run/php/ verweigert wurde. Der Standardbenutzer ist www-data www-data, aber mein Standardbenutzer für nginx ist nginx (wenn ich ihn ändere, startet er nicht einmal). Soll ich einen
chown nginx:nginx /var/run/php/
?
Antwort1
Um PHP zu konfigurieren, muss auf Ihrem System eine Version von PHP-FPM installiert sein. Und fügen Sie diesen Codeausschnitt zu Ihrer Nginx-Konfiguration im server
Block hinzu.
Sie müssen php5-fpm
auf die Version wechseln, die Sie auf Ihrem System installiert haben.
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Antwort2
Ihnen fehlt ein PHP-Interpreter, NGINX hatein Artikelauf seinem Wiki über FPM.