Запрещено 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;

потому что он работал до этого, я бы не тратил время на исправление файла по файлу