Назад | Перейти на главную страницу

Apache не может получить доступ к смонтированному общему ресурсу Samba

Я запускаю Apache 2.2 на CentOS 6.5, и у меня проблемы с доступом к общему ресурсу Samba, который я смонтировал.

Мой веб-корень /var/www/html, и я создал в корне папку с именем intranet, и я подключаю общий ресурс к этой папке, используя следующую строку в fstab:

\\remote.server\share\intranet  /var/www/html/intranet  cifs    rw,auto,guest,uid=apache,gid=apache 0 0

Я могу получить доступ к этому общему ресурсу и прочитать / записать его как root. Я также могу sudo -u apache читать и писать акцию. Насколько я могу судить на системном уровне, общий ресурс монтируется точно так, как нужно.

Однако, когда я пытаюсь получить доступ к общему ресурсу, перейдя в http:\\myserver\intranet Я получаю следующее сообщение:

You don't have permission to access /intranet/ on this server.

Однако когда я umount intranet, Я могу получить доступ к простой папке intranet с участием http:\\myserver\intranet успешно, что говорит мне о моем httpd.conf и .htaccess настроен правильно.

Насколько я могу судить, проблема в том, что где-то по ходу дела какое-то разрешение не переводится правильно. Я не уверен, что еще я могу сделать, чтобы решить эту проблему.

РЕДАКТИРОВАТЬ: Я понимаю, что ничего не сказал, но мои файлы httpd.conf и .htaccess настроены на FollowSymLinks. Я успешно протестировал это, связав тестовый каталог и открыв его.

Хорошо, я понял это. Проблема была в SELinux.

Политика httpd_use_cifs был установлен в офф. Я смог увидеть это, запустив:

getsebool -a | grep httpd

Потом я увидел это httpd_use_cifs --> off. Оставалось только изменить политику:

setsebool -P httpd_use_cifs on

Обратите внимание -P flag записывает политики на диск, поэтому они сохранятся после перезагрузки. Вы можете опустить флаг -P, чтобы временно проверить изменение политики, не записывая его на диск.

Самая простая вещь для меня - это символическая ссылка на / var / www / html /, например ln-s / path / to / share / linkname.