system()在php中破坏了命令

时间:2010-01-11 16:25:43

标签: php

我正在尝试通过PHP中的system()执行命令。该命令是/ usr / bin / unzip,但该函数返回错误代码127.没有输出任何其他内容。如果我直接在shell中运行相同的命令,它就可以工作。

apache错误日志显示'sh:/ unzip:not found'。我还尝试将命令放入与PHP脚本位于同一目录的shell脚本中,并通过system()调用shell脚本。同样的情况发生:如果shell脚本被称为'doit.sh',则apache日志中的错误消息将是'sh:/doit.sh:not found'。

exec()具有相同的行为。

PHP版本为5.2.11-2,带有suhosin扩展名。

PHP可以对我的命令做些什么?

4 个答案:

答案 0 :(得分:4)

您可以使用PHP's zip functions

,而不是炮轰解压缩

答案 1 :(得分:3)

当你应该使用'/ usr / bin / unzip'时,看起来你正在发送命令'unzip'

如果没有,那么,您是否检查过您的网络服务器是否在chroot环境中运行?

下进行。

答案 2 :(得分:1)

也许只用命令名尝试?

system('unzip somestuff', $retval);

答案 3 :(得分:0)

在php.ini中关闭安全模式。

如果启用了安全模式且safe_mode_exec_dir属性为空,则您将获得与所述完全相同的行为。