我正在为Apache Server开发一个模块。在那,我试图从路径/ tmp / _clusterMemberName /使用 stat(const char * filename,struct stat * buf)函数读取文件。我的问题是stat()函数返回-1,即使文件存在于路径上。如果我将文件位置从 / tmp / _clusterMemberName / 更改为 / opt / ,则stat()函数正常工作。请帮我找出原因。
答案 0 :(得分:0)
最可能的原因是/tmp
无法访问。
您需要查看stat
返回的errno值。如果是EACCES
,则原因是用户无权访问/tmp
。如果是EPERM
,原因可能是SELinux政策阻止httpd访问/tmp
。如果您使用的是SELinux,请确保您已了解httpd_selinux
联机帮助页。
您可以通过以下方式启用httpd
对/tmp
的访问权限。
setsebool httpd_tmp_t 1
并使用
进行更改setsebool -P httpd_tmp_t 1