web-dev-qa-db-ja.com

ubuntu14.04のApache2.4.7から403パーミッションが拒否されるのはなぜですか

私はこれに対する12の異なる答えについて読みましたが、それらの答えのどれも役に立たないようです。簡単に言うと、この問題は次のとおりです。

@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ファイルを提供できます。

Apache2.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

(httpではなく)httpsでcurlを試しました:

$ 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 
 [email protected] 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>

「すべてから許可」はどこにも見つかりません。

$ 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
Ramy

Apache2.2ではディレクティブはallow from allでしたが、Apache2.4ではこれはrequire all grantedになりました。ドキュメントでrequire all grantedを検索します。

2
user993553

何も表示されません <Directory> 構成内のブロック。 Apacheのデフォルトではすべてへのアクセスが許可されていますが、Linuxディストリビューションでは、特に許可されていない限り、安全なデフォルト構成disallowingアクセスが出荷されている可能性があります。

最小限の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>
0
Daniel B