В последние дни я боролся с этой проблемой, и до сих пор не могу найти никакого решения. Проблема в нескольких словах:(сообщение об ошибке):
H00035: доступ к index.php запрещен, так как отсутствуют разрешения на поиск для компонента пути
Где это приложение работает?
- хост Windows 10
- это виртуальная машина, работающая внутри VirtualBox и управляемая Vagrant
- CentOS Linux выпуск 7.5.1804 (Core)
- Apache/2.4.33 (IUS)
- PHP 7.2.6 (нет, это имеет значение, но на всякий случай)
- SELinux: принуждение
Что я уже пробовал:
Запустил следующие команды в поле: Это сработало? НЕТ (найдено здесь)
find /var/www -type d -exec chmod 755 {} \; find /var/www -type f -exec chmod 664 {} \;
Запустил следующие команды в поле: Это сработало? НЕТ (найдено здесь)
chcon -R -t httpd_sys_content_t /var/www
Здесь все перепробовал, сработало? №
Что я пробовал и работает? Отключить SELinux !!! Так что наверняка это мисс конфигурация SELinux.
Разрешения в /var/www
выглядят следующим образом:
# namei -mo /var/www/api/public/index.php
f: /var/www/api/public/index.php
dr-xr-xr-x root root /
drwxr-xr-x root root var
drwxrwxr-x vagrant vagrant www
drwxrwxr-x vagrant vagrant api
drwxrwxr-x vagrant vagrant public
-rwxrwxr-- vagrant vagrant index.php
Что еще я могу попробовать здесь, чтобы исправить проблему? Я знаю, что легкий путь - это "отключить SELinux", но я не хочу этого делать, было бы лучше узнать, как все делать правильно :)
Эта коробка была построена с использованием Puphpet, и я могу поделиться ей. Дайте мне знать, если вам это нужно для тестирования.
ОБНОВЛЕНИЕ № 1:
Ответ @ hbruijn дал мне идею сменить владельца с vagrant
на Apache www-data
и H00035
пропал, однако я получил новый.
// Before
synced_folder:
folder1:
owner: vagrant
group: vagrant
source: ../../www/html
target: /var/www
sync_type: default
// After
synced_folder:
folder1:
owner: www-data
group: www-data
source: ../../www/html
target: /var/www
sync_type: default
Ошибка как сейчас:
(13) Отказано в доступе: [клиент 192.168.50.1:2048] AH00529: /var/www/api/public/.htaccess pcfg_openfile: невозможно проверить файл htaccess, убедитесь, что он доступен для чтения и что '/var /www /api /public /'исполняемый
Это результат ответа @ hbruijn:
# ls -lZ /var/www/
drwxrwxr-x. www-data www-data system_u:object_r:vmblock_t:s0 api/
-rwxrwxr--. www-data www-data system_u:object_r:vmblock_t:s0 index.html*
Я снова выполнил ту же команду: find /var/www -type f -exec chmod 664 {} \;
но это ничего не изменило, что означает, что разрешения остаются такими же, как и раньше.
Есть идеи?