Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/04/2011, 15h27   #1
Invité de passage
 
Inscription : avril 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 8
Points : 1
Points : 1
Par défaut Soucis d'installation de WebDAV

Bonjour.

Je viens vers vous dans un long post comme j'ai l'habitude de les faire lorsque j'ai un problème; parce que ce n'est pas les habituelles deux lignes de sms qu'on ne voit que trop fréquemment qui aident les gens à comprendre le soucis.

Donc comme indiqué dans le titre, j'ai des soucis pour faire fonctionner le mod_dav. A noter que je souhaite le faire fonctionner d'une certaine façon, le but n'étant pas que ça fonctionne à tout prix, mais que je réussisse à le faire aller de la façon dont je souhaite l'installer.

Je vais donc partir de zéro.

Pour un peu plus de détails, la "façon", donc, dont je souhaite tout faire fonctionner, c'est en installant tout avec le code source, et en intégrant le mod_dav en tant que .so.

Petit aperçu de mon dossier dev (dans mon dossier personnel hein, aucun rapport avec le vrai /dev):
Citation:
- dev
---- apache
-------- (les dossiers d'apache)
-------- www
------------ dav
---- src
-------- httpd-2.2.17
-------- tar
------------ httpd-2.2.17.tar.gz
Donc le répertoire src contient simplement les dossiers sources, permettant les installations...

Pour installer Apache, je fais donc ceci (en occultant la partie décompression du dossier et les sudo)
Citation:
Dans dev/src/httpd-2.2.17 :
./configure --prefix=/home/.../dev/apache --enable-so
make -j 2
make install

Puis dans dev/apache :
./bin/apxs -c -i -n dav -a /home/.../dev/src/httpd-2.2.17/modules/dav/main/mod_dav.c
Je redémarre alors Apache pour voir si à partir d'ici il n'y a pas d'erreur, mais malheureusement si.

Citation:
httpd: Syntax error on line 53 of /home/chameau/dev/apache/apache-2.2.17/conf/httpd.conf: Cannot load /home/chameau/dev/apache/apache-2.2.17/modules/mod_dav.so into server: /home/chameau/dev/apache/apache-2.2.17/modules/mod_dav.so: undefined symbol: dav_core_find_liveprop
Des idées?

Merci d'avance.
Alkaest est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 16h04   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 280
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 280
Points : 8 568
Points : 8 568
Bizarre. Tu peux donner la sortie de la commande apxs ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 16h52   #3
Invité de passage
 
Inscription : avril 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 8
Points : 1
Points : 1
Voila voila

Citation:
~/dev/apache/apache-2.2.17$ sudo ./bin/apxs -c -i -n dav -a /home/chameau/dev/src/httpd-2.2.17/modules/dav/main/mod_dav.c
/home/chameau/dev/apache/apache-2.2.17/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/home/chameau/dev/apache/apache-2.2.17/include -I/home/chameau/dev/apache/apache-2.2.17/include -I/home/chameau/dev/apache/apache-2.2.17/include -c -o /home/chameau/dev/src/httpd-2.2.17/modules/dav/main/mod_dav.lo /home/chameau/dev/src/httpd-2.2.17/modules/dav/main/mod_dav.c && touch /home/chameau/dev/src/httpd-2.2.17/modules/dav/main/mod_dav.slo
/home/chameau/dev/apache/apache-2.2.17/build/libtool --silent --mode=link gcc -o /home/chameau/dev/src/httpd-2.2.17/modules/dav/main/mod_dav.la -rpath /home/chameau/dev/apache/apache-2.2.17/modules -module -avoid-version /home/chameau/dev/src/httpd-2.2.17/modules/dav/main/mod_dav.lo
/home/chameau/dev/apache/apache-2.2.17/build/instdso.sh SH_LIBTOOL='/home/chameau/dev/apache/apache-2.2.17/build/libtool' /home/chameau/dev/src/httpd-2.2.17/modules/dav/main/mod_dav.la /home/chameau/dev/apache/apache-2.2.17/modules
/home/chameau/dev/apache/apache-2.2.17/build/libtool --mode=install cp /home/chameau/dev/src/httpd-2.2.17/modules/dav/main/mod_dav.la /home/chameau/dev/apache/apache-2.2.17/modules/
cp /home/chameau/dev/src/httpd-2.2.17/modules/dav/main/.libs/mod_dav.so /home/chameau/dev/apache/apache-2.2.17/modules/mod_dav.so
cp /home/chameau/dev/src/httpd-2.2.17/modules/dav/main/.libs/mod_dav.lai /home/chameau/dev/apache/apache-2.2.17/modules/mod_dav.la
cp /home/chameau/dev/src/httpd-2.2.17/modules/dav/main/.libs/mod_dav.a /home/chameau/dev/apache/apache-2.2.17/modules/mod_dav.a
chmod 644 /home/chameau/dev/apache/apache-2.2.17/modules/mod_dav.a
ranlib /home/chameau/dev/apache/apache-2.2.17/modules/mod_dav.a
PATH="$PATH:/sbin" ldconfig -n /home/chameau/dev/apache/apache-2.2.17/modules
----------------------------------------------------------------------
Libraries have been installed in:
/home/chameau/dev/apache/apache-2.2.17/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /home/chameau/dev/apache/apache-2.2.17/modules/mod_dav.so
[activating module `dav' in /home/chameau/dev/apache/apache-2.2.17/conf/httpd.conf]
Alkaest est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 21h43   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 280
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 280
Points : 8 568
Points : 8 568
Tu démarres Apache comment (quelle commande ?) ? As-tu essayé de faire ce qui es indiqué dans le commentaire à la fin de la commande apxs ? J'entends par là éditer le fichier /etc/ld.so.conf s'il existe pour y indiquer le chemin /home/chameau/dev/apache/apache-2.2.17/modules.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 22h01   #5
Invité de passage
 
Inscription : avril 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 8
Points : 1
Points : 1
Je démarre Apache de cette façon : sudo [Dossier Apache]/bin/apachectl start

Quand au fichier /etc/ld.so.conf, il ne contient que ceci : include /etc/ld.so.conf.d/*.conf

J'ai donc suivi bêtement la logique et ajouté (testé aussi sans include) : include /home/chameau/dev/apache/apache-2.2.17/modules

Après lecture rapide de l'utilité de ce fichier, j'ai lu qu'il fallait exécuter /sbin/ldconfig après chaque modification du fichier précédent, ce que j'ai fait.

Puis j'ai redémarré Apache, mais rien n'y fait. Même erreur.

Edit : J'ai ajouté les modules dav_fs et dav_lock au cas où le problème viendrait de là, et non...
Par contre, je note que le soucis d'undefined symbol survient également sur les deux autres modules, l'erreur affichée n'étant pas la même en fonction de quel module se trouve en première position de chargement dans le httpd.conf.
LoadModule mod_dav_fs_module modules/mod_dav_fs.so en premier : undefined symbol: dav_fs_gather_propsets
LoadModule mod_dav_lock_module modules/mod_dav_lock.so : undefined symbol: dav_hooks_locks_generic
Alkaest est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 21h19   #6
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 280
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 280
Points : 8 568
Points : 8 568
J'ai fait un test hier et c'est effectivement assez bizarre : le module généré par APXS est beaucoup plus petit que celui généré par un ./configure --with-... C'est un peu comme si APXS ne compilait pas tout le module.

Tu es vraiment sur de vouloir compiler avec APXS et pas un --with ? Un --with te génèrera aussi un .so.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 21h40   #7
Invité de passage
 
Inscription : avril 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 8
Points : 1
Points : 1
Quelle est la différence entre les deux méthodes?
Alkaest est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 23h06   #8
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 280
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 280
Points : 8 568
Points : 8 568
Honnêtement, aucune idée !! Mais y en a une qui marche
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 01h15   #9
Invité de passage
 
Inscription : avril 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 8
Points : 1
Points : 1
Poussons la question un peu plus loin.

J'installe Apache comme annoncé précédemment.

Si je veux ajouter le mod_dav avec le --enable, est-ce que je dois :
- désinstaller Apache et le réinstaller avec le enable
- refaire un configure avec enable dav > make clean (c'est ça?) > make install
- refaire un configure entier (--prefix, -- enable-so, --enable-dav....)

Les solutions 2 et 3 ne risquent-elles pas de faire un reset, entre autres, du httpd.conf?
Alkaest est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 15h26   #10
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 280
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 280
Points : 8 568
Points : 8 568
A mon avis, tu peux faire une compile quasi complète (make clean, configure et make) mais surtout pas le make install. Comme ça, tu as tout compilé mais pas écrasé l'existant. Il ne restera plus qu'à trouvé et copié le fichier mod_dav.so.

Citation:
Envoyé par Alkaest Voir le message
Les solutions 2 et 3 ne risquent-elles pas de faire un reset, entre autres, du httpd.conf?
Un simple backup du fichier pour restauration ultérieure devrait faire l'affaire.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2011, 19h34   #11
Invité de passage
 
Inscription : avril 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 8
Points : 1
Points : 1
Bonjour bonjour. Me revoilà pour une nouvelle question en repensant à tout ça...
Quelle est la différence entre -with-dav (comme proposé), et --enable-dav?
Alkaest est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2011, 23h29   #12
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 280
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 280
Points : 8 568
Points : 8 568
Euh... Faut lire dans le détail l'aide configure. Comme ça, à froid, je dirais que la différence se joue dans la prise en charge de mod_dav en tant que module DSO : avec --with... tu compiles Apache pour qu'il intègre directement le module en question dans l'exécutable. En gros, tu n'auras pas de fichier .so pour ce module. A l'inverse, avec --enable... tu compiles le module à part (tu as donc un .so) et tu peux le charger dans Apache avec la directive LoadModule.

Mais je ne suis vraiment pas un pro de la compilation d'Apache, donc il ne faut surtout pas me croire sur parole
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 02h03   #13
Invité de passage
 
Inscription : avril 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 8
Points : 1
Points : 1
Citation:
Envoyé par _Mac_ Voir le message
Tu es vraiment sur de vouloir compiler avec APXS et pas un --with ? Un --with te génèrera aussi un .so.
Citation:
avec --with... tu compiles Apache pour qu'il intègre directement le module en question dans l'exécutable. En gros, tu n'auras pas de fichier .so pour ce module
Euh...

Sinon pas d'inquiétudes, je suis le premier à éplucher la doc

Revenons à nos moutons. Je pose la question pour voir si j'ai bien compris.

Le principe d'apxs est d'ajouter "à chaud" un module dans apache.

Dans le cas contraire, pour faire la même, il faut utiliser le configure. Auquel cas il faut retaper la commande exacte tout en rajoutant le module requis...

La commande install va écraser notre précédente version d'Apache pour ajouter la nouvelle. Mais cette commande n'est pas tout le temps utile pour cette même raison.

Dans le cas de quelqu'un qui s'y connait un peu (ou pas) et sait exactement quel fichier il veut ajouter (un seul dans mon cas donc c'est suffisamment facile), il suffit comme conseillé précédemment d'aller le piocher, et le rajouter dans notre dossier actuel, et tout fonctionne.

J'ai bon?

En gros, apxs est une sorte de... pour imager, c'est un peu comme faire entrer une cheminée par une maison construite. Sans apxs, il faut déconstruire la maison, faire entrer la cheminée, puis la reconstruire.
Avec apxs, la cheminée arrive en pièces détachées, et on la monte à l'intérieur...

J'ai bon aussi?

Dernière question affirmative : dans tous les cas, un redémarrage du serveur est requis.
Alkaest est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 16h25   #14
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 280
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 280
Points : 8 568
Points : 8 568
Par expérience, je dirais que ce n'est pas tout à fait ça. Le plus important c'est d'avoir compilé Apache avec le module DSO. C'est ce module qui apporte la directive LoadModule. Sans elle, tu ne peux rien faire.

Après, APXS c'est juste un moyen simple de compiler et déclarer (= ajout du LoadModule dans la conf d'Apache) un module après avoir compilé Apache. Reste plus que le redémarrage. APXS va réexploiter les fichiers générés par configure pour retrouver les répertoires et les fichiers qui vont bien.

Mais APXS est juste un moyen simple : tu peux toujours recompiler complètement Apache avec configure et t'arrêter au make (i.e. ne pas faire make install) : dans le répertoire des sources d'Apache, tu trouveras quelque part le .so qui va bien et il te suffit de le copier dans le bon répertoire et d'ajouter toi-même le LoadModule qui va bien.

J'ai déjà voulu utilisé APXS mais ça n'a pas réussi : j'en suis revenu à la seconde méthode que j'évoque C'était pour compiler mod_dav d'ailleurs, je crois
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h34.


 
 
 
 
Partenaires

Hébergement Web