Cela fait deux jours maintenant sans solution, alors je demande de l'aide. J'ai cherché et essayé, j'ai déjà résolu quelques problèmes mais il y a une dernière chose.
C’est ce que j’essaie de faire: changer le répertoire par défaut d’Apache2 de/var/www/html en/media/pi/storage/root_folder /
J'ai suivi ce tutoriel> https://help.ubuntu.com/community/ApacheMySQLPHP#Virtual_Hosts
dans la section hôtes virtuels, j'ai créé un fichier html de test sous/home/pi/Desktop/et cela fonctionne à cause (je suppose) des autorisations correctes.
Maintenant, lorsque je fais exactement la même chose sur/media/pi/storage/root_folder/et que je recharge la page Web, un message d’erreur m'interdit, ce qui suggère que j’ai la permission (encore est formaté avec ext4)
Est-ce que quelque chose comme ça va marcher? Sudo chown -R USER:USER /media/pi/storage/root_folder/
OR chgrp -R www-data /username/
chmod -R 2750 /username/
OR c'est autre chose?
Je ne sais pas quelle commande est nécessaire, une étape par étape serait grandement appréciée
Et enfin, comment puis-je obtenir ces autorisations pour être appliqués à de nouveaux sous-répertoires et fichiers à l'avenir, afin que je ne rencontre plus jamais la même erreur interdite?
J'apprécie toute aide, merci les gars ..
Le fichier de configuration de l'hôte virtuel:
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual Host. For the default virtual Host (this file) this
# value is not decisive as it is used as a last resort Host regardless.
# However, you must set it for any further virtual Host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /media/pi/storage/root_folder/
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual Host. For example the
# following line enables the CGI configuration for this Host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=Apache ts=4 sw=4 sts=4 sr noet
Extrait du journal des erreurs Apache:
[Sun Dec 17 05:29:33.304748 2017] [core:error] [pid 951:tid 1836053552] (13)Permission denied: [client 192.168.1.137:43006] AH00035: access to / denied (filesystem path '/media/pi/storage') because search permissions are missing on a component of the path
Sortie de ls -ld /media /media/pi /media/pi/storage
:
drwxr-xr-x 3 root root 4096 Nov 29 02:57 /media
drwxr-x---+ 3 root root 4096 Dec 17 05:28 /media/pi
drwxr-xr-x 4 pi pi 4096 Dec 16 20:31 /media/pi/storage
Vous devez également autoriser Apache à accéder à ce répertoire. Par défaut, Apache est uniquement autorisé à accéder à /var/www
et /usr/share
; cet accès est accordé par des blocs comme celui-ci dans /etc/Apache2/Apache2.conf
:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Ainsi, vous devez ajouter un bloc similaire quelque part dans votre configuration Apache pour accorder l'accès à /media/pi/storage/root_folder/
:
<Directory /media/pi/storage/root_folder/>
Require all granted
</Directory>
Si vous avez déjà un bloc <Directory /media/pi/storage/root_folder/>
, par exemple dans votre fichier de configuration d'hôte virtuel, il suffit de lui ajouter la directive Require all granted
.
De plus, le journal des erreurs indique qu’Apache (, c’est-à-dire , l’utilisateur www-data
) ne dispose pas des autorisations de lecture ou de recherche sur un composant de /media/pi/storage
. Le résultat de ls -ld /media /media/pi /media/pi/storage
indique que /media
et /media/pi/storage
ont tous les deux 755 autorisations. Le coupable doit donc être /media/pi
. Puisque /media/pi
utilise Listes de contrôle d'accès (comme indiqué par le signe +
dans la sortie de ls -ld
), nous donnons www-data
à lire et à rechercher. autorisations avec
Sudo setfacl -m u:www-data:rx /media/pi