system()在php中修改命令

system()在php中修改命令,php,Php,我试图通过PHP中的系统执行一个命令。命令为/usr/bin/unzip,但函数返回错误代码127。没有其他输出。如果我在shell中直接运行同一个命令,它就会工作 apache错误日志显示“sh:/unzip:notfound”。我还尝试将命令放入与PHP脚本位于同一目录中的shell脚本中,并通过系统调用shell脚本。同样的情况也会发生:如果shell脚本被称为'doit.sh',apache日志中的错误消息将是'sh:/doit.sh:notfound' exec也有同样的行为 PHP版

我试图通过PHP中的系统执行一个命令。命令为/usr/bin/unzip,但函数返回错误代码127。没有其他输出。如果我在shell中直接运行同一个命令,它就会工作

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

exec也有同样的行为

PHP版本是5.2.11-2,带有suhosin扩展


你知道PHP会对我的命令做什么吗

当您应该使用“/usr/bin/unzip”时,似乎正在发送命令“unzip”

如果没有,那么,您是否检查了Web服务器是否在chroot环境中运行


C.

是否可以尝试使用命令名

system('unzip somestuff', $retval);

您只需在php.ini中关闭安全模式,而不必进行解压


如果“安全模式”处于启用状态且“安全模式执行目录”属性为空,您将获得与所述完全相同的行为。

system'/usr/bin/unzip something',$retval;var_dump$retval;你还需要什么?当我在/proc//root下查看时,它显示的是真实的/,所以我猜它不是chrooted,我认为它是关闭的,它是全局的,而不是局部的。