【发布时间】:2010-12-01 17:11:29
【问题描述】:
我们在这里从 Slackware 迁移到 CentOS,它工作正常,然后在没有通知的情况下,php 停止执行外部调用,例如对“wc”和“spamc”的调用。所有此类调用在 error_log 上显示为:
sh: /usr/bin/spamc: 权限被拒绝
路径正确。我们正确设置了权限,并且 apache 应该能够毫无问题地执行文件。我们NOT处于安全模式并且我们没有设置 base_dir。它不是 SELinux,或者至少 sestatus 说 SELinux 已禁用。
总结:
- PHP 无法通过 exec() 或 popen() 执行任何操作
- 二进制文件的路径正确。
- 我们未处于安全模式
- 我们没有设置 base_dir
- 二进制文件的权限允许 apache 用户执行它们
- SELinux 已禁用
- php.ini 中的 disable_functions 为空
- 我们不知道为什么它不起作用
PHP 版本 5.3.3 和 CentOS 5.5
有人知道可能发生的事情吗? 提前致谢
【问题讨论】:
-
在服务器故障或网站管理员上可能会得到更好的回答:serverfault.com 或 webmasters.stackexchange.com
-
这个问题比较适合serverfault.com
-
@Andre Garzia - 你的完整命令是什么样的?
-
多么愚蠢的措辞:“php 不能……”。请记住,每次出现问题时,都不是 php 的错,而是你的错。
-
好吧,您似乎在混淆“php can´t”,因为 php 没有此类功能,“php can´t”表示“我的 php 安装无法执行此操作” ”。并且责任不在我身上,因为我没有更改权限来破坏系统。此外,您的评论对讨论或解决方案没有任何帮助,这意味着它是无用的,您应该帮助人们而不是责怪他们。他们是来寻求帮助的,不是为了让你感到优越。我们仍然不知道是什么将“usr”更改为 644,但这不是用户发起的事情,并且确定这不是我的错。该死的人,总是试图责怪别人......
标签: php exec centos permission-denied