[英]Execute symfony task command from the shell_exec() permission denied
[英]PHP execute shell command permission denied
我通过自制软件安装了一个应用程序(bagit),并试图从本地Apache服务器(安装在OSX上)执行shell命令。
我的PHP看起来像这样:
$cmd = 'bag create '.$targetFolder.' '.$sourceFolder.' --baginfotxt '.$bagInfoFile ." 2>&1";
$output = shell_exec($cmd);
但是,我收到以下错误消息:
/bin/bash: /usr/local/bin/bag: Permission denied
如何授予Apache访问`/ usr / local / bin中的bash命令的权限?
您的apache安装将需要以与其尝试执行的文件相同的用户/组身份运行。
您可以将要执行的应用程序的文件权限更改为与apache / php当前用户/组(或777等)相同。
或者,您也可以更改apache / php使其以特权更高的用户/组身份运行。
您可以将应用程序的方法更改为SSH到可执行环境中,然后通过SSH执行该应用程序。
当PHP尝试执行某些操作时,它将作为默认的Web服务器用户( apache
, www-data
或httpd
)来执行。 确保要运行的命令具有正确的所有权/权限。 实现此目的的最简单方法是将您的Web服务器用户添加到新组中,例如test
和chgrp test /usr/local/bin/bag
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.