web-dev-qa-db-ja.com

LAMP 403はカスタムフォルダーへのアクセスを禁止しました

私はそれが一般的な問題であることを知っており、それは主にユーザーwww-dataに対する許可の問題ですが、次の this ガイドに従って古典的なエラーが発生しました:

403 forbidden 
You don't have permission to access /web on this server.

同じ問題に直面している膨大な数の人々にもかかわらず、私はオンラインで解決策を見つけることができませんでした。ごめんなさい! :)

これは私の000-default.confファイルです

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /home/tom/Dropbox/web
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /home/tom/Dropbox/web>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride All
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog /home/tom/Dropbox/web/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog home/tom/Dropbox/web/access.log combined

 Alias /doc/ "/usr/share/doc/"
 <Directory "/usr/share/doc/">
     Options Indexes MultiViews FollowSymLinks
     AllowOverride All
     Order deny,allow
     Deny from all
     Allow from 127.0.0.0/255.0.0.0 ::1/128
 </Directory>

そしてもちろん、ローカルWebサイトを構成しようとしたフォルダーは~/Dropbox/webにあります。

最後に、これらは現在の権限です

drwxrwxrwx   8 tom tom   4096 mars  26 09:57 Dropbox
drwxrwxrwx   3 tom tom   4096 mars  26 11:47 web

ありがとう

2
Sfrow

これは、Apache 2.4.9+にアップグレードした後に発生します

基本的には単に置き換える

Order allow,deny
allow from all

Require all granted

この問題を修正する必要があります。

何かのようなもの、

<Directory /home/tom/Dropbox/web>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride All
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Require all granted
</Directory>

http://httpd.Apache.org/docs/2.4/howto/access.html からのメモです

訪問者のホストアドレスに基づいてサイトの一部へのアクセスを制限する場合、これはmod_authz_Hostを使用して最も簡単に実行できます。

Requireは、リソースへのアクセスを許可または拒否するさまざまな方法を提供します。 RequireAllRequireAny、およびRequireNoneディレクティブ、これらの要件を任意の複雑な方法で組み合わせて、アクセスポリシーを強制することができます。

AllowDeny、およびOrderディレクティブは、mod_access_compatによって提供され、非推奨であり、将来のバージョンでは廃止されます。それらの使用は避け、使用を推奨する古いチュートリアルを避けてください。

8