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



недавно я попытался установить тестовый сервер с Apache. Сайт должен работать под доменом www.mytest.com. Я всегда получаю 403 Forbidden ошибка. Я нахожусь на Ubuntu 10.10 server edition. Корень 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 файл в моем корне документа. Разрешения установлены правильно (читается www-data).



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



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



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

754   8  

8 ответов:

Apache 2.4.3 (или, может быть, чуть раньше) добавил новую функцию безопасности, которая часто приводит к этой ошибке. Вы также увидите сообщение журнала формы "клиент запрещен конфигурацией сервера". Эта функция требует удостоверения пользователя для доступа к каталогу. Он включен по умолчанию в 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>

для 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>

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

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

по данным на этой странице об ошибках Apache 403.

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

переместите предложение каталога из virtualhost и поместите его перед объявлением virtualhost.

меня тоже долго сводило с ума. Не знаю, почему. Это в Debian.

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

во-первых, измените разрешения, используя это в терминале

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>

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

на следующий проблема(ы)

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

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

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

Это просто добавив <Directory > тег /etc/apache2/apache2.conf

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

Если вы все сделали правильно, просто дать разрешения домашний каталог как:

sudo chmod o+x $HOME

затем

sudo systemctl restart apache2

Comments

    Ничего не найдено.