从shell_exec()执行symfony任务命令的权限被拒绝


Execute symfony task command from the shell_exec() permission denied

我有symfony任务调用"doNothing",我想从执行shell_exec('/var/www/esm/symfony php symfony doNothing');

执行它

通过调用我的symfony操作

apache错误提示权限被拒绝。

我认为www-data用户没有权限,我该如何解决这个问题?

编辑
error is

sh:/var/www/esm/symfony: permission denied

您应该查看脚本所在的目录。

使用ls -la显示文件夹中所有文件及其权限(执行php脚本文件必须至少有x位分配给www-data或其组)

所有的父目录直到/必须有x位分配给用户/组,以便apache能够将目录更改为

看。你有树形结构的文件系统:

  • /var/www/var
  • /var/www/esm/var/www
  • /var/www/esm/symfony/var/www/esm

所以www-data用户应该有能力执行(x位)所有的目录。

因此,当/执行ls -l,看看/var是否有x位为www-data用户或它的组(drw x rw x——),它拥有这个目录。当在/var执行ls -l时,依此类推…

您可以将每个目录的权限更改为777。但是不要使用-R键。