2

Я прочитал около десятка различных ответов на этот вопрос, но ни один из этих ответов, похоже, не помог. Вот проблема в двух словах:

@bos-lpqum:/var/www$ curl http://localhost/html/index.html
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /html/index.html
on this server.</p>
<hr> 
<address>Apache/2.4.7 (Ubuntu) Server at localhost Port 80</address>
</body></html>

Когда я пытаюсь получить доступ с другой машины (после открытия нужных портов), я получаю тайм-аут.

Я запустил sudo chown -R www-data:www-data /var/www но все равно получаю тот же 403. Я могу предоставить любые conf-файлы, которые вы хотели бы увидеть.

Я скопировал конфигурацию с поддержкой сайтов с другого компьютера, на котором работает apache 2.2.22. Локально я бегу 2.4.7.

обновление: разрешения выглядят точно для меня:

@bos-lpqum:/var$ ls -lt
total 64
drwxr-xr-x  4 root     root     4096 May  7 23:12 centrifydc
drwxrwxrwt  2 root     root     4096 May  7 22:48 tmp
drwxrwxr-x 21 root     syslog   4096 May  7 08:00 log
drwxr-xr-x  2 root     root     4096 May  6 07:59 backups
drwxrwsrwt  2 root     whoopsie 4096 May  6 07:35 crash
drwxrwsrwt  2 root     whoopsie 4096 May  5 13:09 metrics
drwxr-xr-x 10 root     root     4096 May  5 12:53 spool
drwxr-xr-x 20 root     root     4096 May  5 12:50 cache
drwxr-xr-x 79 root     root     4096 May  5 12:50 lib
drwxr-xr-x  3 www-data www-data 4096 May  5 12:40 www
drwxr-xr-x  3 root     root     4096 May  5 12:12 dell
lrwxrwxrwx  1 root     root        4 May  4 15:41 run -> /run
drwxr-xr-x  4 root     root     4096 Mar 18 11:19 centrify
drwxr-xr-x  2 root     root     4096 Mar 18 08:19 games
lrwxrwxrwx  1 root     root        9 Mar 18 08:03 lock -> /run/lock
drwxrwsr-x  2 root     mail     4096 Mar 18 08:03 mail
drwxr-xr-x  2 root     root     4096 Mar 18 08:03 opt
drwxrwsr-x  2 root           50 4096 Apr 19  2012 local

попробовал скручивать с https (вместо http):

$ curl https://localhost -k
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator at 
 sdhub-ops@domain.com to inform them of the time this error occurred,
 and  the actions you performed just before this error.</p>
<p>More information about this error may be available
in the server error log.</p>
<hr>
<address>Apache/2.4.7 (Ubuntu) Server at localhost Port 443</address>
</body></html>

`allow from all 'нигде нельзя найти:

$ egrep -r "allow.*from" /etc/apache2/*
/etc/apache2/mods-available/info.conf:  # Uncomment and change the "192.0.2.0/24" to allow access from other hosts.
/etc/apache2/mods-available/status.conf:    # Uncomment and change the "192.0.2.0/24" to allow access from other hosts.

оригинальный конфиг:

http://pastebin.com/vaHUqccf

новый конфиг:

http://pastebin.com/mTzvDk6X

000-default.config:

http://pastebin.com/jJtKtHTV

2 ответа2

2

В Apache 2.2 директива была allow from all , но в Apache 2.4 это стало require all granted . Поиск require all granted в документации.

0

Я не вижу блоков <Directory> в вашей конфигурации. В то время как Apache по умолчанию разрешает доступ ко всему, вполне вероятно, что ваш дистрибутив Linux поставляет безопасную конфигурацию по умолчанию, запрещающую доступ, если это специально не разрешено.

Минимальный виртуальный хост Apache (2.4) будет выглядеть примерно так:

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com

  DocumentRoot /var/www/example.com

  <Directory "/var/www/example.com">
    Require all granted
  </Directory>
</VirtualHost>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .