48 votes

Permissions correctes pour /var/www et wordpress

J'ai mis en place un serveur LAMP et j'ai accès via SSH et à la page "it works" à partir d'un navigateur web depuis l'intérieur de mon réseau (via l'adresse IP) et depuis l'extérieur en utilisant dyndns.

Nous avons quelques projets Wordpress qui se trouvent dans des sous-répertoires dans /var/www/wordpress1 /var/www/wordpress2, etc. Je ne peux pas accéder à ces sous-répertoires à partir d'un navigateur pour configurer WP - ou (je suppose) pour voir le contenu sur un navigateur. J'obtiens une erreur 403 Forbidden sur mon navigateur.

Je suppose qu'il s'agit d'un problème de permissions. Pouvez-vous m'indiquer les paramètres appropriés pour les autorisations :

  1. Permettre aux développeurs et à moi-même de lire/écrire.
  2. pour permettre à WP de s'installer et de faire son travail
  3. Permettre aux visiteurs d'accéder au(x) site(s) via le web.

Je devrais également mentionner que les sous-dossiers sont en fait des liens simplistes vers des dossiers sur un autre disque dur interne - je ne pense pas que cela fera une différence, mais j'ai pensé que je devais le divulguer.

total 12
drwxr-xr-x  2 root root 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root root 4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 root root   43 2012-07-11 20:45 admin_media ->     /root/django_src/django/contrib/admin/media
-rw-r--r--  1 root root  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 root root   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 root root   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

Voici le résultat de l'utilisation de chown -R www-data:www-data /var/www

total 12
drwxr-xr-x  2 www-data www-data 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root     root     4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 www-data www-data   43 2012-07-11 20:45 admin_media -> /root/django_src/django/contrib/admin/media
-rw-r--r--  1 www-data www-data  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 www-data www-data   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 www-data www-data   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

Je n'arrive toujours pas à accéder au site via le navigateur.

93voto

phoenixwizard Points 111

Tout d'abord, vous devez vous assurer que votre nom d'utilisateur est inclus dans la rubrique www-data groupe. Si ce n'est pas le cas, vous pouvez ajouter votre nom d'utilisateur en tant que www-data groupe

sudo adduser $USER www-data

Ensuite, vous devez changer la propriété de /var/www en votre nom d'utilisateur

sudo chown $USER:www-data -R /var/www

Prochaine étape, pour la médecine générale Vous devez modifier les droits en 755 (rwxr-xr-x), mais il n'est pas recommandé de modifier les droits en 777 pour des raisons de sécurité.

sudo chmod u=rwX,g=srX,o=rX -R /var/www

En rapport avec autorisation spécifique para wordpress o laravel ou d'un autre framework, vous pouvez lire la documentation correspondante.

J'espère que cela vous aidera...

5voto

MagicCamera Points 121

Apparemment, c'est ce qui est recommandé dans le guide du serveur Ubuntu :

Chapitre 11. Serveurs Web.

1.4. Partage des droits d'écriture

Pour que plusieurs utilisateurs puissent écrire dans le même répertoire, il est nécessaire d'accorder le droit d'écriture à à un groupe qu'ils ont en commun. L'exemple suivant accorde les droits d'écriture partagés sur /var/www/html au groupe "webmasters"

J'utilise www-data . Remplacez simplement "webmasters" par votre groupe, en veillant bien sûr à ajouter l'utilisateur au groupe.

sudo chgrp -R webmasters /var/www/html
sudo find /var/www/html -type d -exec chmod g=rwxs "{}" \;
sudo find /var/www/html -type f -exec chmod g=rws "{}" \;

Je viens de le tester avec Dreamweaver depuis mon ordinateur mac et j'ai téléchargé et remplacé des fichiers, ajouté des fichiers, etc. et il conserve les autorisations correctes à une exception près, l'utilisateur local devient propriétaire des nouveaux fichiers avec www-data, mais tous les fichiers créés par root dans le répertoire html conservent leur propriété en tant que root mais sont modifiables par l'utilisateur local.

$ls -l
$-rw-rw-r-- 1 localUser www-data 11505 May 28 09:56 index2.html
$-rw-rwSr-- 1 root  www-data 11535 May 28 09:58 index.html

J'espère que cela clarifiera les choses et aidera ceux qui sont fatigués, car je sais que j'ai toujours été fatigué de cette situation, mais maintenant c'est clair pour moi.

Oh et je recommande vivement d'utiliser sftp avec des clés pour accéder à votre ftp, ça marche très bien pour moi et je n'ai pas besoin de PureFTP ou d'une autre méthode non sécurisée pour livrer les fichiers au site web. Il y a quelques tutoriels sur le site de Digital Ocean qui traitent de la sécurisation de votre serveur avec des clés ssh :

Comment configurer l'authentification par clé SSH sur un serveur Linux ?

1voto

user26252 Points 101

Lire autour de la Guide d'installation pour Ubuntu ..

chown -R www-data /usr/share/wordpress

Il serait peut-être plus facile de l'installer de cette manière plutôt que d'essayer de décompresser les fichiers sur /var/www

https://help.ubuntu.com/community/WordPress ...

si vous voulez le faire de cette façon... vous pouvez faire comme @metamorph et ensuite donner la permisson sur apache2 httpd.conf comme ceci :

<VirtualHost *:80>
        ServerName site
        ServerName site.domain
        DocumentRoot /srv/www/wordpress.site

        DirectoryIndex index.php

</VirtualHost>

et ensuite default-server.conf .

<Directory "/srv/www/wordpress.site">
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

Il est peut-être préférable de procéder étape par étape https://help.ubuntu.com/community/WordPress

0voto

jasmines Points 9942

Vérifiez qu'Apache dispose des droits d'exécution pour /hdd/web/media y /hdd/web/wordpress .

Exécutez :

chmod o+x /root /root/site /root/site/about

De plus, Apache doit être configuré pour permettre l'accès au répertoire sur le système de fichiers. Cette opération doit être effectuée par un administrateur système en insérant une directive dans les fichiers de configuration d'Apache (httpd.conf).

Étant donné que le répertoire réel se trouve dans la racine du site web, il doit être accessible, mais il se peut que la fonction FollowSymLinks n'ait pas été activée pour le répertoire - ce point doit également être ajouté à la directive.

Voir http://httpd.apache.org/docs/2.0/mod/core.html#directory

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X