无法在PHP shell_exec()中运行“cd”命令

时间:2011-10-14 18:25:24

标签: php

我最近在我大学的以太网连接上安装了Apache设备的笔记本电脑。现在我可以从任何地方连接到我的电脑,只要我有IP地址或主机名(我可以选择)。现在我想创建一个基于Web的命令提示符,让我可以从任何设备上运行我的笔记本电脑上的命令。

一个问题是我无法运行“cd”命令。我有我的PHP脚本设置,因此它可以运行由换行符分隔的一系列命令。所以我运行“cd ../”然后“pwd”但它仍然在我的Web应用程序的根目录中。我该如何解决?

2 个答案:

答案 0 :(得分:12)

如果你这样做:

 shell_exec("cd ..");
 shell_exec("pwd");

然后第二个命令将使用一个新的shell执行,它具有与第一个相同的起始目录,因为它是当前PHP的子进程。

使用第一个shell exec更改当前目录不会持续到第二个。这样一系列依赖的shell命令只能通过一次执行all来实现:

 shell_exec("cd .. ; pwd");

答案 1 :(得分:10)

我认为您必须更改当前进程/脚本的目录。您可以使用chdir执行此操作。然后,您可以运行shell_exec

我假设您意识到您的解决方案会产生严重的安全问题......