Archives de catégorie : dev

Pour les rares fois où je parle de développement (programmation)

Migration MySQL vers MariaDB

Pourquoi ?

logo-MariaDB Pourquoi migrer sur MariaDB ?

Parce-que.

Evacuez les quelques craintes

Voilà, maintenant que les raisons sont données, je tenais juste à rassurer ceux qui hésiteraient à migrer de peur qu’un truc se passe mal et que le retour arrière soit compliqué. Que nenni.

Ca prend en gros 2 minutes et le service MySQL MariaDB est de retour, vos sites web fonctionnent (wordpress, n’importe quoi qui tourne avec PHP/MySQLi etc). Pour info, les commandes s’appellent encore mysql, donc mêmes vos scripts sont OK, /var/lib/mysql/ demeure ainsi etc. Je m’attendais à trouver des « alternatives » type « mysql » qui pointe vers « maria », mais même pas. Peut-etre plus tard ?
Je pense par contre que c’est le moment de migrer sans effort vers MariaDB (en l’occurrence sur Debian/Jessie en version MariaDB 10.0.x) Continuer la lecture

php5 readline en Debian Wheezy

php-bigRécemment, je voulais écrire un mini interpréteur de commande pour un mini-projet. En PHP.
Quelle surprise : la commande readline n’est pas là de base en Linux – sur Debian stable Wheezy – et n’existe carrément pas en PHP/windows…
En Debian/Jessie, il y a/aura un module php5-readline directement accessible.

En Debian/Wheezy, il faut soit aller chercher dans dotdeb.org (je n’aime pas trop), soit compiler le module à la main en fonction de sa version de PHP. Et on recompilera à chaque évolution de version PHP… en attendant Jessie.

Pour ce faire : Continuer la lecture

WordPress, Contact-Form et getparam

wordpress-logo-simplified-rgb - CopieLe petit module « getparam » est (était) un petit module sympa pour récupérer des champs passés dans l’URL d’une page WordPress appelant un « Contact Form ». Mais depuis un update récent de Contact Form, le plugin était KO.

Ce module permet par exemple de faire un formulaire de « unsubscribe » avec contrôle d’un champ passé en URL pour vérification diverse…

Voici de quoi le refaire fonctionner : Continuer la lecture

Migrer du code PHP de mysql à mysqli

phpmysqlCa faisait un moment que je devais le faire. Mais la peur de tout planter pendant trop longtemps m’en empêchait.
Finalement, ça s’est fait en une heure, en comprenant le temps d’analyse et de compréhension de l’outil-qui-va-bien.
Mais de quoi je parle ?
Je parle du fait que tout le monde utilise l’API « mysql » de PHP – historiquement et par habitude – pour taper dans une base MySQL alors que celle-ci est obsolète depuis un paquet de temps. Il faut utiliser sa remplaçante « mysqli ».
C’est décrit ici chez PHP.net

En très très gros, il suffit de remplacer Continuer la lecture

Catch-all DNS, VirtualHost et on fait mumuse avec les noms de sous-domaines

Salut lecteur,

Un bail que je n’ai rien écrit sur ce blog, la faute à un petit projet perso qui me prend un peu de temps chez moi, semble-t-il.

L’idée

Ceci dit, je voulais laisser une trace de cette manip’ qui consiste à autoriser n’importe quel nom de sous-domaine d’un domaine que vous possédez, exemple le fameux « mon_domaine.com » en ayant la possibilité d’envoyer vers un site ou un autre (au sens, un VirtualHost/DocumentRoot ou un autre) suivant le nom de sous-domaine appelé, la liste de ces sous-domaines étant potentiellement illimitée.

Bon, OK, pour la formulation, c’est pas forcément limpide. Un exemple concret : mon_domaine.com est Continuer la lecture

scp et SSH en PHP

Hop,
J’ai eu besoin de faire un script un peu évolué pour jouer avec une base Oracle et des fichiers à ramener depuis un serveur distant.
Bref, j’ai pensé au PHP pour faire un truc assez fin, mêlant Oracle et des transferts de fichiers en « scp ».

Seule difficulté, installer le module SSH pour PHP. Ce que je décris ici.
Ensuite, les bouts de codes exemple sont sur la doc de PHP.

Côté serveur Debian

J’étais parti de l’installation PECL directement, ça plante, il manquait des petits bouts côté Debian Continuer la lecture

libdbd-oracle-perl sur Debian

J’ai besoin du module Oracle pour PERL. Fastoche, c’est le paquet « libdbd-oracle-perl ».
Manque de bol, il dépend d’un paquet virtuel (qui n’existe pas, rapport aux licences non-libres, Debian, et toute cette philosophie). Ledit paquet est « oracle-instantclient-basic ».

Pas de problème me direz-vous, c’est le genre de trucs qui traîne chez Oracle.
Oui oui, d’ailleurs je décris son installation dans un précédent article. Dommage, le paquet ainsi installé est nommé « oracle-instantclient11.1-basic » et non « oracle-instantclient-basic ».

Après un peu de Google, n’arrivant pas à forcer l’installation sans respecter la dépendance, j’ai choisi d’installer le module DBD::Oracle (de son petit nom) à la main depuis CPAN (la base des modules PERL pour les autistes adorant PERL < --- troll). Et là encore, c'est douloureux. Je décris donc ici en bref les commandes à taper pour que ça se fasse tout seul. Je considère que la doc mentionnée ci-dessus a été suivie, donc vous avez un client Oracle fonctionnel testé avec SQLPlus par exemple. Let's go. Continuer la lecture

Envoyer un mail après un commit sur un repository SVN

Voici la manip à faire, sauce Debian, où tout est prévu, tout est packagé 🙂

Contexte

Je suppose que vous avez un SVN qui tourne. Vous voulez qu’à chaque « commit », un mail soit envoyé à une personne (ou une liste de personnes), contenant tout ce qu’on peut en attendre : message, fichiers impactés etc.
Sur Internet, tout le monde y va de son script en perl, ruby, bash etc. Debian propose un truc tout fait. J’aime bien 🙂

Le principe est le suivant : l’outil SVN a déjà tout prévu. Il y a des « hooks » (grappin = bout de code appelable à un instant donné d’une commande SVN) qu’il suffit d’activer. Un tout petit peu de paramétrage et ça roule. Continuer la lecture

Retour de galère d’installation de Mantis (Bug Tracking) sur Debian/Lenny

Mantis est un BTS (Bug Tracking System) comme Bugzilla, gForge, Trac etc…
Je ne parlerai pas des intérêts de celui-là plutôt qu’un autre, simplement des spécificités liées au packaging Debian et d’une fonction essentielle manquante : import d’un existant de bugs depuis un tableau type CSV.
J’aborde vite fait la partie LDAP pour recommander de l’oublier – OpenLDAP et Active Directory aussi Continuer la lecture

TortoiseCVS, Truecrypt et clef USB…

J’utilise TortoiseCVS pour accéder à un dépôt un peu sensible. Afin de le protéger sur mon ordi portable (en cas de vol), j’ai préféré le stocker sur une clef USB utilisant un container Truecrypt utilisant un bon cryptage et mot de passe long comme le bras.

Manque de bol, TortoiseCVS ne voulait pas me faire de checkout sur une clef USB ou sur un « container Truecrypt », vu aussi comme une clef USB, un « périphérique amovible ».

Pour régler ce problème, il faut penser à décocher la case « Mount volumes as removable media » dans les options de Truecrypt. C’est tout con, mais j’ai perdu une heure…

La contrepartie est expliquée dans les FAQ de Truecrypt. Rien de violent à vrai dire :

Q: What will change when I enable the option ‘Mount volumes as removable media’?

A: You can enable this option, for example, to prevent Windows from automatically creating the ‘Recycled’ and/or the ‘System Volume Information’ folders on TrueCrypt volumes (in Windows, these folders are used by the Recycle Bin and System Restore facilities). However, there are some disadvantages. For example, when you enable this option, the ‘Computer’ (or ‘My Computer’) list will not show free space on the volume (note that this is a Windows limitation, not a bug in TrueCrypt).

Ce qui est pénible, c’est que c’est probablement une nouvelle version de TortoiseCVS qui m’a apporté ce problème (je ne trouve pas que ce soit une « feature » que de rejeter les clefs USB comme ça sans rien dire, c’est plutôt un bug…). Je vais éplucher un peu les releases notes et forums à ce sujet.