Apache/PHP не может получить доступ к подключенному диску
Я пытаюсь получить доступ к подключенному диску из PHP/Apache (LAMP @ CentOS). Например, делая скандир:
scandir($dir);
Хотя это прекрасно работает для любого каталога, который находится на том же физическом диске, на котором установлен Apache (включая root, var и т. Д.), Он не работает для внешних смонтированных дисков:
scandir('/var/log');
который находится на локальном диске, который также содержит / var / www / html
обеспечивает корректный вывод, тогда как
scandir('/mnt/data');
(который является креплением к внешнему fs) нет.
Я экспериментировал с разрешениями файловой системы и директивами httpd.conf (Alias / Directory), но пока не смог найти решение.
Кто-нибудь может указать мне, как получить доступ к внешним дискам (/mnt/ что угодно) из Apache/PHP? Спасибо!
1 ответ
Если процесс может увидеть точку монтирования, он сможет получить доступ к файлам в нем, при условии, что разрешения, включая acls и любую систему MAC, позволяют это (MAC здесь относится к системам обязательного контроля доступа, т.е. selinux и apparmor).
Необходимо либо изменить ваши разрешения, либо веб-сервер работает в среде chroot (например, то, что он видит как / is /var/websrv/), либо вы не внесли правильные изменения в конфигурацию httpd.
Поскольку вы не предоставили подробных сведений о том, как настроена система, а не о том, что вы пробовали, невозможно быть более конкретным.