目录不在php中使用exec命令更改

时间:2014-04-11 12:36:55

标签: php linux exec cd

您好我正在尝试使用exec命令并更改目录以执行特定命令,但更改目录不起作用

when i execute exec('whoami'); i get proper output

当我执行以下代码

<?php

ini_set('error_reporting', E_ALL);
$var =  exec('cd /root/');
echo exec("pwd");

?>

我的目录未更改为root

1 个答案:

答案 0 :(得分:1)

我认为您需要使用chdir()而不是exec('cd /root/')

<?php

ini_set('error_reporting', E_ALL);
$var = chdir('/root/');
echo exec('pwd'); // Prints /root

如果在网站上运行并且HTTP服务器正在运行的用户无法访问/root,则可能无效。

exec()无法正常工作的原因是它每次都会打开一个新的子流程。将当前目录更改为一个目录不会影响其后生成的目录。