PHP: Как установить текущий рабочий каталог таким же, как каталог, выполняющий скрипт - PullRequest
18 голосов
/ 10 марта 2011

Я в процессе переноса своего сайта с одного сервера на другой.У меня есть несколько PHP-скриптов, которые используют функцию is_readable, которая использует текущий рабочий каталог.

На старом сервере, когда я вызываю getcwd (), он выводит папку, в которой выполняется скрипт.На новом сервере он выводит корневой каталог '/'.

Я хотел бы знать, как я могу настроить PHP для использования текущей папки вместо '/'. Я не хочу менять код PHP, который уже работает на старом сервере.Я могу настроить новый сервер, но не знаю, какие настройки изменить. Я использую apache2, если это помогает.

РЕДАКТИРОВАТЬ: создается впечатление, что мой рабочий каталог не является root, как ядумал.Когда я создаю testFile.php и echo getcwd (), он показывает каталог, в котором находится файл php. Но в моем проблемном файле, в том же каталоге, getcwd () отображается как '/'

Ответы [ 3 ]

21 голосов
/ 10 марта 2011

chdir(__DIR__);

или

chdir(dirname(__FILE__));

(см. chdir и магические константы ).

Но это должно быть по умолчанию.

6 голосов
/ 10 марта 2011

Это нормально в режиме CLI:

Он не меняет рабочий каталог на каталог скрипта.(Ключи -C и --no-chdir сохранены для совместимости)

быстрый обходной путь будет

chdir(dirname(__FILE__));
2 голосов
/ 10 марта 2011

Вы можете получить текущий каталог, в котором находится скрипт, с dirname(__FILE__) или __DIR__, если> = PHP 5.3.

...