【问题标题】:Directory not changing using exec comman in php在php中使用exec命令不改变目录
【发布时间】:2014-04-11 12:36:54
【问题描述】:

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

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

当我执行以下代码时

<?php

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

?>

我的目录没有更改为根目录

【问题讨论】:

    标签: php linux exec cd


    【解决方案1】:

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

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

    如果它在网站上运行并且运行 HTTP 服务器的用户无权访问 /root,则此方法可能不起作用。

    exec() 不起作用的原因是它每次都会打开一个新的子进程。将当前目录合二为一不会影响之后生成的其他目录。

    【讨论】:

    • 是的,网络服务器运行正常,实际上我想使用 PHP exec 执行一些 java 命令,我该怎么做?
    • @opensource-ios 如上所述,使用chdir()切换到你想要的目录。
    • @opensource-ios 那么我假设你无权访问/root
    • 我怎样才能获得root权限?这是我可以通过命令提示符做的事情吗
    • @opensource-ios /root 的全部意义在于只有超级用户才能访问。只需在其他地方(可能在 /usr/local/ 内)创建一个文件夹,并赋予它全球可读的权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    相关资源
    最近更新 更多