Catégorie : zeemoz

Zeemoz – dev : entrées terminées

Ca y est maintenant on peut entrer tout ça sans problème, ça fonctionne :

0 => marseille
1 => Marseille
2 => MARSEILLE
3 => abbeville st lucien
4 => abbeville saint lucien
5 => abbeville-saint-lucien
6 => aix en provence entre 200000 et 500000 euros
7 => aix en provence
8 => entre 200000 et 500000 euros
9 => 13 entre 200000 et 500000 euros
10 => 13013 entre 200000 et 500000 euros
11 => 13013 entre 200000 et 500000euros
12 => 13013 entre 200000 et 500000
13 => loyer entre 200000 et 500000
14 => prix entre 200000 et 500000

Je crois que je vais recommencer à être un peu fatigué. Bonne fin de nuit à tout le monde…

Zeemoz : berkeleydb : linké avec la librairie !

J’ai trouvé comment linker les exemples de berkeley DB avec la librairie :
Lors de la compilation, l’utilitaire de lien (ld) va chercher les toutes dernières librairies qu’il connait et les lie à l’executable. Seulement, quand il ne connait pas les librairies, il faut les ajouter.
L’opération est simple : il faut lire le fichier
/etc/ld.so.conf
Sur une distro Debian, il ne contient que cette ligne : include /etc/ld.so.conf.d/*.conf
C’est donc dans le répertoire /etc/ld.so.conf.d/ qu’il nous faut créer un fichier avec un nom explicite, qui spécifie où le linker doit aussi aller chercher les librairies.
Dans mon cas j’ai crée un fichier nommé /etc/ld.so.conf.d/db.4.5.conf dans lequel j’ai mis :
# creation olivier pons 2 mai 2007
/home/sources/db-4.5.20/build_unix/.libs
Ensuite, il suffit juste de dire au linker de recharger son cache :
ldconfig
Pour plus d’infos : man ldconfig !

Zeemoz : créer un nouveau module C pour Apache

Aller dans le répertoire des sources, et taper :

/opt/httpd-2.2.4/bin/apxs -g -n modulenouveau

Il va créer un répertoire ./modulenouveau et à l’intérieur les fichiers Makefile et mod_modulenouveau.c, qui contient le squelette du code tel qu’attendu par Apache.
Ensuite il ne reste qu’à remplir.
Pour le script d’installation, il n’y a qu’à copier /usr/bin/modsearch_install.sh en modmodulenouveau_install.sh et modifier uniquement les variables $SOURCES et $MOD.

Zeemoz : version ou config de libtool

Il y a souvent un problème avec soit la version, soit la config, de libtool.
Il faut toujours que libtool soit configuré pour compiler des librairies partagées, ce qu’il ne fait pas par défaut.
Il faut aller dans /opt/httpd/build/libtool et vérifier que le paramètre "build_libtool_libs" soit à "yes" :
# Whether or not to build shared libraries.
build_libtool_libs=yes

Zeemoz : mémo Apache

  1. Tuer les sémaphores d’Apache
    /opt/httpd/erase_semaphores.sh
  2. Fuites mémoires Apache
    Pour vérifier si Apache a des fuites mémoire, il suffit juste de le faire tourner comme n’importe quel éxécutable, via valgrind :
    valgrind --leak-check=full --log-file=./valgrind.log /opt/httpd/bin/httpd

Zeemoz : plantage Apache

Apache a créé des milliers de sémaphores en mémoire puis a planté. Ces sémaphores sont des descripteurs de ressources écrites dans un système de fichiers virtuel (/dev/shm pour shared memory), autrement dit un ramdisk.

En plantant, les processus httpd n’ont pas pu nettoyer leurs sémaphores, laissant le ramdisk saturé. C’est pourquoi au redémarrage, httpd ne peut créer sa ressource et conclut à un « no space left« .

On voit les sémaphores avec la commande suivante :
ipcs -s | grep www-data

Il y a une astuce avec awk ou perl pour les effacer, ensuite un apachectl start et ça repart.

Zeemoz : machine virtuelle XP

  • vmrun list :
    pour voir les machines virtuelles en cours d’exécution
  • vmrun stop /opt/VirtualMachines/WindowsXPPro/WinXPPro.vmx :
    pour arrêter la machine virtuelle (en principe, avec les VMTools qui sont installés, ça ordonne à la machine virtuelle de s’éteindre « proprement », sinon ça correspond à un arrachement du cable d’alimentation…)
  • vmrun start /opt/VirtualMachines/WindowsXPPro/WinXPPro.vmx :
    démarre notre XP

Les segfault à la fin des commandes sont « normaux », c’est à cause de la façon dont VMPlayer gère le NAT sur l’interface réseau virtuelle.

Zeemoz : berkeleydb enfin

Wow ! J’ai enfin trouvé comment compiler les exemples de berkeley DB :

cd /home/sources/db-4.5.20/examples_c/getting_started
cc -I /home/sources/db-4.5.20/build_unix
-L /home/sources/db-4.5.20/build_unix/.libs
-o load example_database_load.c gettingstarted_common.c -ldb-4.5

L’exécutable généré s’appelle load et il est dans le répertoire courant.