线上AWS服务器中PHP文件require引入失败问题求助
解决AWS服务器上PHP文件引入路径错误的问题
这是个很常见的跨环境路径问题,主要是本地和线上服务器的文件系统规则、当前工作目录差异导致的,给你几个靠谱的解决办法:
1. 使用绝对路径(最推荐)
PHP的__DIR__常量会返回当前文件所在的绝对目录,用它来拼接路径能彻底避免相对路径的坑。你的utilities.php在SRC文件夹下,所以直接这样写:
require_once __DIR__ . '/DB/classes.php';
不管你的项目部署在服务器的哪个位置,或者当前工作目录是什么,这个路径都能精准找到classes.php文件。
2. 修正大小写匹配
AWS服务器用的是Linux系统,文件名和文件夹名是区分大小写的,而本地Windows环境不区分。你本地写的src/db/classes.php是小写,但实际文件夹是SRC/DB(大写),线上服务器会因为大小写不匹配找不到文件。如果坚持用相对路径,要改成和实际文件夹一致的大小写:
require_once 'SRC/DB/classes.php';
不过这个方法还是依赖当前工作目录,不如绝对路径可靠。
3. 配置PHP的include_path(适合有权限的情况)
如果你能修改服务器的php.ini配置,或者通过.htaccess/代码动态设置,可以把SRC目录加入include_path:
// 在utilities.php开头添加 set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__); // 之后直接引入 require_once 'DB/classes.php';
这样PHP会自动在include_path指定的目录里查找要引入的文件,代码会更简洁,但需要确保你有配置权限。
内容的提问来源于stack exchange,提问作者shekwo
相关产品推荐
相关产品推荐

