Ответ 1
chdir(__DIR__);
или
chdir(dirname(__FILE__));
(см. chdir и магические константы).
Но это должно быть по умолчанию.
Я перехожу к передаче моего веб-сайта с одного сервера на другой. У меня есть некоторые скрипты php, которые используют функцию is_readable, которая использует текущий рабочий каталог.
На старом сервере, когда я вызываю getcwd(), он выдает папку, в которой выполняется script. На новом сервере он выводит корневой каталог '/'.
Я хотел бы знать, как настроить PHP для использования текущей папки вместо '/'. Я не хочу менять какой-либо PHP-код, который уже работает на старом сервере. Я могу настроить новый сервер, но не знаю, какие настройки изменить. Я использую apache2, если это помогает.
EDIT: Кажется, что мой рабочий каталог не root, как я думал. Когда я создаю testFile.php и echo getcwd(), он показывает каталог, в котором находится php файл. Но в моем файле проблемы в том же каталоге getcwd() отображается как "/"
chdir(__DIR__);
или
chdir(dirname(__FILE__));
(см. chdir и магические константы).
Но это должно быть по умолчанию.
Это нормально в режиме CLI:
Он не меняет рабочий каталог на каталог script. (-C и -no-chdir для обеспечения совместимости)
быстрое обходное решение будет
chdir(dirname(__FILE__));
Вы можете получить текущий каталог a script с dirname(__FILE__)
или __DIR__
if >= PHP 5.3.