J'ai changé la configuration d'Apache pour pointer vers un dossier dans mon répertoire personnel:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/dbugger/html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/dbugger/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
J'ai même donné ma /home/dbugger/html
permission 777. Mais je reçois toujours le même message d'erreur à http://localhost
: "403 Interdit"
Qu'est-ce qui me manque?
/home/dbugger
autorisation?Réponses:
Cela a fonctionné pour moi
L'important était de changer
à
la source
Allow from all
Apache 2.4 - serverfault.com/questions/549517/…AllowOverride
deAll
votre répertoire racine est au mieux téméraire! Voir httpd.apache.org/docs/2.4/mod/core.html#allowoverride pour plus de détails.Activer le
userdir
module:Activer l'exécution PHP dans le répertoire utilisateur:
(Ou si vous utilisez php7.0, par exemple)
Commentez cette partie (placée
#
au début de chaque ligne):Appuyez sur Ctrl+ Xpour enregistrer
Activer la liste des répertoires:
Ajoute ça:
Appuyez sur Ctrl+ Xpour enregistrer
Redémarrez apache (
sudo
requis ici également):Maintenant, mettez vos fichiers php dans le
/home/yourname/public_html
répertoire et accédez àhttp://localhost/~yourname
partir de votre navigateur Web.la source
Apache s'exécute en tant qu'utilisateur
www-data
. S'il n'a pas d'autorisation d'exécution sur votre domicile, apache ne pourra lire aucun fichier.Changez le groupe de votre domicile en
www-data
:Et donnez-lui la permission de parcourir uniquement votre répertoire personnel:
Vous pouvez également restreindre les autorisations de
/home/dbugger/html
:la source
/home/dbugger
utiliser/home/dbugger/html
?/home/dbugger/html
lieu de 777, mais vous devez garder à l'esprit que si l'utilisateur www-data ne peut pascd
accéder à votre domicile, il ne pourra accéder à aucun fichier ou sous-dossier. Donc, si votre autorisation de domicile estrwx------ dbugger:dbugger
apache, vous ne pourrez accéder à aucun fichier à l'intérieur de votre maison. Si vous ne souhaitez pas restreindre l'accès un peu, vous pouvez essayer de donner uniquement la permission d'exécution (chmod g+x /home/dbugger
), je ne suis pas sûr, mais je pense que cela fonctionne.chgrp www-data /home/dbugger
en combinaison avec la méthode @DavidGreene, ça a fonctionné pour moisudo usermod -a -G dbugger www-data
, après quoi vous devez redémarrer apache.Vous n'avez pas besoin de modifier les autorisations si vous souhaitez utiliser votre répertoire personnel pour héberger l'environnement de développement, au moins que vous avez besoin d'autorisations d'écriture pour certaines applications. Vous avez besoin du module apache mod_userdir et vous pouvez accéder à / home / user_name / public_html / * comme ceci http: //domain.local/~user_name/dir_name/ * pour utiliser un hôte virtuel, pour utiliser le module mod_userdir vous devez créer un sym lien comme celui-ci:
la source
a2enmod userdir