Apache n’a pas les droits jealdell jealdell, il ne peut pas lire les fichier d’où l’erreur.
Normallement il devrait etre en www-data:www-data. Mais avec ton histoire de userdir, je ne sais pas comemtn ça marche. Mais sans userdir, aucune change que ça marche si les droits de propriété ne sont pas bon.
Bonjour, j’ai fait ce que je pouvais, en m’appuyant des infos de divers tutos, pas de résultat. j’arrive toujours a la meme chose
soit:
nano /etc/apache2/sites-available/gestech.com.con
<VirtualHost *:80>
ServerName gestech.com
ServerAlias www.gestech.com
DocumentRoot "/home/jealdell/public_html/gestech"
<Directory "/home/jealdell/public_html/gestech">
AllowOverride All
Options -Indexes +FollowSymLinks +MultiViews
Require all granted
</Directory>
ErrorLog /var/log/apache2/error.gestech.com.log
CustomLog /var/log/apache2/access.gesteck.com.log combined
</VirtualHost>
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>
<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>
je l’active a2ensite gestech.com.conf et désactive le default d’origine a2dissite 000-default
Et dans ce cas la localhost est 403 Forbidden (You don’t have permission)
*avec le default j’ai bien le repertoire HTML et GESTECH du repertoire /var/www
mais jamais GESTECH du public_html
Alias /jealdell /home/jealdell/public_html
<Directory /home/jealdell/public_html>
Options All
AllowOverride All
Require all granted
Options MultiViews Indexes SymLinksIfOwnerMatch
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
Bonjour,
Tes fichier et ton répertoire du site ont des droits qui ne permettent pas à apache de les traiter.
Le directory cgi-bin n’a pas de </directory>
Sur quels tutoriels t’es-tu basé?
<Directory /home/jealdell/public_html>
Options All
AllowOverride All
Require all granted
Options MultiViews Indexes SymLinksIfOwnerMatch
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
Quels sont les tutos que tu as utilisé? car les mélanger n’est pas toujours de bon aloi.
La configuration du module userdir n’utilise pas dans le texte de configuration le nom du user. Si des utilisateurs ne sont pas souhaité il faut les exclure avec Userdir disabled.
userdir est un module qui permet à tous les utilisateurs d’une machine la possibilité d’héberger du contenu web.
La configuration est donc conçue pour tous les utilisateurs (wildcard), pas sur un utilisateur nommé pour le module /etc/apache2/mods-available/userdir.conf :
activer le module avec a2enmod userdir
Chaque utilisateur qui voudra avoir une page web devra dans ton répertoire user /home/ créer un répertoire public_html, dans lequel il mettra ses fichiers HTML, CSS, PHP, etc…
et c’est tout ce qu’il y a à faire.
Pas besoin de modifier de fichier dans conf-available ou sites-available.
Pour se connecter:
http://server/~user
Pour information, le module userdir n’est pas considéré comme très sécurisé.
Quand je fais a2enmod userdir ERROR: Config file userdir.conf not properly enabled: /etc/apache2/mods-enabled/userdir.conf is a real file, not touching it
nano /etc/apache2/mods-available/userdir.conf
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
#AllowOverride all
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
</IfModule>
Dois je supprimer celui dans /etc/apache2/mods-enabled/userdir.conf
dans mod-enabled ce ne sont que des liens. Si tu as un fichier c’est ujne erreur.
Il faut effacer le fichier qui s’y trouve et a2enmod fera le reste
On ne modifie que les available. Les enabled sont gérés par les commandes apache.
concernant les permissions pour un serveur http sous linux, ce qui est généralement recommandé, d’après la réponse qui a eu le plus de votes positifs sur serverfault, quand on travaille seul sur la machine (que ce soit un serveur de prod ou de dev) c’est que les fichiers appartiennent à soi-même - l’utilisateur courant - et au groupe www-data.
ce qui donne
sudo chown -R $USER:www-data /var/www/site
ensuite l’utilisateur doit pouvoir lire et modifier les fichiers, mais www-data seulement lire :
chmod -R a-rwx,u+rwX,g+rX /var/www/site
sauf pour les répertoires d’upload, cache etc. sur lesquels apache doit pouvoir écrire :
ensuite je déconseille de jouer au petit poucet avec des symlinks inutiles : la directive DocumentRootexiste très exactement pour indiquer où se trouve la racine du site, autant en profiter pour indiquer direct le bon endroit.
ça évite aussi au passage de servir des fichiers qui se situent au dessus de la racine voulue par les développeurs (un répertoire qui s’appelle souvent public, public_http ou un truc du genre pour les applications bien conçues) - ce qui évite aussi par la même occase de poser des problèmes de sécurité en rendant accessible du contenu qui n’est pas toujours sensé l’être.
avec mod_userdir les droits sont ceux de l’utilisateur par défaut ? dans ce cas pas d’histoire de www-data ou de gérer différemment le groupe effectivement. les fichiers et répertoires doivent juste appartenir à l’utilisateur, comme ça doit en principe être le cas de tout ce qui se trouve sous $HOME.
pour www-data ça reste vrai le reste du temps, à moins qu’on soit plusieurs mainteneur·euse·s ou développeur·euse·s à bosser sur la même machine, ou sauf pour les applications développées avec les pieds (comme WordPress).
tu as mentionné les problèmes que pose mod_userdir, c’est quand même une drôle d’idée de l’utiliser en 2023 ! si un·e utilisateur·ice veut accéder ou partager des fichiers sur le web il y a des solutions beaucoup plus modernes, pratiques et sécurisées (seafile, nextcloud, etc.).
Sauf erreur je crois malheureusement pas que @Lissteck nous ait indiqué l’idée et le contexte général.
là typiquement non, on est clairement dans un cas ordinaire et absolument pas besoin de mod_userdir, on ferait mieux d’appliquer les conseils généraux pour apache ou autre serveur web, à base de ressources qui appartiennent à $USER et au groupe www-data !