Page 1 sur 2
lien symbolique avec serveur Apache2 local [1/2 résolu]
Publié : 18 mars 2009, 19:46
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.
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
Publié : 18 mars 2009, 20:32
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)
Publié : 18 mars 2009, 20:35
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
Publié : 18 mars 2009, 21:00
par Zefling
Non ça par exemple :
Mais j'avoue que mes adresses c'est /var/www/dossier
Sur mon serveur :
Et le dossier en question dans /home/www :
Donc c'est pas problème de droit.
Mais après je fais tout avec des virtuals hosts
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)
Publié : 19 mars 2009, 08:55
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.
Publié : 19 mars 2009, 10:28
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):
pour le désactiver:
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:
pour la désactiver:
çà 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
Publié : 19 mars 2009, 10:29
par martin
cr*tte, j'ai oublié de me connecter...
Publié : 19 mars 2009, 10:47
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)
Publié : 19 mars 2009, 12:44
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)
Publié : 19 mars 2009, 12:53
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)
Publié : 19 mars 2009, 13:00
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

Publié : 19 mars 2009, 15:24
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)
Publié : 19 mars 2009, 17:51
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
Publié : 19 mars 2009, 18:15
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
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

Publié : 19 mars 2009, 18:27
par Zefling

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

)
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)