【问题标题】:PHP shell_exec permissions in nginxnginx 中的 PHP shell_exec 权限
【发布时间】:2015-03-08 19:30:13
【问题描述】:
echo shell_exec('ls');

工作正常。

但试图复制一些东西:

 echo shell_exec('cp index.php temp/index.php');

它没有显示任何错误,但它没有复制。 我正在使用带有 phpcgi 的 nginx。

【问题讨论】:

  • 可能是权限问题
  • 在 php copy() 函数中复制也很有效。所以我必须在哪里设置权限?如何授予 nginx/php 全部权限?
  • 你运行的是什么操作系统?如果它是 Red Hat 发行版,你有 SELinux 强制执行吗?

标签: php nginx permissions shell-exec


【解决方案1】:

试试这两个命令。

chmod -R 777 /path/of/your/app
chown -R apache:apache path/of/your/app

【讨论】:

  • 操作没有使用 apache。你还应该解释你的命令做什么以及为什么它们是必要的。另外我认为对于 apache,您的解决方案有点极端。
  • @d_inevitable,你是对的。我正在使用我的手机。所以;我没有使用您提到的所需信息来扩展我的答案。是的,这是极端的,这在生产中不应该是这样的。这只是为了排除故障并确保这是否是权限问题。
  • 您的答案已被 Stack Overflow 自动标记为“低质量”。这就是为什么你在这里受到如此多的批评。因此,当您使用桌面设备时,您可能希望改进您​​的答案...
  • 谢谢@henrique-kieckbusch
【解决方案2】:

尝试更改临时文件夹的权限。示例:

chmod 777 温度

检查您正在运行 shell_exec 的用户并授予他写入临时文件夹的权限:

echo shell_exec('whoami');

【讨论】:

  • 不知道.. 777 到所有文件夹,但它不起作用... 用户是“apache” 我正在使用 centos 7,我怎样才能给这个用户完全访问权限?
  • 尝试强制复制:cp -f index.php temp/index.php
  • 相同的结果.. 很奇怪.. 我完全没有 cp 或 mv 的权限
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-28
  • 2015-04-08
  • 2021-04-22
  • 1970-01-01
  • 2016-07-28
  • 1970-01-01
相关资源
最近更新 更多