繁体   English   中英

PHP执行shell命令权限被拒绝

[英]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服务器用户( apachewww-datahttpd )来执行。 确保要运行的命令具有正确的所有权/权限。 实现此目的的最简单方法是将您的Web服务器用户添加到新组中,例如testchgrp test /usr/local/bin/bag

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM