Im ayant quelques problèmes avec un lien symbolique /var/www/
vers un nouveau Webroot
répertoire dans mon dossier d'accueil. Je pense que cela provient de mon manque de compréhension des autorisations Linux.
Pour autant que je sache, les liens symboliques devraient prendre la forme du répertoire que vous souhaitez lier et du répertoire auquel vous souhaitez être lié, donc dans mon cas, j'ai couru:
sudo ln -s ~/Webroot/* /var/www/
cela a en quelque sorte fonctionné, si je cours ls
, /var/www/
je peux voir tous les fichiers dans mon Webroot
répertoire.
Chaque fois que j'essaie d'exécuter un fichier qui se trouve dans mon Webroot
dossier, j'obtiens une erreur d'autorisation 403, est-ce parce que les fichiers de mon répertoire Webroot sont créés par moi et que l'instance Apache est exécutée en tant que www-data?
si tel est le cas, cela signifie-t-il que je dois modifier les autorisations sur chaque fichier que je crée afin de l'exécuter?
J'ai déjà exécuté une instance Apache locale en pointant la racine du répertoire de mon vhost par défaut vers le Webroot
dossier, dans ce cas, je n'ai pas eu besoin de modifier les autorisations. Toute aide serait appréciée.
la source
Réponses:
Ce n'est pas une bonne pratique, je suis d'accord avec Weboide. Mais il existe un moyen simple d'atteindre cet objectif.
1). activez le module apache userdir.
cela activera le module apache userdir. Maintenant, vous pouvez mettre le contenu du site Web
~/Webroot/
ou quoi que ce soit dans votre répertoire personnel.Remarque: le dossier par défaut est
~/public_html
2). Apportez les modifications nécessaires à
/etc/apache2/mods-enabled/userdir.conf
.3). Redémarrez l'apache
Vous pouvez maintenant accéder au site en naviguant sur votre navigateur vers http: // ip-address / ~ username . Vous pouvez également définir un hôte virtuel pour ce site.
Si vous cherchez à exécuter des fichiers php, vous devez faire une étape de plus
éditez
/etc/apache2/mods-enabled/php5.conf
et commentez les lignes suivantes:Redémarrez ensuite l'apache.
C'est ça. Vous avez terminé.
Réf: https: //wiki.ubuntu.com/UserDirectoryPHP
J'espère que cela t'aides. Si vous rencontrez des difficultés, n'hésitez pas à le poster ici.
la source
Ce n'est pas une bonne pratique pour réaliser ce que vous voulez.
Si vous utilisez PHP, vous voudrez peut-être jeter un œil à suexec , suphp ou php-fpm et fastcgi .
Vous avez raison sur votre problème, il s'agit d'un problème d'autorisation dans le fait que vos
Webroot
fichiers appartiennent à un utilisateur différent de celuiwww-data
.Voici une solution pas si mauvaise pour contourner votre problème. Notez que vous devrez probablement utiliser sudo ou vous connecter en tant que root. Assurez-vous de bien comprendre toutes les commandes que vous exécuterez !!
Modifiez votre
Webroot
dossier et vos sous-dossiers et fichiers pour que la propriété du groupe soit définiewww-data
et définissez les autorisations appropriées:Modifier: Notez que vous devrez certainement réexécuter ces commandes si vous ajoutez des fichiers / dossiers à l'aide de votre compte d'utilisateur normal.
la source
J'ai fait presque la même chose avec Debian Lenny, mais je suis passé en mode non-hax, j'ai correctement configuré apache. Mais avec symlink:
Je pense que vous devriez vérifier le permisson du ~ et du ~ / Webroot , je pense que votre dir (~) est protégé en lecture, je veux dire, vous devez exécuter ceci:
Pour définir les bons permissinons, utilisez:
Je pense que cela devrait aider, mais donnez-moi plus d'informations à ce sujet. Je vous suggère, pour sortir le Webroot de votre dir, ex. à / chez moi comme moi , car cela peut être un problème de sécurité.
"#" signifie permisson racine , ex. écrire sudo avant les commandes; "$" signifie permisson mono-utilisateur
la source
Vous devez vérifier les autorisations non seulement sur votre destination, mais aussi sur ses parents.
la source
J'étais confronté à ce problème. Mais je n'aimais pas l'idée de changer le groupe de mon répertoire personnel en www-data. Ce problème peut simplement être résolu en modifiant le fichier de configuration de virtualHost. Configurez simplement la balise Directory pour les inclure
C'est
Require all granted
une nouvelle fonctionnalité, je suppose; ayant une valeur par défaut dedenied
.Voir cette page pour référence: http://httpd.apache.org/docs/current/mod/core.html#directory
la source