Ecrire les privilèges-localhost-Mac OSX

je suis nouveau dans le monde mac et je viens de configurer mon serveur web. J'ai utilisé le guide suivant: http://echo.co/blog/os-x-107-lion-development-native-mamp-mysql-installer

j'ai transféré mes sites et mes bases de données et tout se passe plutôt bien. Le seul problème que j'ai est avec les droits en écriture. Par exemple, il y a un fichier de configuration qui doit être écrit, et j'ai dû cliquer avec le bouton droit de la souris, aller chercher L'information, puis activer la lecture et l'écriture pour le personnel et chacun.

Je ne peux pas passer manuellement et activer ces privilèges d'écriture pour chaque fichier/dossier. Je n'ai pas eu besoin de faire cela en utilisant WAMP et fait le développement beaucoup plus rapide.

alors je me demande 2 solutions possibles: a) ajouter mon compte d'utilisateur à une liste blanche pour le localhost afin que 644 privilèges soient suffisants b) définir les privilèges d'écriture récursive

18
demandé sur alanthing 2011-11-07 15:38:02

4 réponses

j'ai trouvé que la meilleure solution était de changer les paramètres de l'utilisateur et du Groupe apache. Les instructions peuvent être trouvées à: http://paulmason.name/item/change-apache-user-group-in-lion-os-x

  1. ouvrir le Terminal et entrer

    sudo nano /private/etc/apache2/httpd.conf
    
  2. trouver et modifier http.code conf de

    User _www
    Group _www
    

    User your_mac_username
    Group staff
    

    Note: avec les versions précédentes comme Leopard, capitaliser portée à portée. Vous pouvez obtenir votre nom d'utilisateur et groupe en tapant " id " et en tapant entrée dans le terminal

  3. Redémarrez Apache

    sudo apachectl restart
    
43
répondu Paul Mason 2015-05-14 22:35:51

je suis l'auteur de ce blog. Pour les permissions de fichiers du serveur web, vous voudrez donner l'accès en écriture à l'utilisateur _www pour les fichiers. Pour la config.Inc.php, vous devez les définir de deux façons:

_www propre le fichier et des autorisations d'écriture:

$ sudo chown _www config.inc.php
$ chmod u+w config.inc.php

demandez à votre utilisateur de posséder le fichier, changez le groupe en _www, et donnez les permissions d'écriture au groupe:

$ sudo chgrp _www config.inc.php
$ chmod g+w config.inc.php

ou, si vous vous sentez à l'aise de permettre à tous les utilisateurs d'écrire, ce que je ne recommande pas pour des raisons de sécurité, donner à tous les utilisateurs la possibilité d'écrire:

$ chmod a+w config.inc.php

si un dossier entier doit être écrit par l'utilisateur _www, il peut posséder le dossier et tous les fichiers:

$ sudo chown -R _www:_www folder/

ou vous pouvez donner le dossier d'écriture et d'exécution des autorisations par tous:

$ chmod a+wx folder/

pourquoi chmod 774 vous a donné des erreurs interdites parce que l'utilisateur de _www tombait sous la permission '4', qui est 'en lecture seule.'Pour les répertoires, un utilisateur doit 'exécuter' afin de traverser dans le dossier. chmod 775 permettrait à l'utilisateur et le groupe de rwx, et d'autres à r-X. voici plus d'informations sur les permissions de fichiers Unix.

de plus, votre utilisateur pourrait conserver la pleine propriété et ajouter certaines permissions pour l'utilisateur _www au lieu de changer le niveau d'accès pour tous les utilisateurs en utilisant des listes de contrôle d'accès.

$ sudo chmod -R +a '_www allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' folder
$ sudo chmod +a '_www allow read,write' config.inc.php

si vous allez suivre la route des ACL, je vous suggérerais de faire un peu plus de lecture pour voir quels niveaux d'accès vous devez vraiment fournir. Ici, est un excellent endroit pour commencer.

22
répondu alanthing 2011-11-07 13:30:22

je suis sous Apache sur OSX et ce qu'il est corrigé pour moi:

sudo chown -R _www:_www <mywebfolder>
sudo chmod -R 775 <mywebfolder>

mise à Jour #1:

Syntaxe: sudo chown <user>:<group> <file-or-folder>. L'utilisateur Apache sur OSX est _www.

À garder la propriété, mais de donner Apache r-w-x les autorisations:

sudo chown -R <your-username>:_www <mywebfolder>
sudo chmod -R 775 <mywebfolder>

mise à Jour #2:

je préfère cette méthode. Mettez Apache à courir comme vous.

  1. Dans le terminal tapez id pour obtenir de l' uid=123(Myname).

  2. Ouvrir /etc/apache2/httpd.conf et modifiez-le pour utiliser votre nom d'utilisateur.

    <IfModule unixd_module>
       User Myname
       Group staff
    </IfModule>
    
  3. Retour au terminal: sudo apachectl restart

9
répondu Justin 2015-05-14 17:40:19

je recommande de paramétrer les privilèges D'écriture récursivement pour votre racine web.

vous pouvez le faire via la console / terminal en utilisant chmod -R 774 /my/web/root. Pour moi, le propriétaire et le groupe est fixé à: www-data:myUserName, qui peut être défini en utilisant chown. N'oubliez pas de vérifier d'abord qui est votre internaute.

Edit: Pour mieux comprendre, pourquoi vous n'avez pas accès:

Chmod 774, chaque numéro représente des droits spécifiques: utilisateur, groupe, autres. Si l'utilisateur est réglé à www-data et le groupe www-data (la plupart des utilisateurs D'un système Unix appartiennent à un groupe nommé par leur nom d'utilisateur). Donc, si vous n'êtes pas dans le groupe www-data soit vous devez vous y joindre, soit vous devez changer de propriétaire (chown) ou vous devez changer les permissions (chmod). Il y a plusieurs tutoriels là-bas, pour plus d'informations.

2
répondu sascha 2014-02-02 20:44:13