PHP 包含文件的绝对路径失败

问题描述 投票:0回答:1

多年来,我一直使用绝对路径在 Web 根目录之上找到许多系统的 PHP 包含文件。 突然,运行 Rocky

Linux 9
PHP Version 8.3.12
Apache version 2.4.57
的新系统出现故障。

代码:

$path = "/home/user/scripts"; // absolute path
set_include_path($path);
require_once("functions.php");

结果:

致命错误:未捕获错误:需要打开失败 '/home/user/scripts/functions.php' (include_path='/home/user/scripts') 在 /home/user/www/index.php:5 堆栈跟踪:#0 {main} 抛出 /home/user/www/index.php 第 5 行

require_once("/home/user/scripts/functions.php");  // this also fails with same error

这对我来说毫无意义。 脚本目录权限和文件权限都是755。文件名正确。

知道可能出了什么问题吗?

php include absolute-path
1个回答
0
投票

非常感谢 Chris Haas —— Selinux 就是问题所在。这两个命令解决了问题:

sudo semanage fcontext -a -t httpd_sys_content_t /home/user/scripts 
sudo restorecon -RF /home/user/scripts
© www.soinside.com 2019 - 2024. All rights reserved.