我遇到了一个问题,一个被写为作为web服务访问的程序不能访问本地文件系统中的任何东西。从命令行运行程序可以正常工作,但是当通过apache作为一个子进程从php脚本通过system()
执行时失败;它只是无法找到它应该工作的文件。我确信这是一个apache配置问题,因为程序在阅读/var/www/html [Web服务器文档根目录]和它下面的任何/所有文件/目录时没有问题。
以下是一些详细信息:
- 运行apache 2.4.6的虚拟Centos 7服务器。
- 该程序以用户apache的身份运行
- 它可以读取/ [root dir]并正确解释它[即,它确实是/系统根目录,而不是/var/www/html]
- 它根本不能访问/tmp,也不能访问/var/tmp
- 某些外部文件通过网络挂载在/mnt上。程序可以访问/mnt,但尝试读取/mnt/{anything} 失败--即使远程共享已使用有效uid/gid挂载为apache,并且所有文件/目录都可由world读取。
- selinux当前已禁用
- 为了好玩,我尝试将
Require all granted
设置在<Directory / >
中,将<Directory /tmp >
设置在httpd.conf
中,但这并没有改变什么。
有谁知道是什么原因造成的,我该怎么解决?
谢谢你的好意。
1条答案
按热度按时间brc7rcf01#
您是否检查过selinux是否限制访问?
您可以通过安装selinux故障排除来查看Selinux是否导致了问题
yum安装-y sealert疑难解答sealert -a/var/日志/审核/审核. log