首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP执行shell命令权限被拒绝

PHP执行shell命令权限被拒绝
EN

Stack Overflow用户
提问于 2015-01-07 19:58:50
回答 2查看 1.6K关注 0票数 1

我通过自制安装了一个应用程序(bagit),并试图从我的本地Apache服务器(安装在OSX上)执行一个shell命令。

我的PHP如下所示:

代码语言:javascript
复制
$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命令?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-07 20:01:32

您的apache安装将需要作为与其试图执行的文件相同的用户/组运行。

您可以将要执行的应用程序的文件权限更改为与apache/php当前用户/组相同的文件权限(或777等)

或者您可以更改apache/php,使其作为一个更隐私的用户/组运行。

  • 交替

您可以将应用程序的方法更改为SSH到您的可执行环境中,并在SSH上执行应用程序。

票数 0
EN

Stack Overflow用户

发布于 2015-01-07 20:10:07

当PHP试图执行某些内容时,它将充当默认的web服务器用户(apachewww-datahttpd)。确保要运行的命令具有正确的所有权/权限。实现这一目标的最简单方法是将您的web服务器用户添加到一个新的组中,比如testchgrp test /usr/local/bin/bag

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27827632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档