PHP включает в себя проблему пути - PullRequest
1 голос
/ 25 июня 2011

Я установил apache, чтобы все запросы отправлялись в файл /var/www/common_index.php

Теперь common_index.php просматривает запрашиваемое имя файла и ищет соответствующий файл / var / www / 123 /public_html / required_file.php

У меня проблемы, когда я включаю файл (с относительным путем) в запрашиваемый_файл.php.Он пытается найти файл в / var / www вместо / var / www / 123 / public_html /

Как решить эту проблему?

Ответы [ 3 ]

6 голосов
/ 25 июня 2011

Вы можете изменить рабочий каталог в requested_file.php перед вызовом include, чтобы заставить его работать:

chdir(dirname(__FILE__));
include 'path/to/file.php';

или для PHP 5.3 +

chdir(__DIR__);
include 'path/to/file.php';

Если вы не хотите изменять рабочий каталог (что повлияет на другие операции файловой системы), просто добавляйте путь каждый раз, когда вы делаете включение, используя магическую константу __DIR__:

include dirname(__FILE__) . '/path/to/file.php';
include __DIR__ . '/path/to/file.php'; # for PHP 5.3+

где путь относительно файла, в котором вы использовали приведенный выше код.

0 голосов
/ 25 июня 2011

Вы можете использовать __DIR__:

$path = __DIR__;

Принимая во внимание, что $path содержит путь к файлу, который содержит эту строку

0 голосов
/ 25 июня 2011

Отредактируйте ваш DocumentRoot в вашей конфигурации Apache.

Установите /var/www/123/

...