您好我正在尝试使用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
答案 0 :(得分:1)
我认为您需要使用chdir()
而不是exec('cd /root/')
:
<?php
ini_set('error_reporting', E_ALL);
$var = chdir('/root/');
echo exec('pwd'); // Prints /root
如果在网站上运行并且HTTP服务器正在运行的用户无法访问/root
,则可能无效。
exec()
无法正常工作的原因是它每次都会打开一个新的子流程。将当前目录更改为一个目录不会影响其后生成的目录。