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.