Я пытаюсь получить список всех файлов и каталогов в каталоге на сервере CentOS 7, используя класс управления файлами. Каталог, к которому я хочу получить доступ, — /monitor/demo3
(я проверил).
Функция-член класса, предназначенная для этого, должна возвращать массив всех файлов и каталогов в случае успеха или false в случае неудачи. Это часть кода, где что-то перестает работать (остальная часть кода не нужна для объяснения этой проблемы):
try {
$handle = opendir($path);
if ($handle !== false) {
/*
Some code that's never executed
because $handle is always false.
*/
} else {
echo 'Failed to open directory! ' . $path;
return false;
}
} catch (Error $err) {
echo $err->getMessage();
return false;
}
Итак, согласно официальной документации PHP, opendir()
возвращает дескриптор каталога на успех или выдать ошибку и вернуть false в случае неудачи. Но в этом случае он почему-то возвращает false, но не выдает ошибку. Это происходит независимо от того, является ли $path
допустимым путем к каталогу или нет.
Вместо этого я попытался заставить его работать с scandir()
, но происходит то же самое.
Когда я запускаю это на своем ПК с Windows 10, оно работает как положено и возвращает массив или выдает ошибку. Все, что я изменил, — это путь к каталогу, и решения с opendir()
и scandir()
работали.
Пользователь apache находится в группе wheel с правами sudo, все рассматриваемые каталоги и файлы имеют права 777 (временно, для проверки). Я попытался скопировать php.ini со своего компьютера на сервер. У меня совсем нет идей.
opendir()
) возвращает FALSE в случае сбоя! - person Luuk   schedule 09.06.2020