Запрещено 403 Запрещено
Я успешно использовал Vagrant в течение недели. Вчера вечером я бросил бродячую перезагрузку, и теперь я больше не могу обращаться к своим сайтам.
Мои файлы живут на/бродячих/Сайтах. Сначала моя "страница приветствия", которая живет в/бродягах/Сайтах, оказанных при
http://localhost:4567/
Все мои проекты - это папки под сайтами. Например, /vagrant/Sites/test не будет отображать index.html. Я получаю следующее
Запрещенный
У вас нет разрешения на доступ к этому серверу/на этом сервере.
Apache/2.4.6 (Ubuntu) Сервер на локальном хосте Порт 4567
Призрак выглядит так:
<VirtualHost *:80>
DocumentRoot "/vagrant/Sites/test"
ServerName test
<Directory "/vagrant/Sites/test">
AllowOverride All
</Directory>
</VirtualHost>
vhosts принадлежат root. Мои файлы проекта принадлежат бродячим и chmod'ed 0777.
После успеха я сделал полный бродячий уничтожённый, после чего бродяга поднялся вверх, а затем приветственная страница хозяина хост-хоста остановила рендеринг, а также с запрещенной ошибкой.
Ответы
Ответ 1
Моя догадка заключается в том, что это не бродячая проблема, а только сбой в конфигурации Apache. Есть несколько вещей, которые я могу проверить.
Прежде всего, необходимо подтвердить, что пользователь, которому работает apache, имеет права на чтение и выполнение для папки DocumentRoot.
Поскольку вы упомянули Apache 2.4, , в конфигурациях с 2.2 были внесены изменения. Убедитесь, что ваши инструкции Allow from all
теперь читаются Require all granted
. (Если вы все еще находились в 2.2, вы должны убедиться, что они сказали Allow from all
вместо Deny from all
.) В любом случае вы можете установить это в каждом <VirtualHost>
отдельно или установить значение по умолчанию в <Directory />
блока основного файла httpd.conf
.
Получение более неясного, вы можете проверить selinux, хотя я уверен, что этого нет в Ubuntu по умолчанию. (Например, в CentOS).
Ответ 2
Это решено и, в конце концов, дошло до очень простых вещей.
- Используйте "Требовать все предоставленные" вместо "Разрешить от всех"
- Поместите содержимое каждого веб-сайта на тот же уровень, а именно
/vagrant/Sites/default
, /vagrant/Sites/test
, /vagrant/Sites/real-site
- Добавьте расширение .conf к именам vhost, таким как test.conf и real-site.conf
- Добавить AllowOverride Все в vhosts для просмотра файла .htaccess сайтов. Я понимаю, что это было в моем оригинальном посте, оно потерялось, когда я пытался это решить.
Все очень простые вещи, которые ускользали от меня в течение большей части недели. Надеюсь, это поможет кому-то другому.
Ответ 3
У меня была такая же проблема при изменении DocumentRoot.
Поскольку вы изменили свой DocumentRoot на "/any/path/foo/bar", убедитесь, что у вас есть разрешения, установленные для "apache2.conf" для этого пути.
Искать:
<Directory /any/path/foo/bar>
в apache2.conf
И добавьте новый блок следующим образом:
<Directory /any/path/foo/bar>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
И я предполагаю, что все будет хорошо!
Ответ 4
cd /etc/apache2/sites-available
for file in `ls *`; do sed 's/\(.*<\/Directory.*>\)/Require\ all\ granted\n\1/' $file > $file.new;mv $file.new $file ; done;
потому что он работал до этого, я бы не тратил время на исправление файла по файлу