从 shell_exec() 权限被拒绝执行 symfony 任务命令
我有 symfony 任务调用“doNothing”,我想通过执行 shell_exec('/var/www/esm/symfony php symfony doNothing');
通过调用我的 symfony 操作
apache 错误说权限 来执行它否认。
我认为 www-data
用户没有权限我该如何解决这个问题?
编辑
error is
sh: /var/www/esm/symfony: 权限被拒绝
I have symfony task call "doNothing" and i want to execute it from executing shell_exec('/var/www/esm/symfony php symfony doNothing');
by calling to my symfony action
apache error saying permission denied.
i think www-data
user dont have permission how could i resolved this?
Edited
error is
sh: /var/www/esm/symfony: permission denied
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该查看脚本所在的目录。
使用 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
是否有 www-data 用户的x
位或它是组 (drwx
rwx
---) 并且它拥有这个目录。当在/var
中执行ls -l
等等...您可以将每个目录的权限更改为 777。但请勿使用
-R
键。只需更改目录的权限即可。You should look in the directory where your script is.
Use
ls -la
to show all files in the folder and their permissions (to execute php script file must have at leastx
bit assigned to www-data or its group).Also all the parent directories up to
/
MUST havex
bit assigned to user/group for apache to be able to change directory to.Look. You have Tree structured Files system:
/var/www
is in/var
/var/www/esm
is in/var/www
/var/www/esm/symfony
is in/var/www/esm
So www-data user should have the ability to Execute (
x
bit) all of that directories.So when in
/
executels -l
and look wheter/var
hasx
bit for www-data user or it's group (drwx
rwx
---) and it owns this directory. When in/var
executels -l
an so on...You can change permissions to 777 for every directory. But DO NOT use
-R
key. Just change permissions to the directory only.