web-dev-qa-db-fra.com

403 interdits après avoir changé de webroot

J'utilise Ubuntu avec Apache (pile LAMP). Lorsque j'ai changé la racine Web de/var/www en/media/data/www, je continue à obtenir 403 interdits même après chmod-ing le répertoire + fichiers en 777. Qu'est-ce que j'ai mal fait? En faisant également référence à/var/www, j’ai remarqué que le répertoire + les fichiers sont la propriété de root devrait-il en être ainsi? Ce ne devrait pas être www-root? Aussi, si sa racine, Apache ne sera pas en mesure d'y accéder?

J'ai remarqué que je reçois des erreurs comme

[Mer 11 mai 11:53:40 2011] [crit] [client 127.0.0.1] (13) Autorisation refusée: /media/data/.htaccess pcfg_openfile: impossible de vérifier le fichier htaccess, assurez-vous qu'il est lisible

mais la chose est, ma racine Web est /media/data/jm/www

2
JM at Work

Aïe, évitez s'il vous plaît le chmod 777, c'est comme si vous ouvriez votre porte avec la clé dans la serrure.

L'erreur 13 est liée aux erreurs d'autorisation. Sous Linux, un dossier a besoin d'un execute-bit pour pouvoir y descendre. Assurez-vous donc que les autorisations sur /media/data et /media/data/jm sont définies sur 755 OR 700 si l'utilisateur qui exécute Apache est le propriétaire des dossiers.

root est le dieu des systèmes Linux, vous avez probablement exécuté la commande chmod avec Sudo (super-user do ...). Le processus Apache doit simplement être capable de lire les fichiers (et d'écrire si vous utilisez un langage dynamique qui doit écrire dans un cache, par exemple). Dans Ubuntu, cet utilisateur est www-data (et non www-root).

Pour restaurer les autorisations et confier à Apache les fichiers, exécutez:

 Sudo chown -R www-data /media/data/jm/www
 Sudo find /media/data/jm/www -type f -exec chmod 600 {} \;
 Sudo find /media/data/jm/www -type d -exec chmod 700 {} \;

La première commande modifie la propriété en www-data, la seconde modifie les autorisations de fichiers en 600 (lecture-écriture pour le propriétaire) et la troisième 700 pour les répertoires.

/media/data semble que vous ayez créé une deuxième partition. Assurez-vous que le système de fichiers prend en charge les autorisations de fichiers Linux. Ext2, ext3 et ext4 font. NTFS et FAT32 ne le font pas. Vous pouvez vérifier cela en exécutant Sudo file -s $(readlink -f /dev/disk/by-label/data).

2
Lekensteyn