Ich habe einen AWS-Server, auf dem PHP-Code ausgeführt wird.
Ich habe vor kurzem auf PHP8 aktualisiert. Wenn ich jetzt auf PHP-Seiten auf meiner Website zugreife (zum Beispielhttps://whitewaterwriters.com/oracle/index.php) Ich erhalte einen Nginx-Fehler.
Ich schaue mir die Protokolle an sudo tail /var/log/nginx/error.log
und erhalte Folgendes:
2022/11/22 10:43:23 [crit] 2309#2309: *12122 connect() to unix:/run/php-fpm/www.sock failed (2: No such file or directory) while connecting to upstream, client: 51.148.131.133, server: whitewaterwriters.com, request: "GET /oracle/index.php HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/www.sock:", host: "whitewaterwriters.com"
Es sucht also nach einem Socket unter www.sock. Es gibt keinen solchen Socket (obwohl ich diesen Socket auf einem anderen Server habe, von dem ich schwören könnte, dass ich ihn genauso konfiguriert habe). Der Socket, den ich habe, ist php-frm.sock. Das ist der Socket, auf den sich die Datei nginx.conf bezieht:
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
und diejenige, auf der php.ini lauscht (unter /etc/php-fpm.d/www.conf)
listen = /var/run/php-fpm/php-fpm.sock
Meine Frage ist: Was ist die Konfigurationsdatei, die nginx anweist, nach einem www.sock zu suchen? Oder wie erstelle ich diesen Socket?
Antwort1
Es stellte sich heraus, dass die Antwort auf "Wo ist die Konfigurationsdatei?" war
/etc/nginx/conf.d/php-fpm.conf – es verwies auf www.conf, wenn alles andere nicht der Fall war.