从shell_exec()权限被拒绝执行symfony task命令

时间:2011-09-02 09:49:27

标签: php shell symfony1 permission-denied

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

通过调用我的symfony动作

apache错误说权限被拒绝。

我认为www-data用户没有权限我怎么解决这个问题?

被修改

error is

sh:/ var / www / esm / symfony:权限被拒绝

1 个答案:

答案 0 :(得分:2)

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

使用ls -la显示文件夹中的所有文件及其权限(执行php脚本文件必须至少为{www>数据或其组分配x位。)

同样,/之前的所有父目录必须将x位分配给用户/组,以便apache能够将目录更改为。

看。你有Tree structured Files系统:

  • /var/www位于/var
  • /var/www/esm位于/var/www
  • /var/www/esm/symfony位于/var/www/esm

因此,www-data用户应该能够执行所有目录(x位)。

因此,当/执行ls -l并查看/varx位为www-data用户或其组(drw x rw {{ 1}} ---)它拥有这个目录。在x执行/var时依旧......

您可以为每个目录更改777的权限。但是请勿使用ls -l密钥。只需更改目录的权限。