我有一些mod_perl的代码,试图访问 /tmp 目录下的一个文件...但是它会抛出一个“没有这个文件或目录”的错误。我在代码中添加了一个 'ls -al /tmp' 命令,以查看Perl在目录中看到了什么,结果只给了我 . 和 .. :
drwxrwxrwt. 2 root root 6 Jan 21 13:36 .
drwxrwxrwx. 18 root sysadmin 4096 Nov 22 22:14 ..
实际上,在 /tmp 目录下有各种文件,其中包括某些由 Apache 用户拥有的文件。将代码更改为 'ls -al /' 可以得到正确的目录列表(没有遗漏)。
我尝试使用 sudo 切换到 Apache 用户,并可以在 /tmp 文件夹下看到文件,所以这一定与 mod_perl 有关。
有什么想法吗?我正在运行 mod_perl 2.0.8 和 Apache 2.4 在 CentOS 7 下,SELinux 设置为宽容模式。