Запрещено использование Apache VirtualHost 403

Недавно я попытался установить тестовый сервер с Apache. Сайт должен работать под доменом www.mytest.com. Я всегда получаю ошибку 403 Forbidden. Я на сервере Ubuntu 10.10. Корень doc находится под dir /var/www. Ниже приведены мои настройки:

Содержимое /var/www

ls -l /var/www/

total 12
drwxr-xr-x 2 root root 4096 2011-08-04 11:26 mytest.com
-rwxr-xr-x 1 root root 177 2011-07-25 16:10 index.html

Содержимое файла хоста на сервере (с IP 192.168.2.5)

cat /etc/hosts

127.0.0.1 localhost 
127.0.1.1 americano
192.168.2.5 americano.mytest.com www.mytest.com

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Конфигурация сайта

<VirtualHost *>
ServerAdmin [email protected]
ServerName www.mytest.com
ServerAlias mytest.com

DocumentRoot "/var/www/mytest.com"

ErrorLog /var/log/apache2/mytest-error_log
CustomLog /var/log/apache2/mytest-access_log combined

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/var/www/mytest.com">
Options -Indexes FollowSymLinks
AllowOverride None

Order allow,deny
Allow from all
</Directory>
</VirtualHost>

У меня нет файла .htaccess в моем корне doc. Разрешения установлены правильно (читается www-данными).

Если я набираю IP-адрес с моего рабочего стола, сайт отображается правильно. Я изменил файл hosts на своем рабочем столе, чтобы указать www.mytest.com на IP-адрес сервера. Когда я его использую, я получаю 403. Поскольку многие функции этого сайта чувствительны к положению, я должен иметь доступ к сайту по имени домена.

Еще одна напуганная вещь, даже если все файлы журналов созданы правильно, они не имеют информации об этой ошибке.

Я застрял. Может ли кто-нибудь помочь?

Ответ 1

Apache 2.4.3 (или, возможно, чуть раньше) добавил новую функцию безопасности, которая часто приводит к этой ошибке. Вы также увидите сообщение журнала формы "клиент, отказавшийся от конфигурации сервера". Эта функция требует, чтобы идентификатор пользователя обращался к каталогу. Он включен DEFAULT в httpd.conf, который поставляется с Apache. Вы можете увидеть включение функции с директивой

Require all denied

В основном это говорит о запрете доступа ко всем пользователям. Чтобы устранить эту проблему, либо удалите директиву denied (или намного лучше), добавьте следующую директиву в каталоги, к которым вы хотите предоставить доступ:

Require all granted

как в

<Directory "your directory here">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>

Ответ 2

Для apache Ubuntu 2.4.7 я, наконец, нашел, что вам нужен белый список вашего виртуального хоста в apache2.conf

# access here, or in any related virtual host.
<Directory /home/gav/public_html/>
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Ответ 3

Это может быть проблема с разрешениями.

каждый родительский путь к корню виртуального документа должен быть Readable, Writable и Executable веб-сервером. httpd user

в соответствии с на этой странице об ошибках Apache 403.

Поскольку вы используете Allow from all, ваш заказ не должен иметь значения, но вы можете попробовать переключить его на Deny,Allow, чтобы установить поведение по умолчанию "allow."

Ответ 4

Переместите предложение Directory из виртуального хоста и поместите его перед объявлением виртуального хоста.

Дал мне орехи еще долгое время. Не знаю, почему. Это вещь Debian.

Ответ 5

моя проблема заключалась в том, что разрешение доступа к файлам было неправильным, я изменил разрешения каталога и работал у меня

Ответ 6

Я просто потратил несколько часов на эту глупую проблему.

Сначала измените разрешения, используя это в терминале

find htdocs -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +

Я не знаю, какая разница между 664 и 775 Я сделал оба 775, как это Также htdocs нуждается в пути к каталогу, например, для меня это было

/usr/local/apache2/htdocs 

find htdocs -type f -exec chmod 775 {} + -o -type d -exec chmod 775 {} +

Это тоже глупое дело

убедитесь, что ссылка на изображение src является вашим доменным именем, например

src="http://www.fakedomain.com/images/photo.png"

Обязательно

EnableSendfile off in httpd.conf file
EnableMMAP off in httpd.conf file

Вы редактируете те, которые используют pico в терминале

Я также создал каталог для изображений специально, чтобы при вводе адресной строки браузера domainname.com/images вы получите список фотографий, которые можно загрузить и загрузить, чтобы указать файлы изображений, которые правильная работа

<Directory /usr/local/apache2/htdocs/images>
AddType images/png .png
</Directory>

И это те решения, которые я пробовал, теперь у меня есть работающие образы... yay!!!

К следующей проблеме (задачам)

Ответ 7

У меня была такая же проблема с виртуальным хостом на Ubuntu 14.04

Для меня работало следующее решение:

http://ubuntuforums.org/showthread.php?t=2185282

Он просто добавляет тег <Directory > к /etc/apache2/apache2.conf