2011-09-02 69 views
0

我有symfony的任务调用“doNothing”我想打电话给我的symfony的行动,从执行shell_exec('/var/www/esm/symfony php symfony doNothing');从了shell_exec()权限执行symfony的任务命令否认

执行它

Apache的错误说权限被拒绝。

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

编辑

error is 

SH:在/ var/WWW/ESM/symfony中:许可被拒绝

+0

检查symfony根目录下symfony文件的权限('/ var/www/esm') –

+0

它有-rwxrwxrwx权限 –

+0

sudo chown -R www-data:www-data/var/www/esm/symfony 我仍然没有运气 –

回答

2

你应该看看在你的脚本的目录。

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

也是所有的父目录高达/必须有x位分配给用户/组为Apache能够改变目录。

看。你已经树形结构文件系统:

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

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

所以当/执行ls -l,并期待wheter /varx位为www数据的用户或者是组(DRW x RW x ---),它拥有这个目录。当在/var执行ls -l等等...

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

+0

我给了sudo chown -R www-data:www-data/var/www/esm/symfony 权限仍然没有运气 –

+0

我检查发现的Apache错误日志sh:/ var/www/esm/symfony:权限被拒绝 –

+0

chown是不够的。检查所有文件是否可读,可写和可执行。为了确保你可以运行sudo chmod -R 777/var/www/esm/symfony。但是,出于安全原因解决问题后,未使用的权限将被删除。 –