You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从子目录访问根级子目录被拒:GoDaddy服务器HTTP502问题求助

问题描述

站点结构:

  • 脚本路径:mysite.co.uk/admin/file.php
  • 图片存储路径:mysite.co.uk/files/images/product/

在file.php中使用以下代码读取product文件夹内的图片时,服务器返回HTTP 502网关错误,但读取上级的../files/images/目录正常:

$dir = "../files/images/product/";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}
sort($files);
foreach ($files as $filename){
    echo "<option value='". $filename . "'>" . $filename . "</option>";
}

已尝试操作:

  • 防火墙允许files/images/product路径
  • 将文件夹权限从0755改为0644(反而引发更多故障)
    服务器环境:GoDaddy
解决方案
  • 改用绝对路径读取目录
    GoDaddy服务器的虚拟目录结构可能导致相对路径解析异常,用$_SERVER['DOCUMENT_ROOT']构建绝对路径可以避免这个问题:

    $dir = $_SERVER['DOCUMENT_ROOT'] . '/files/images/product/';
    $dh = opendir($dir);
    // 后续代码保持不变
    
  • 恢复正确的目录权限
    文件夹需要执行权限才能被PHP脚本访问,之前将product文件夹权限改为0644是错误的,必须改回0755;文件夹内的图片文件权限设为0644即可。

  • 查看PHP错误日志定位根源
    登录GoDaddy的cPanel面板,找到「错误日志」功能,查看HTTP 502对应的具体错误信息(比如opendir失败、PHP进程崩溃、内存不足等),这是排查502错误最直接的方式。

  • 调整PHP错误记录配置
    在file.php开头添加以下代码,确保错误被记录到日志而不是输出到页面,避免因错误输出导致的HTTP头异常:

    error_reporting(E_ALL);
    ini_set('display_errors', 0);
    ini_set('log_errors', 1);
    
  • 检查.htaccess限制规则
    排查files/images/product/目录及其上级目录的.htaccess文件,确认没有添加Deny from all、RewriteRule等阻止PHP脚本读取目录的规则。

内容的提问来源于stack exchange,提问作者Annamaria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:57:17