news 2026/7/7 13:24:46

运维工程师技术之nginx搭配php

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
运维工程师技术之nginx搭配php

出现“File not found.”的核心原因是fastcgi_param SCRIPT_FILENAME配置错误,导致PHP-FPM找不到对应的PHP文件。以下是具体分析和修复方案:

一、直接原因:SCRIPT_FILENAME路径错误

你配置中的这一行:

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

是Nginx默认的错误写法——/scripts是一个不存在的目录,而你的PHP文件实际在/app/code/zbx目录下。

当Nginx把请求转发给PHP-FPM时,会告诉它“要执行的文件在/scripts/xxx.php”,但这个路径根本不存在,所以PHP-FPM返回“File not found.”。

二、修复步骤

1. 修正SCRIPT_FILENAME参数

/scripts改为$document_root(自动关联当前配置的root目录),同时补充roottry_files指令(确保路径正确):

location ~ \.php$ { root /app/code/zbx; # 必须和上面location /的root一致,指定PHP文件所在目录 try_files $uri =404; # 先检查文件是否存在,不存在直接返回404(避免无效请求) fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; # 关键修正:用$document_root获取当前root目录,正确指向PHP文件 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
2. 补充index的优先级(可选但建议)

index中的index.php放到前面,优先解析PHP索引页:

location / { root /app/code/zbx; index index.php index.htm; # 把index.php放前面 }

三、修复后的完整配置

server { listen 80; server_name localhost www.zbx888.com; location / { root /app/code/zbx; index index.php index.htm; # 优先解析PHP索引页 try_files $uri $uri/ /index.php$is_args$args; # 处理PHP项目路由 } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # 修复后的PHP解析块 location ~ \.php$ { root /app/code/zbx; # 和项目根目录一致 try_files $uri =404; # 检查文件是否存在 fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # 禁止访问隐藏文件(提升安全性) location ~ /\.ht { deny all; } }

四、验证与生效

  1. 检查配置语法

    nginx -t

    输出“test is successful”说明语法正确。

  2. 重启Nginx

    systemctl restart nginx
  3. 确认PHP文件存在
    确保/app/code/zbx目录下有index.php(或你访问的PHP文件):

    ls-l /app/code/zbx/index.php

五、额外排查(若仍报错)

如果修复后还是“File not found.”,检查:

  • PHP-FPM的用户权限:PHP-FPM默认以apachenginx用户运行,需确保该用户能读取/app/code/zbx下的文件:
    chown-R nginx:nginx /app/code/zbxchmod-R755/app/code/zbx
  • SELinux限制:临时关闭SELinux测试(生产环境需配置规则):
    setenforce0

修复后,浏览器访问www.zbx888.com就能正常解析PHP文件了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 6:22:32

程序员应该熟悉的概念(5)MoE

MoE(Mixture of Experts,专家混合模型))是当前大模型(尤其是 GPT-4、Gemini、Mixtral、DeepSeek 等)架构中非常核心的一个概念。 MoE 的思想非常直白:不同的 专家/Expert 只负责处理自己擅长的那一类输入,而不是让整个…

作者头像 李华
网站建设 2026/7/7 6:44:04

大模型书籍丨Llama大模型实践指南,深入浅出入门大模型(附PDF)

你是否渴望掌握大模型的奥秘,却又不知从何开始?《Llama大模型实践指南》来了!它为你揭开Llama大模型的神秘面纱,无论你是新手还是老手,都能在这里找到深入浅出的讲解和宝贵的实践灵感。《Llama大模型实践指南》是为所有…

作者头像 李华
网站建设 2026/7/7 14:17:40

5大关键改进!RR引导工具25.6.4版本让你的黑群晖系统更稳定可靠

5大关键改进!RR引导工具25.6.4版本让你的黑群晖系统更稳定可靠 【免费下载链接】rr Redpill Recovery (arpl-i18n) 项目地址: https://gitcode.com/gh_mirrors/rr2/rr 还在为黑群晖系统在非官方硬件上的兼容性问题烦恼吗?RR引导工具25.6.4版本带来…

作者头像 李华
网站建设 2026/7/7 10:03:28

BioSIM抗人载脂蛋白C3抗体SIM0319 :优质的特异性和稳定性

在现代生命科学研究中,抗体作为关键的工具分子,广泛应用于基础研究、药物开发及诊断领域。其中,针对特定靶点的高质量抗体,是推动科研进展的重要保障。BioSIM抗人载脂蛋白C3抗体(STT-5058生物类似药)&#…

作者头像 李华
网站建设 2026/7/7 10:09:37

Arnis配置终极指南:快速掌握Minecraft城市生成技巧

Arnis配置终极指南:快速掌握Minecraft城市生成技巧 【免费下载链接】arnis Arnis - Generate cities from real life in Minecraft using Python 项目地址: https://gitcode.com/GitHub_Trending/ar/arnis Arnis是一款功能强大的开源工具,能够将现…

作者头像 李华