迁移至cPanel服务器后PHP网站相对文件路径失效求助
PHP迁移cPanel后包含文件找不到的解决方案
先确认当前工作目录:在login.php开头添加代码输出当前工作目录,排查相对路径失效原因:
echo getcwd(); exit;如果输出不是
/home/e0qgg2hi4u4i/public_html,说明PHP当前工作目录并非脚本所在的public_html,相对路径自然会出错。改用绝对路径(最稳妥):
放弃相对路径,用绝对路径避免工作目录影响,推荐用__DIR__常量(PHP5.3及以上支持),它代表当前脚本文件所在的绝对目录:require_once(__DIR__ . '/../includes/initialize.php');或者直接写死服务器绝对路径:
require_once('/home/e0qgg2hi4u4i/includes/initialize.php');检查open_basedir限制:
新版cPanel可能开启了open_basedir,限制PHP只能访问指定目录。可以创建phpinfo.php文件(内容<?php phpinfo(); ?>)查看open_basedir项,确认是否包含/home/e0qgg2hi4u4i/includes。如果没有,需在cPanel的PHP设置面板修改,或联系主机商添加该目录到允许列表。验证文件权限与大小写:
- 确保includes文件夹权限为755,initialize.php文件权限为644;
- Linux系统区分文件名大小写,确认代码里的文件名和实际文件完全一致(比如
Initialize.php和initialize.php会被视为不同文件)。
内容的提问来源于stack exchange,提问作者BryanV
相关产品推荐
相关产品推荐

