echo shell_exec("ps auxwww");
echo shell_exec("cut -d. -f1 /proc/uptime");
echo shell_exec("date");
给出输出;
echo shell_exec("ifconfig eth0");
echo shell_exec("top -n 1");
不提供输出
当我通过putty以root身份登录并删除它们时,所有这些命令都能正常工作。我在这里读到了一些类似问题的问题,其中一个问题是添加" 2>& 1"到命令的最后将修复它。在我的情况下,这没有做任何事情。还尝试使用exec()而不是shell_exce()。任何人都知道发生了什么? /我做错了什么?
谢谢你的时间答案 0 :(得分:3)
据我所知,通过PHP生成输出的命令有这个共同点:
常见问题包括:
shell_excec()
的错误检查功能确实很差(尽管您至少可以测试null
的返回值)程序执行失败的原因与常规shell完全相同:
在你的情况下:
ifconfig
通常位于/sbin/ifconfig
;非root用户的路径中没有/sbin
top
期望更新TTY窗口中的随机字节我的建议是使用提供exec()等更多信息的功能进行故障排除,但请确保您确实阅读了此类信息。阅读stderr
也很有帮助 - 您可以直接将其重定向到其他位置(文件或stdout
)或use a function that can read it。