PHP:如何将当前工作目录设置为与执行脚本的目录相同

2022-08-30 17:44:33

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

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

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

编辑:似乎我的工作目录并不像我想象的那样是root。当我创建一个 testFile.php和 echo getcwd() 它显示了 php 文件所在的目录。但是在我的问题文件中,在同一目录中,getcwd()显示为'/'


答案 1

chdir(__DIR__);

chdir(dirname(__FILE__));

(参见 chdir魔术常量)。

但这应该是默认的。


答案 2

这在 CLI 模式下是正常的

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

一个快速的解决方法是

chdir(dirname(__FILE__));

推荐