为什么PHP exec()命令不能运行?

为什么PHP exec()命令不能运行?

问题描述:

我有一个非常简单的PHP脚本来尝试使用exec命令。该代码是为什么PHP exec()命令不能运行?

<?php 
// outputs the username that owns the running php/httpd process 
// (on a system with the "whoami" executable in the path) 
echo("test<br>"); 
echo exec('whoami'); 
echo("test"); 
?> 

然而,当我访问该网页,它只是打印出:

test 
test 

它不会从“WHOAMI”命令,从命令行运行时打印输出显示

me 

这里有什么问题?我无法解决这个问题。

非常感谢!

+0

是否有一个名为'whoami'的可执行文件? – Ronnie 2013-02-23 02:16:28

(具有在路径中的“WHOAMI”可执行的系统上)

PATH,像所有的环境变量,是不是全系统的,但最终每个进程

也就是说,虽然典型的bash会话可能包含此可执行文件在PATH中的路径,但您的PHP脚本运行的环境(例如Apache CGI上下文)不会。这可能是出于任何原因。

改为提供到whoami的绝对路径。

+0

什么是特定于tty的? – Starx 2013-02-23 02:19:18

+0

@Starx:特定于一个_tty_或“终端”。一个终端可以是一个shell会话,或者一个RS232管理端口上的提示符,或者一个shell进程分叉掉所有守护进程被调用的root tty。还有其他的例子。 – 2013-02-23 02:19:47

+0

哈哈tty是什么意思? http://www.abouttty.com/ – 2013-02-23 02:20:32