Nginx下配置ownCloud的Fastcgi参数出现Primary script unknown错误求助
Primary script unknown报错核心原因是PHP-FPM进程无法找到Nginx传递的待执行PHP文件路径,你当前的配置存在3个典型问题:
问题说明
缺少
SCRIPT_FILENAMEFastCGI参数
当前你仅引入了fastcgi_params,但多数Ubuntu发行版默认的fastcgi_params配置文件未定义SCRIPT_FILENAME参数,PHP-FPM不知道要执行的文件路径,直接返回报错。你需要在配置中显式添加该参数。PHP-FPM套接字路径可能错误
Ubuntu 20.04+ 中php7.4-fpm默认的套接字路径为/run/php/php7.4-fpm.sock,而非你配置的/var/run/php7.4-fpm.sock,你可以执行命令ls /run/php/确认实际的套接字文件名。需确认Server块根目录配置正确
请确保你的Nginx Server块中已经配置了正确的站点根目录,比如ownCloud部署在/var/www/owncloud的话,需要添加配置root /var/www/owncloud;,否则$document_root变量取值错误也会导致PHP找不到文件。
修正后的配置示例
location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; # 替换为你通过ls /run/php/确认的实际php7.4-fpm套接字路径 fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; include fastcgi_params; # 关键参数:传递PHP文件的绝对路径给PHP-FPM fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
生效验证步骤
- 执行
nginx -t测试配置语法是否正确,无报错再执行后续操作 - 执行
systemctl reload nginx重载Nginx配置 - 执行
systemctl restart php7.4-fpm重启PHP-FPM服务 - 若仍报错,检查PHP-FPM运行用户与Nginx运行用户是否一致,均为
www-data即可,可分别在/etc/php/7.4/fpm/pool.d/www.conf和/etc/nginx/nginx.conf中核对用户配置
内容的提问来源于stack exchange,提问作者magic
相关产品推荐
相关产品推荐

