我正在尝试通过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可以对我的命令做些什么?
答案 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
属性为空,则您将获得与所述完全相同的行为。