Centos中的Apache用户权限

您好我正在使用PHP脚本中的shell_exec命令:

$output = shell_exec('ls -l'); print_r($output); 

terminal:php test.php

导致目录列表如预期。

切换到我的浏览器我没有输出。

我需要授予用户'apache'的权限,以便它可以执行某些命令,或将用户添加到具有这些权限的组中。 我知道如何将用户添加到组等,我只是想知道什么最佳实践方法是授予这种权限的Apache用户。

这花了我一段时间才弄清楚,所以对别人可能有好处。

问题是我试图在/ etc / sudoers中给apache用户权限,而SELinux是(正确)否认它们。

所以我很快禁用了SELinux的httpd,所有的工作。

这对于公共Web服务器来说远非理想情况。

至于最佳做法,应使用audit2allow来设置许可操作。

如果您在所需的目录中执行ls -Z,您将看到该目录的SELinux权限。

要允许httpd / apache守护进程访问你可以执行的目录(-R选项是为了递归):

 chcon -Rv --type=httpd_sys_content_t /desired/path 

希望能帮助到你。