J'utilise Ubuntu Desktop 11.04 et j'ai installé ma pile de lampes à l'aide de lamp-server. J'essaie d'utiliser Netbeans comme IDE.
Actuellement, tous les hôtes virtuels sont exécutés à partir de /var/www/vhostname
- mais comme je n'ai configuré aucun groupe ni autorisation, si j'essaie d'ouvrir l'un des fichiers via Netbeans, il n'a pas l'autorisation d'écriture.
Comment puis-je configurer correctement les autorisations (ou configurer Apache ou Netbeans) pour que :
- Les fichiers créés par un script php peuvent être
rw
par Netbeans - Les fichiers créés par Netbeans peuvent être
rw
par Apache
J'ai essayé de chown
tout à mon utilisateur/groupe qui a donné l'autorisation d'écriture à Netbeans, mais Apache n'avait pas l'autorisation d'écriture.
Remarque :Il s'agit uniquement d'une machine de développement - non utilisée en production, et je suis le seul utilisateur de cette machine.
MISE À JOUR
J'avais l'habitude d'utiliser la méthode dans la réponse que j'ai marquée comme acceptée, mais aujourd'hui je fais quelque chose de beaucoup plus simple :
- J'ai configuré Apache pour qu'il s'exécute en tant que mon utilisateur et mon groupe (cela se fait soit dans httpd.conf, apache2.conf ou envvars selon votre distribution)
- Je chown /var/www à mon utilisateur et mon groupe
Voilà, Apache a un accès en lecture/écriture, et j'ai un accès en lecture/écriture lorsque je travaille sur des projets.
Réponse acceptée :
Ce que je recommande de faire a été principalement décrit dans cette question Ask Ubuntu.
Pour ce cas particulier, j'installerais suPHP qui, en bref, vous permet d'exécuter des scripts PHP en tant qu'utilisateur sous Apache.
En procédant comme suit :
sudo chown -R youruser:youruser /var/www
find /var/www/ -type d -exec chmod 0755 {} \;
find /var/www/ -type f -exec chmod 0644 {} \;
Installez suphp-common
et libapache2-mod-suphp
de ce ppa (Que sont les PPA et comment les utiliser ?)
Désactiver mod_php5
et activez mod_suphp
sudo a2enmod suphp
sudo a2dismod php5
Mettez à jour vos hôtes virtuels pour inclure cette ligne en bas :
suPHP_UserGroup youruser youruser
Remplacement de youruser
avec l'utilisateur que vous utilisez pour modifier les fichiers sur le serveur. Redémarrez Apache.
À partir de ce moment, Apache exécutera tous les scripts php qui sont votre utilisateur, ce qui signifie qu'ils peuvent appartenir à votre utilisateur/groupe et qu'il n'est pas nécessaire d'utiliser des autorisations folles comme 777. Puisque tout est exécuté en tant que votre utilisateur, tous les fichiers créés par le php les scripts appartiendront également à votre utilisateur ! Il existe de nombreuses autres choses intéressantes que vous pouvez faire avec suPHP; cependant, d'après ce qu'il semble, c'est tout ce dont vous aurez besoin pour commencer.
Connexe :Ubuntu – Problème de téléchargement de la liste des packages en raison d'une erreur « Hash sum mismatch » ?