Ré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 :
aptitude install php5-dev libedit-dev
aptitude install libreadline-dev # sinon manque readline.h
cd ~/
apt-get source php5-cli
cd php5-5*/ext/readline
phpize
./configure
ln -sf ../../sapi/ # sinon manque sapi/cli/cli.h
make
mkdir /usr/local/lib/php5
cp modules/readline.so /usr/local/lib/php5
echo extension=/usr/local/lib/php5/readline.so > /etc/php5/conf.d/readline.ini
php -m # pour voir le module
service apache2 reload # pour que apache en tienne compte
Voilà, pas compliqué, mais ça valait un aide-mémoire pour ne pas chercher le prochain coup…