Apache et acces www

Bonjour, j 'installe apache, j’ai creer des liens

ln -s /home/perso/public_htlm/site1 /var/www/

si le lien est bien creer dans le répertoire www, mais via mon browser je n’y voit que le répertoire html creer par apache, j’ai simplement lancé les droit 755 a /home/perso/public_html

Il faudrait que apache voit aussi mes droits dans /var/www/site1

dans /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www>
Options Indexes FollowSymLinks
 AllowOverride All
 Require all granted
</Directory>
</VirtualHost>

nano /etc/apache2/mods-enabled/userdir.conf

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root
        <Directory /home/*/public_html>
                AllowOverride All
                Options MultiViews Indexes SymLinksIfOwnerMatch
                <Limit GET POST OPTIONS>
                        # Apache <= 2.2:
                        Order allow,deny
                        Allow from all
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        # Apache <= 2.2:
                        Order deny,allow
                        Deny from all
   </LimitExcept>
        </Directory>
</IfModule>

Merci par avance pour votre aide

Faute de frappe dans le chemin.

Ce sont les sites présents dans sites-enabled qui complent, pas ceux dans sites-available.

Sauf erreur de ma part, mod_userdir sert à publier le contenu de public_html dans les répertoires utilisateurs en tant que /~user/, donc ça fait doublon avec un virtualhost explicite.

ln -s /home/perso/public_htlm/site1 /var/www/

Relie ce que tu écris avant de poster. Généralement, une erreur de frappe se détecte.

Autant que je me souvienne, il n’y a pas besoin d’un tel lien.

mais via mon browser je n’y voit que le répertoire html creer par apache

Peut-être, mais on ne va pas deviner ce que tu as écris dans la barre d’adresse de ton navigateur.

Il faudrait que apache voit aussi mes droits dans /var/www/site1

Si tu comptes utiliser Apache, apprend d’abord à gérer les droits.

C’est normalement uniquement pour les modules dont il vaut mieux le plus souvent ne pas modifier les fichier. Il vaut mieux que tu mette les parties spécifique à ton site dans sites-available

Pour un site c’est dans sites-available, ensuite faire un a2ensite <nomdufichierdeconf> pour activer la configuration, puis systemctl reload apache2 pour activer le site.

Autre point, il est très fortement déconseillé d’utiliser le module userdir sur un site exposé à internet du fait de ses manquements conceptuels à la sécurité:

  • exposition des logins d’utilisateur du système
  • Lorsque le module mod_userdir est utilisé pour accéder à un site Web, le trafic est ajouté au total des utilisateurs par lesquels les visiteurs accèdent au site Web, mais pas à l’utilisation de la bande passante de l’utilisateur qui est un propriétaire réel du site Web
  • il y a des risque d’accéder à d’autres sous répertoire que ceux de l’utilisateur en utilisant le tilde ~.

et peut être quelques autres auxquels je n’ai pas pensé.

Même en interne, c’est toujours un risque d’utiliser ce module. C’est pour ça qu’il est désactivé par défaut.

Salut
que veux-tu faire exactement?
quand tu n’arrives pas à faire quelquechose d’un niveau, donnes nous les infos du niveau inférieur ;
par exemple,

le lien est créé? Donnes nous la « preuve »
via mon browser je n’y voit que le répertoire html : donnes nous l’adresse utilisée

ceci dit, utiliser userdir et mapper sur /var/www c’est une anomalie.

parce que dans /var/www/ j’ai bien « site1 » avec ses divers fichiers et repertoire dedans
Voila qu’il y a quelques années que je faisais des lien ln -s … et ca suffisait, pour pouvoir y acceder. vraisemblablement c’est plus utile avec userdir.conf
Je vais me pencher sur sites-available comme me l’indique aussi « Zargos »

Bonjour, j’ai donc rajouter
nano /etc/apache2/sites-available/gestech.com.conf

<VirtualHost *:80>
        ServerName gestech.com
        ServerAlias www.gestech.com
        DocumentRoot "/var/www/gestech"
        <Directory "/var/www/gestech">
                Options +FollowSymLinks
                AllowOverride all
                Require all granted
        </Directory>
        ErrorLog /var/log/apache2/error.gestech.com.log
        CustomLog /var/log/apache2/access.gesteck.com.log combined
</VirtualHost>

J’ai ensuite fait
a2ensite gestech.com
Site gestech.com already enabled
et
systemctl reload apache2

et la je sais pas quoi taper dans ma barre d’adresse
si je fait juste Localhost je n’ai que le repertoire « HTML » d’origine
:upside_down_face:

http://www.gestech.com en prenant en compte le fait que ton DNS sur cette URL pointe bien vers ton serveur.

Mais je suis juste en local, je ne souhaite pas le mettre en ligne pour l’instant …
C’est bien ce fichier qui sert a ca ? /etc/apache2/sites-available/gestech.com.conf
Si je creer un repertoire dans /var/www/gestech avec un fichier html, j’ai bien acces a ce repertoire et ce fichier avec
http://localhost/gestech/index2.html
Mais dans ma vielle expérience, on ne donne pas des droits utilisateur a /var/www/gestech, et c’est pour cela que je souhaiterais avoir mes repertoire et fichiers dans /home/*/public_html Mais je n’y suis pas encore arrivé, alors que <
nano /etc/apache2/mods-enabled/userdir.conf
celui ci me semble bie nrenseigné… :pleading_face:

J’ai modiifé nano /etc/apache2/sites-available/gestech.com.conf
par

<VirtualHost *:80>
        ServerName gestech.com
        ServerAlias www.gestech.com
        DocumentRoot "/home/jealdell/public_html/gestech"
        <Directory "/home/jealdell/public_html/gestech">
                Options +FollowSymLinks
                AllowOverride all
                Require all granted
        </Directory>
        ErrorLog /var/log/apache2/error.gestech.com.log
        CustomLog /var/log/apache2/access.gesteck.com.log combined
</VirtualHost>

Mais gestech pointe toujours dans /var/www/gestech

Dans ce cas il te faut une resolution DNS vers www.gestech.com
Tu peux faire ça en mettant dans le fichier host de la machine où tu utilises le navigateur pour s’y connecter, mais aussi sur le serveur lui-même:

dans /etc/hosts tu ajoutes la ligne:
ip.de.mon.serveur www.gestech.com

 GNU nano 7.2                       /etc/hosts                                 
127.0.0.1       localhost
127.0.1.1       Jeal.rev.sfr.net        Jeal

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

192.168.1.68     www.gestech.com

Pas de changement , c’est fou ca :crazy_face:

si tu fait ping www.gestech.com?
Et qu’as-tu dans les logs? car sans messages d’edrreur ou d’accès on va avoir du mal.
Sur ton navigateur tu obtiens quoi?
n’aurais tu pas une conf d’activée en même temps?
désactive 000-default.conf: a2dissite 000-default
Et recharge apache
fait un a2disconf

ping www.gestech.com
PING www.gestech.com (192.168.1.68) 56(84) bytes of data.
64 bytes from www.gestech.com (192.168.1.68): icmp_seq=1 ttl=64 time=0.055 ms
...

J’avais désactiver a2dissite 000-default

a2disconf
Your choices are: charset localized-error-pages other-vhosts-access-log security serve-cgi-bin
Which conf(s) do you want to disable (wildcards ok)?

Par contre j’ai un Forbidden sur Localhost, apres avoir fait
a2dissite 000-default

a2ensite gestech.com
Site gestech.com already enabled
systemctl reload apache2
<VirtualHost *:80>
        ServerName gestech.com
        ServerAlias www.gestech.com
        DocumentRoot "/home/jealdell/public_html/gestech"
        <Directory "/home/jealdell/public_html/gestech">
                Options +FollowSymLinks
                AllowOverride all
                Require all granted
        </Directory>
        ErrorLog /var/log/apache2/error.gestech.com.log
        CustomLog /var/log/apache2/access.gesteck.com.log combined
</VirtualHost>

edt quadn tu te connecte dessus ca te donne quoi?
quelles sont les logs dans error.gestech.com.log? jet les access.gesteck.com.log (attention il y a un k au lieu d’un h dans celui là)

error
Sat Sep 09 10:21:38.109317 2023] [core:error] [pid 3448] (13)Permission denied: [client 192.168.1.68:50918] AH00035: access to / denied (filesystem path '/home/jealdell/public_html') because search permissions are missing on a component of the pathSat Sep 09 10:21:38.109317 2023] [core:error] [pid 3448] (13)Permission denied: [client 192.168.1.68:50918] AH00035: access to / denied (filesystem path '/home/jealdell/public_html') because search permissions are missing on a component of the path access

effectivement le k de access (je vais rectifier pour etre plus propre)

192.168.1.68 - - [09/Sep/2023:10:21:38 +0200] "GET / HTTP/1.1" 403 497 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"

Les fichiers de ton répertoire /home/jealdell/public_html ne sont tout simplement pas acessible. C’est un problèmes de droits.
Que donnent:
ls -l /home/jealdell
ls -l /home/jealdell/public_html

 ls /home/jealdell
Bureau	Documents  Images  index.html  Modèles	Musique  Public  public_html  public_html1  Téléchargements  Vidéos
ls /home/jealdell/public_html
gestech

j’ai deja fait un

chmod 755 -R /home/jealdell/public_html

désolé j’avais oublié l’option -l (ceci dit tu aurais pu t’en apercevoir tout seul).

chmod change les droit lecture/excrire/execution, il ne change pas le user et le groupe propriétaire