首页 文章

php无法执行任何外部命令?

提问于
浏览
1

我们在这里从Slackware转移到CentOS,它工作正常,没有通知,php停止执行外部调用,如调用“wc”和“spamc” . 所有这些调用都出现在error_log上:

sh:/ usr / bin / spamc:权限被拒绝

路径是正确的 . 我们正确设置了权限,并且apache应该能够毫无问题地执行文件 . 我们在safe_mode上是 NOT ,我们没有设置base_dir . 它不是SELinux,或者至少sestatus说SELinux被禁用了 .

摘要:

  • PHP无法通过exec()或popen()执行任何操作

  • 二进制文件的路径是正确的 .

  • 我们未处于安全模式

  • 我们没有设置base_dir

  • 二进制文件的权限允许apache用户执行它们

  • SELinux已禁用
    php.ini中的

  • disable_functions为空

  • 我们不知道为什么它不起作用

PHP版本5.3.3和CentOS 5.5

任何人都知道可能发生的事情?提前致谢

4 回答

  • 0

    SELinux阻止了您运行它们的尝试 . 我建议您提出一些规则,允许您运行所需的外部命令子集并将其作为模块加载 .

  • 2

    发现错误 .

    我试图执行/ usr / bin / tidy例如,usr文件夹有644权限,类似于我书中的lovecraftian恐怖 . 我可以工作,因为我是根 .

    我疯狂地想出来并决定检查命令的所有路径组件的权限从root /文件夹到整洁的二进制文件,我发现所有权限设置正确但usr文件夹权限完全搞砸了 .

    这是固定的 .

  • 1

    PHP是否在服务器上以Apache身份运行?我以为它像没人一样运行..

  • 0

    https://serverfault.com/questions/207989/php-cant-execute-any-external-command/208001#208001

    一般来说,除了你已经将php编译为fastcgi,dso等之外,在centOS上运行PHP是没有人的...

相关问题