23

我正在将我的网站从一台服务器转移到另一台服务器。我有一些使用 is_readable 函数的 php 脚本,该函数使用当前工作目录。

在旧服务器上,当我调用 getcwd() 时,它会输出正在执行脚本的文件夹。在新服务器上,它输出根目录'/'。

我想知道如何配置 PHP 以使用当前文件夹而不是“/”。 我不想更改任何已经在旧服务器上运行的 PHP 代码。我可以配置新服务器,但不知道要更改哪些设置。我正在使用 apache2,如果有帮助的话。

编辑:好像我的工作目录不像我想的那样是根目录。当我创建 testFile.php 并回显 getcwd() 时,它显示 php 文件所在的目录。但在我的问题文件中,在同一目录中,getcwd() 显示为“/”

4

3 回答 3

32

chdir(__DIR__);

或者

chdir(dirname(__FILE__));

(参见chdir魔法常数)。

但这应该是默认的。

于 2011-03-10T00:17:55.463 回答
8

这在CLI 模式下是正常的:

它不会将工作目录更改为脚本的工作目录。(保留 -C 和 --no-chdir 开关以保持兼容性)

一个快速的解决方法是

chdir(dirname(__FILE__));
于 2011-03-10T00:18:56.567 回答
2

您可以获取脚本所在的当前目录,dirname(__FILE__)或者__DIR__如果 >= PHP 5.3。

于 2011-03-10T00:18:21.720 回答