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

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

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

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

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

3 ответа

chdir(__DIR__);

или же

chdir(dirname(__FILE__));

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

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

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

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

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

chdir(dirname(__FILE__));

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

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