Не удалось найти файл, находящийся в двух каталогах вверх

В настоящее время структура моего каталога выглядит следующим образом:

- 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
2
задан 30 May 2019 в 15:25

1 ответ

Мне кажется, это разница в текущем рабочем каталоге php. Рабочая система имеет .../project/app/Config в качестве текущего каталога, в то время как сломанная система имеет .../project в качестве текущего каталога.

Одним из обходных путей было бы определить текущий каталог file1.php и затем обратиться к file.txt с относительным путем из туда . Если я использую это в file1.php, это правильно включает в себя file.txt:

require_once(dirname(__FILE__).'/../../file.txt');
0
ответ дан 30 May 2019 в 15:25

Другие вопросы по тегам:

Похожие вопросы: