lien symbolique avec serveur Apache2 local [1/2 résolu]

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

lien symbolique avec serveur Apache2 local [1/2 résolu]

Message par Ymai »

Bonjour
La question est un peu HS. Si je me permets de la poser, c'est à titre d'habitué des lieux qui connaît les diverses compétences qui les hantent. :D

Sur mon Destkop, un serveur Apache installé par les procédures classiques Ubuntu tournait bien rond, jusqu'au jour où le disque dur partit en boulette. J'ai dû acheter un nouveau, réinstaller l'OS... et tous les logiciels.
Dans ma configuration pré-crash, il me semble que j'avais simplement fait un lien symbolique depuis /var/www vers le répertoire de mon /home contenant mes pages web.
Mais lorsque je tente d'accéder au site par http://localhost/siteWeb, seul un désagréable

Code : Tout sélectionner

Forbidden
You don't have permission to access /siteWeb on this server.
m'accueille.

Par contre, ce type de configuration (avec lien symbolique) fonctionne encore et toujours sur mon portable.

Dans /etc/apache2/sites-enabled/000-default , les liens symboliques me semblent bien activés (par défaut)

Code : Tout sélectionner

	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
Idem dans sites-available.
Je suis membre du groupe www-data (est-ce même nécessaire?)
De multiples désinstallation, suppression de tout fichier résiduel, réinstallation n'y changent rien.
J'ai même tenté de mettre les fichiers du site web en 777 (pas frapper!!).

Si quelqu'un avait une piste, ce ne serait pas de refus.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.7) Gecko/2009030422 Ubuntu/8.04 (hardy) Firefox/3.0.7
Dernière modification par Ymai le 20 mars 2009, 11:23, modifié 1 fois.
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
Zefling
Tyrannosaurus Rex
Messages : 2577
Inscription : 21 déc. 2004, 03:45

Message par Zefling »

Et c'est bien en www-data / www-data ?

Parce que moi je fais une redirection de var/www/ et ça marche

sinon tu peux essayer de pointer directement le site.

T'as testé le lien symbolique ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)
Mon blog de dév web ― Thème pour le forum Geckozone ― Le clavier Latin-9 fr sous Windows ― Raccourcis clavier pour Firefox
Debian 8 KDE avec Firefox & Nightly
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Message par Ymai »

Zefling a écrit :Et c'est bien en www-data / www-data ?
Maintenant oui. Sans effet.
Merci d'avoir joué.

[edit]Comme je l'indiquais, c'est bien un lien symbolique que j'ai toujours utilisé avec succès.
Chez moi aussi, ça fonctionne... sur mon portable
Que faut-il entendre par
sinon tu peux essayer de pointer directement le site.
[/edit]
[edit2]Une redirection?[/edit2]

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.7) Gecko/2009030422 Ubuntu/8.04 (hardy) Firefox/3.0.7
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
Zefling
Tyrannosaurus Rex
Messages : 2577
Inscription : 21 déc. 2004, 03:45

Message par Zefling »

Non ça par exemple :

Code : Tout sélectionner

<Directory /home/www/> 

Mais j'avoue que mes adresses c'est /var/www/dossier

Sur mon serveur :

Code : Tout sélectionner

lrwxrwxrwx  1 root root     9 2008-05-17 12:29 www -> /home/www
Et le dossier en question dans /home/www :

Code : Tout sélectionner

drwxr-xr-x 15 root     root       4096 2009-03-17 13:23 www
Donc c'est pas problème de droit.

Mais après je fais tout avec des virtuals hosts

Code : Tout sélectionner

drwxr-xr-x 15 root     root       4096 2009-03-17 13:23 www
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)
Mon blog de dév web ― Thème pour le forum Geckozone ― Le clavier Latin-9 fr sous Windows ― Raccourcis clavier pour Firefox
Debian 8 KDE avec Firefox & Nightly
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Quel est l'uid d'apache ? "ps -ef|grep apache" devrait donner la réponse.
Quels sont les droits des fichiers ? "ls -l ~/www/*" ?

Une solution pourrait être de créer un groupe "apachefiles", de t'y mettre ainsi qu'apache, et de rendre tous les fichiers lisibles (et év. exécutables) au groupe.
Invité

Message par Invité »

Et le dossier siteWeb a lui aussi les bons droits ?

Sinon, plutôt que de détourner /var/www , il y a d'autres possibilités intéressantes:

1 - utiliser le module userdir. Normalement il doit être installé par défaut avec apache sur ubuntu, mais pas activé. pour l'activer (commandes debian/ubuntu):

Code : Tout sélectionner

sudo a2enmod userdir
sudo /etc/init.d/apache2 reload
pour le désactiver:

Code : Tout sélectionner

sudo a2dismod userdir
Avec ce module, http://localhost/~login pointe sur le dossier ~/public_html/ (i.e. /home/login/public_html )

Je m'en sers pour les essais rapides.

2 - utiliser des alias ou des virtual host.
Pour debian/ubuntu, créer un fichier monsite.conf dans /etc/apache2/sites-available (appartenant à root), contenant par example :

Code : Tout sélectionner

Alias "/monsite" "/home/login/monsite"

<Directory "/home/login/monsite">

    DirectoryIndex index.php index.html
    php_value include_path ".:/usr/share/php"
    php_value date.timezone "Europe/Paris"
    AddDefaultCharset UTF-8

    Options Indexes FollowSymLinks Includes MultiViews

    AllowOverride All
    Allow from all

</Directory>
Pour activer cette configuration:

Code : Tout sélectionner

sudo a2ensite monsite.conf
/etc/init.d/apache2 reload
pour la désactiver:

Code : Tout sélectionner

sudo a2dissite monsite.conf
/etc/init.d/apache2 reload
çà permet de régler finement un alias pour un site, avec ces propres spécificités, de le sauvegarder facilement.

3 - faire l'inverse, un lien de tes dossiers dans /var/www , ils doivent avoir les droits de lecture suffisants pour www-data
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

cr*tte, j'ai oublié de me connecter...
Zefling
Tyrannosaurus Rex
Messages : 2577
Inscription : 21 déc. 2004, 03:45

Message par Zefling »

calimo a écrit :Quel est l'uid d'apache ? "ps -ef|grep apache" devrait donner la réponse.
Quels sont les droits des fichiers ? "ls -l ~/www/*" ?

Une solution pourrait être de créer un groupe "apachefiles", de t'y mettre ainsi qu'apache, et de rendre tous les fichiers lisibles (et év. exécutables) au groupe.
Quel est l'importance de l'UID :?:

Le droit de fichier ... c'est root et www-data. J'ai l'impression qu'il s'en fout. Mais j'arrive pas à faire fonctionner vsftpd en SFTP parce que debian n'a pas mis à jour un paquet qui le rend compatible avec les dernières modifications de sécurité et donc de filezilla.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)
Mon blog de dév web ― Thème pour le forum Geckozone ― Le clavier Latin-9 fr sous Windows ― Raccourcis clavier pour Firefox
Debian 8 KDE avec Firefox & Nightly
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

L'uid ou ne nom utilisateur.
Habituellement, apache ne fonctionne pas en root, et n'a donc pas accès à tous les fichiers. S'il est exécuté en www-data, il n'aura pas forcément accès aux fichiers de "ymai" (par exemple) (sauf à jouer sur les groupes)
Zefling
Tyrannosaurus Rex
Messages : 2577
Inscription : 21 déc. 2004, 03:45

Message par Zefling »

La commande me donne ça.

Code : Tout sélectionner

www-data 28867 31278  0 12:08 ?        00:00:08 /usr/sbin/apache2 -k restart
www-data 30048 31278  0 12:31 ?        00:00:02 /usr/sbin/apache2 -k restart
www-data 30490 31278  0 12:39 ?        00:00:01 /usr/sbin/apache2 -k restart
www-data 30794 31278  0 12:45 ?        00:00:00 /usr/sbin/apache2 -k restart
www-data 30846 31278 12 12:46 ?        00:00:31 /usr/sbin/apache2 -k restart
www-data 30852 31278  0 12:46 ?        00:00:00 /usr/sbin/apache2 -k restart
www-data 30855 31278  0 12:46 ?        00:00:00 /usr/sbin/apache2 -k restart
www-data 30858 31278  0 12:46 ?        00:00:00 /usr/sbin/apache2 -k restart
www-data 30859 31278  0 12:46 ?        00:00:00 /usr/sbin/apache2 -k restart
www-data 30860 31278  0 12:46 ?        00:00:00 /usr/sbin/apache2 -k restart
www-data 30862 31278  0 12:46 ?        00:00:00 /usr/sbin/apache2 -k restart
root     31083 31069  0 12:50 pts/0    00:00:00 grep apache
root     31278     1  0 Mar03 ?        00:02:28 /usr/sbin/apache2 -k restart
J'avoue que j'ai appris en faisant. Ma formation aurait du me l'apprendre, mais les cours sont si mal fichu que j'avais rien compris.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)
Mon blog de dév web ― Thème pour le forum Geckozone ― Le clavier Latin-9 fr sous Windows ― Raccourcis clavier pour Firefox
Debian 8 KDE avec Firefox & Nightly
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Donc le serveur tourne comme "www-data".
Reste à savoir s'il a les droits sur les fichiers web.

ls -l devrait donner plus d'éclairage à la question :wink:
Zefling
Tyrannosaurus Rex
Messages : 2577
Inscription : 21 déc. 2004, 03:45

Message par Zefling »

Je ne donne pas tout, pour certaines raisons ^^

Par exemple :

Code : Tout sélectionner

ls -l /home/www/* > liste

/home/www/dico.ikilote.net:
total 136
-rw-r--r-- 1 www-data www-data 110723 2008-08-20 23:04 dictionnaire.php
-rw-r--r-- 1 www-data www-data    280 2006-06-19 15:05 favicon.png
drwxr--r-- 2 www-data www-data  12288 2009-02-28 22:52 Images
-rw-r--r-- 1 www-data www-data   2840 2008-08-20 22:59 index.php

/home/www/ff0.net:
total 12
drwxr-xr-x 12 root root 4096 2009-02-13 06:31 archives
-rw-r--r--  1 root root  871 2009-02-13 06:15 favicon.ico
-rw-r--r--  1 root root  635 2009-02-13 06:46 index.html
Petit oublie : Je peux afficher ce qui est root, mais aucunement le modifier depuis un script PHP. Il me dira que je n'ai pas l'autorisation de le faire.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)
Mon blog de dév web ― Thème pour le forum Geckozone ― Le clavier Latin-9 fr sous Windows ― Raccourcis clavier pour Firefox
Debian 8 KDE avec Firefox & Nightly
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Message par Ymai »

Bonjour
Merci pour toutes les suggestions (et questions). Je vais en avoir pour le week-end à étudier tout cela.
Puis-je oser une question des plus candides? Pourquoi Apache a-t-il soudain tant de haine contre moi alors que tout devrait fonctionner "out of the box"?

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.7) Gecko/2009030422 Ubuntu/8.04 (hardy) Firefox/3.0.7
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Zefling a écrit :Je ne donne pas tout, pour certaines raisons ^^

Par exemple :

Code : Tout sélectionner

ls -l /home/www/* > liste

/home/www/dico.ikilote.net:
total 136
-rw-r--r-- 1 www-data www-data 110723 2008-08-20 23:04 dictionnaire.php
-rw-r--r-- 1 www-data www-data    280 2006-06-19 15:05 favicon.png
drwxr--r-- 2 www-data www-data  12288 2009-02-28 22:52 Images
-rw-r--r-- 1 www-data www-data   2840 2008-08-20 22:59 index.php
Donc apache devrait être capable de lire et d'interpréter ces fichiers, puisque le propriétaire (www-data) a le droit de lecture (r) et que apache est exécuté en tant que www-data, donc est propriétaire de ces fichiers.
Zefling a écrit :

Code : Tout sélectionner

/home/www/ff0.net:
total 12
drwxr-xr-x 12 root root 4096 2009-02-13 06:31 archives
-rw-r--r--  1 root root  871 2009-02-13 06:15 favicon.ico
-rw-r--r--  1 root root  635 2009-02-13 06:46 index.html
Petit oublie : Je peux afficher ce qui est root, mais aucunement le modifier depuis un script PHP. Il me dira que je n'ai pas l'autorisation de le faire.
Parfaitement normal. Seul le propriétaire a accès en écriture (w). Ce propriétaire est root, et donc www-data (soit groupe, soit autres) n'a pas de droit d'écriture dessus.
Ymai a écrit :Bonjour
Merci pour toutes les suggestions (et questions). Je vais en avoir pour le week-end à étudier tout cela.
Puis-je oser une question des plus candides? Pourquoi Apache a-t-il soudain tant de haine contre moi alors que tout devrait fonctionner "out of the box"?
Tu lui attribues une conscience qu'il n'a pas. Il doit y avoir un souci dans les permissions et il doit manquer un +r quelque part ;-)

PS : de toutes façons c'est pas apache, lui ne décide rien, c'est ton système qui refuse l'accès à apache :-P

Edit : citations mal fermées.

PPS : si c'est la lecture de la sortie de ls qui pose problème, avec tous ces r, w, x, -, etc., n'hésite pas à demander plus de précisions :wink:
Zefling
Tyrannosaurus Rex
Messages : 2577
Inscription : 21 déc. 2004, 03:45

Message par Zefling »

:roll: Sur mon serveur ça marche très bien. J'ai jamais eu de problème de droit (je dois avoir de la chance ?). En général, l'écriture se fait en DB donc j'ai pas trop de problème (c'est mySQL qui gère ça, dans son groupe :P)

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)
Mon blog de dév web ― Thème pour le forum Geckozone ― Le clavier Latin-9 fr sous Windows ― Raccourcis clavier pour Firefox
Debian 8 KDE avec Firefox & Nightly
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités