无法找到位于上两个目录中的文件

无法找到位于上两个目录中的文件

目前,我的目录结构如下:

- project
 - app
  - Config
   - file1.php
 - file.txt

该项目文件夹位于/var/www/html文件夹中。我将file.txt使用file1.php以下代码进行包含。

require_once '../../file.txt';

问题是,即使文件存在,它也无法找到它。这在装有 Ubuntu 18.04 的本地系统上运行良好,但在装有 Ubuntu 19.04 的服务器上却无法运行。该项目是使用 CakePHP 框架构建的。

$ ls -ld /var/www/html/project /var/www/html/project/app \
         /var/www/html/project/app/Config /var/www/html/project/file.txt
drwxr-xr-x  6 root root 4096 May 30 11:01 /var/www/html/project
drwxrwxr-x 13 root root 4096 May 29 08:09 /var/www/html/project/app
drwxrwxr-x  3 root root 4096 May 30 05:29 /var/www/html/project/app/Config
-rw-r--r--  1 root root 3401 May 30 11:13 /var/www/html/project/file.txt

答案1

在我看来,这是当前工作目录的不同php。工作系统将其.../project/app/Config作为当前目录,而损坏的系统将其.../project作为当前目录。

一种解决方法是确定的file1.php当前目录,然后file.txt使用相对路径引用那里。如果我在中使用它file1.php,它正确地包括file.txt

require_once(dirname(__FILE__).'/../../file.txt');

相关内容