当前位置: 首页 > news >正文

运维工程师技术之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文件了。

http://www.cnnetsun.cn/news/20527.html

相关文章:

  • 联邦学习赋能YOLOv5:计算机视觉的隐私保护新范式
  • 从卡顿到丝滑:我的酷安桌面化使用体验
  • kmp算法
  • AgentHub更新:LangGraph+千问实现Adaptive RAG系统
  • 快速掌握RustFS分布式存储监控告警系统:从异常检测到智能通知的完整指南
  • Steamless终极指南:轻松移除Steam游戏DRM保护
  • 图像对比工具在网络安全配置中的高效应用与优化策略
  • 终极指南:macOS iSCSI Initiator快速连接远程存储
  • 在.NET Framework 4.7.2 使用Microsoft.Practices.EnterpriseLibrary.Data配置出错
  • 【论文自动阅读】HIERARCHICAL MIXTURE-OF-EXPERTS FOR GENERALIST VISION-LANGUAGE-ACTION POLICIES
  • FastDepth:嵌入式系统上的快速单目深度估计
  • Solidity 中的using for详解
  • GPT-5.2 的数据基石、原生多模态与隐私承诺的深度考量
  • 开源代码智能体SWE-Dev-9B崛起:逼近GPT-4o性能,90%工程师效率革命加速
  • Wasmer WebAssembly运行时终极指南:从零到实战部署
  • 2025年推荐一些程序员常逛的开发者社区
  • ExplorerPatcher深度解析:重塑Windows界面体验的终极方案
  • SketchUp STL插件实战指南:打通3D打印的最后一公里
  • 基于VUE技术的健康监测可视化系统设计与实现开题报告
  • 基于VUE技术的健康监测可视化系统设计与实现任务书
  • Smithbox游戏修改工具:从玩家痛点出发的7大深度解决方案
  • Qt + VS2017 编译缺少库,在对方设备无法运行,推荐几种做法。
  • 窗口管理大师:WindowResizer完整使用指南
  • 20亿参数撬动工业质检革命:Isaac-0.1开启边缘智能新纪元
  • 基于web的超市管理系统开题报告
  • Driver.js 1.x升级攻略:告别旧版,拥抱全新API设计
  • Laudspeaker:终极开源客户参与平台完全指南
  • 20、Snort Options and iptables Packet Filtering
  • 自主之路:中国科技国产化的战略纵深与实践探索
  • 22、深入了解 fwsnort:规则部署、选项及攻击检测实践