美文网首页
Nginx 访问 PHP 的 File not found 错误

Nginx 访问 PHP 的 File not found 错误

作者: 别瞄我 | 来源:发表于2020-08-05 10:57 被阅读0次

    对应在 nginx 的 error.log 里面错误信息为:
    FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream

    原因

    总的来说问题分两种情况:

    • 找不到文件
    • 没权限

    解决

    找不到文件

    脚本路径设置不对,导致 php-fpm 找不到 SCRIPT_FILENAME 里执行的 php 文件

    将
    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    改成
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    

    权限问题

    1. DAC 层面
      脚本所属用户和用户组不对或者脚本权限设置不对

    1. MAC 层面
      开启了 SELinux
      vim /etc/selinux/config 关闭 SELinux,如下图:

      getenforce 可查看 SELinux 当前状态
      setenforce 0 临时且立即生效来关闭SELinux(宽容模式)

    有时在工作中遇到“没权限”问题,我们设置了权限(DAC层面)后还是提示“没权限”,比如很多人郁闷的说“我去,我都设置777了,还不行?”,那就大概率是因为开启了SELinux(MAC层面)

    相关文章

      网友评论

          本文标题:Nginx 访问 PHP 的 File not found 错误

          本文链接:https://www.haomeiwen.com/subject/yyjnrktx.html