从 php 模块读取文件失败,并显示 errno 13


Reading file from php module fails with errno 13

美好的一天。
在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 运行时 - 它不会。
有人知道为什么吗?

谢谢

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

现在工作