web-dev-qa-db-fra.com

LAMP 403 interdit l'accès au dossier personnalisé

Je sais que c'est un problème courant, et qu'il s'agit principalement d'autorisations accordées à l'utilisateur www-data, mais après this guide, j'ai l'erreur classique:

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

Je n'ai pas été en mesure de trouver une solution en ligne, malgré le nombre considérable de personnes confrontées au même problème. Pardon! :)

Ceci est mon fichier 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>

et bien sûr, le dossier dans lequel j'ai essayé de configurer mon site Web local se trouve dans ~/Dropbox/web.

Enfin, ce sont les autorisations actuelles

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

Merci

2
Sfrow

Cela se produit après la mise à niveau vers Apache 2.4.9+

fondamentalement juste remplacer

Order allow,deny
allow from all

avec

Require all granted

devrait résoudre ce problème.

quelque chose comme,

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

Voici une note de http://httpd.Apache.org/docs/2.4/howto/access.html

Si vous souhaitez restreindre l'accès à certaines parties de votre site en fonction de l'adresse de l'hôte de vos visiteurs, vous pouvez le faire facilement avec mod_authz_Host .

Le Require fournit diverses méthodes pour autoriser ou refuser l'accès aux ressources. En conjonction avec les RequireAll , RequireAny et RequireNone directives, ces exigences peuvent être combinées de manière arbitraire et complexe, pour appliquer quelle que soit votre stratégie d'accès.

Le autorise , refuse et ) Les directives Order , fournies par mod_access_compat , sont obsolètes et disparaîtront dans une version ultérieure. Évitez de les utiliser et évitez les didacticiels obsolètes qui en recommandent l'utilisation.

8
Jacob Benny John