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.

Поскольку вы не предоставили подробных сведений о том, как настроена система, а не о том, что вы пробовали, невозможно быть более конкретным.

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