PHP执行时require_once找不到constant.php报错求助
报错基础信息
- 复现地址:
http://orgdevelopers.tk/api/app/Config/core.php - 运行环境:PHP 7.0.33
- 触发报错的代码位置:
/home/orgdevelopers.tk/public_html/ok/core.php第3行,原代码为require_once('app/Config/constant.php');
完整报错内容:
警告:require_once(/home/orgdevelopers.tk/public_html/ok/app/Config/constant.php): 无法打开流:没有那个文件或目录,错误位置为 /home/orgdevelopers.tk/public_html/ok/core.php 第3行
致命错误:require_once() 无法打开所需文件 '/home/orgdevelopers.tk/public_html/ok/app/Config/constant.php'(include_path='.:/usr/local/lsws/lsphp70/share/pear:/usr/local/lsws/lsphp70/share/php:/usr/share/pear:/usr/share/php'),错误位置为 /home/orgdevelopers.tk/public_html/ok/core.php 第3行
排查解决步骤
- 校验目标文件实际存在性
登录服务器检查路径/home/orgdevelopers.tk/public_html/ok/app/Config/constant.php是否真实存在,确认文件权限对运行PHP的用户可读。如果是文件缺失,将constant.php放置到对应目录即可解决。 - 修正相对路径写法避免解析偏移
原生裸相对路径app/Config/constant.php是基于当前PHP进程的工作目录解析的,和core.php文件本身的物理位置没有绑定,容易因为服务配置、执行入口偏移导致路径拼接错误。
可以改用__DIR__魔术常量基于当前文件位置拼接绝对路径,修正示例:// 原代码 require_once('app/Config/constant.php'); // 修正后代码 require_once __DIR__ . '/app/Config/constant.php'; - 匹配实际目录结构调整路径值
从复现地址可知,core.php原本的目录层级是在/api/app/Config/下,如果将core.php迁移到/ok/目录下运行,需要同步调整require的路径值:如果constant.php和core.php处于同一目录,需要将代码改为require_once __DIR__ . '/constant.php';,避免多嵌套一层目录导致路径指向错误。
内容的提问来源于stack exchange,提问作者block king
相关产品推荐
相关产品推荐

