0

再会。
PHP 中加载了一个 PHP 模块 (.so)。在 MINIT 阶段,它尝试读取文件。
文件是/tmp/aaa.txt 目录/tmp 属于root,权限设置为777。
文件/tmp/aaa.txt 属于apache 用户,权限也设置为777。

模块使用 VCWD_FOPEN() 打开文件,该文件最终定义为
#define VCWD_FOPEN(path, mode) virtual_fopen(path, mode TSRMLS_CC)fopen()。

失败并出现VCWD_FOPEN错误 13(权限被拒绝)。
奇怪的是,如果我手动调用模块 ( #php -r 'echo "hi";' )- 它可以工作。但是当它从 apache 运行时 - 它没有。
有人知道为什么吗?

谢谢

4

1 回答 1

0

发现了问题。用户权限策略由 SELinux 强制执行。要禁用它,我输入 #setenforce 0
#service httpd restart

现在工作

于 2012-05-02T19:52:55.687 回答