Apache VirtualHost 403 запрещено

91

Недавно я попытался установить тестовый сервер с 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 admin@mytest.com
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. Поскольку многие функции этого сайта чувствительны к положению, я должен иметь доступ к сайту по имени домена.

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

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

  • 0
    Вы можете добавить содержимое: sudo sh -c ". /etc/apache2/envvars; apache2 -S" (список виртуальных хостов) и: sudo sh -c ". /etc/apache2/envvars; grep -R Listen /etc/apache2/*|grep -v \"#\"; grep -R NameVirtual /etc/apache2/*|grep -v \"#\""
  • 0
    Первая команда возвращает следующее: VirtualHost configuration: 192.168.2.5:* www.mytest.com (/etc/apache2/sites-enabled/mytest.com:1) Syntax OK Вторая возвращает: /etc/apache2/ports.conf:Listen 80 /etc/apache2/ports.conf: Listen 443 /etc/apache2/ports.conf: Listen 443 /etc/apache2/conf.d/virtual.conf:NameVirtualHost *
Показать ещё 1 комментарий
Теги:
virtualhost
http-status-code-403

7 ответов

227
Лучший ответ

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>
  • 3
    Я хотел бы отметить, что если у вас возникла эта проблема с использованием виртуальных хостов, вам нужно будет добавить «Требовать все предоставленные» в настройки каждого виртуального хоста в файле apache / conf / extra / httpd-vhosts.conf.
  • 1
    Я добавил эту директиву в /etc/apache2/apache2.conf и это помогло, спасибо!
Показать ещё 5 комментариев
10

Для 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>
8

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

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

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

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

  • 4
    Writable? действительно? Я не уверен
4

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

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

  • 0
    Вау, это так странно.
0

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

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

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

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

0

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

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

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!!!

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

0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню