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
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
ouvrir le Terminal et entrer
sudo nano /private/etc/apache2/httpd.conf
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
Redémarrez Apache
sudo apachectl restart
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.
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.
Dans le terminal tapez
id
pour obtenir de l'uid=123(Myname)
.Ouvrir /etc/apache2/httpd.conf et modifiez-le pour utiliser votre nom d'utilisateur.
<IfModule unixd_module> User Myname Group staff </IfModule>
Retour au terminal:
sudo apachectl restart
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.