解决 nginx "Primary script unknown" 出错
查看 nginx的error.log,有以下出错记录:
*1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.0.114, server: localhost, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php8.1-fpm.sock:", host: "192.168.0.11"
原因是 fastcgi_param 参数配置有问题,nginx默认配置为: fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
但是,如果在nginx.conf 中设置了本地的 root 目录,那么需要将 fastcgi_param 参数修改为: fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }