Autorisations correctes pour / var / www et wordpress

37

J'ai configuré un serveur LAMP et j'ai accès via SSH et à la page "ça marche" depuis un navigateur Web depuis mon réseau (via l’adresse IP) et depuis l’extérieur en utilisant dyndns.

Nous avons des projets Wordpress dans des sous-répertoires dans / var / www / wordpress1 / var / www / wordpress2, etc. Je ne peux pas accéder à ces sous-répertoires depuis un navigateur pour configurer WP - ou (je suppose) pour voir le contenu sur un navigateur. Je reçois une erreur 403 Forbidden sur mon navigateur.

Je suppose que c'est un problème de permissions. Pouvez-vous s'il vous plaît me dire les paramètres appropriés pour les autorisations à:

  1. Permettez aux développeurs et à moi de lire / écrire.
  2. pour permettre à WP de configurer et de faire son travail
  3. Autoriser les visiteurs à accéder au (x) site (s) via le Web.

Je devrais également mentionner que le sous-dossier est en fait des liens vers un dossier sur un autre disque dur interne - je ne pense pas que cela fera une différence, mais je pensais que je devais 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 ne peux toujours pas accéder via un navigateur.

    
posée dpbklyn 12.07.2012 - 18:47
la source

4 réponses

74

D'abord, vous devez vous assurer que votre nom d'utilisateur est inclus dans le groupe www-data . Sinon, vous pouvez ajouter votre nom d'utilisateur en tant que groupe www-data

sudo adduser $USER www-data

Après cela, vous devez changer la propriété de / var / www à votre nom d'utilisateur

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

L'étape suivante, pour les pratiques générales , vous devez changer de permission pour 755 (rwxr-xr-x), et ne pas recommander de passer à 777 pour des raisons de sécurité

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

En relation avec autorisation spécifique pour wordpress ou laravel ou un autre cadre, vous pouvez lire la documentation respectivement.

J'espère que ça aide ...

    
réponse donnée metamorph 30.10.2012 - 11:37
la source
3

Apparemment, c'est comme cela que le recommande Ubuntu Server Guide:

Chapitre 11. Serveurs Web.

1.4. Autorisation d'écriture de partage

Pour que plusieurs utilisateurs puissent écrire dans le même répertoire, il faudra accorder une écriture l'autorisation à un groupe qu'ils partagent en commun. L'exemple suivant accorde une autorisation d'écriture partagée vers / var / www / html vers le groupe "webmasters"

J'utilise www-data . Il suffit de remplacer "webmasters" par votre groupe, assurez-vous d’ajouter l’utilisateur au groupe bien sûr.

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 à partir de mon bureau Mac et j'ai téléchargé et remplacé les fichiers ajoutés, et il conserve les autorisations correctes à une exception près. L'utilisateur local devient propriétaire des nouveaux fichiers avec www-data. root dans le répertoire html conserve sa propriété en tant que root mais est modifiable 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 éclaircit les choses et aide les fatigués, parce que je sais que je suis toujours las de cette situation, mais maintenant c'est clair pour moi.

Oh, je vous recommande fortement d'utiliser sftp avec des clés pour accéder à votre ftp, fonctionne très bien pour moi et n'a pas besoin de PureFTP ou de toute autre méthode de livraison non sécurisée des fichiers sur le site Web. Il existe un bon nombre de didacticiels sur le site Digital Ocean pour sécuriser votre serveur avec des clés ssh:

Comment faire Configurer l'authentification par clé SSH sur un serveur Linux

    
réponse donnée MagicCamera 28.05.2015 - 16:00
la source
0

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

Exécuter:

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

De plus, Apache doit être configuré pour autoriser l’accès au répertoire sur le système de fichiers. Cela doit être fait par un administrateur système en insérant une directive dans les fichiers de configuration apache (httpd.conf).

Le répertoire réel étant à l’intérieur de la racine Web, il doit être accessible, mais FollowSymLinks n’a peut-être pas été activé pour le répertoire. Il doit également être ajouté à la directive.

Voir lien

    
réponse donnée jasmines 13.07.2012 - 06:49
la source
0

Lecture autour du guide d'installation d'Ubuntu ..

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

Il serait peut-être plus facile de l'installer de cette façon au lieu d'essayer de décompresser les fichiers sur /var/www

lien ...

de toute façon wordpress fonctionne sur Apache ... non? si vous voulez le faire comme ça .. vous montrez comme @metamorph puis donnez la permission sur apache2 httpd.conf comme ceci:

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

        DirectoryIndex index.php

</VirtualHost>

puis default-server.conf .

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

Peut-être est-il préférable de procéder étape par étape lien

    
réponse donnée maniat1k 30.10.2012 - 12:04
la source

Lire d'autres questions sur les étiquettes