Naeh.net Le mémo du développeur

8oct/083

Installer libssh2, ssh2 pour php

Dans cet article nous allons voir comment installer l'extension ssh2 pour php5, cette extension permet l'utilisation de fonctionnalités SSH2 avec php (très utiles quand on veut faire du SFTP par exemple) pour plus d'informations cf. la documentation officielle sur php.net

Pour l'installation, ce n'est pas très compliqué, il suffit de suivre ces quelques étapes à la lettre et tout ira très bien ;-)

tout d'abord il faut s'assurer d'avoir les bons paquets d'installés, en voici une liste :

  • php5-dev
  • openssl
  • libssl-dev
  • gcc
  • make
  • etc. je suppose que si vous installez cette extension, c'est que vous avez déjà php, apache etc.

Toute la suite s'effectue en root

mais avant toute chose, n'oublions pas de faire un petit :

apt-get update
apt-get upgrade

en suite il faut créer un répertoire de travail :

cd ~
mkdir libssh2
cd libssh2

ensuite télécharger libssh2 :

wget http://ovh.dl.sourceforge.net/sourceforge/libssh2/libssh2-0.14.tar.gz

puis l'extraire :

tar -xzvf libssh2-0.14.tar.gz

aller dans le répertoire créé et installer libssh2 :

cd libssh2-0.14
./configure && make all install

maintenant que libssh2 est installée, passons a ssh2 :

on sort du repertoire de libssh2 et on télécharge ssh2 :

cd ..
wget http://pecl.php.net/get/ssh2-0.10.tgz

extraire l'archive téléchargée :

tar -xzvf ssh2-0.10.tgz

aller dans le répertoire créé et installer ssh2 :

cd ssh2-0.10
phpize && ./configure --with-ssh2 && make

maintenant que l'installation est terminée, on active l'extension, ici on va copier le fichier ssh2.so dans le répertoire des extension de php5 (il peut être différent du mien selon la distrib et l'installation) :

cp modules/ssh2.so /usr/lib/php5/20060613+lfs

puis on ajoute l'extension en créant un fichier ssh2.ini dans le répertoire conf.d (comme pour toutes les autres extensions de php) on n'oublie pas de le faire pour apache mais aussi pour le mode CLI.

echo "extension=ssh2.so" > /etc/php5/cli/conf.d/ssh2.ini
echo "extension=ssh2.so" > /etc/php5/apache2/conf.d/ssh2.ini
/etc/init.d/apache2 restart

Et voilà, notre extension est installée, a vous ssh2 et sftp avec php :)

28sept/0811

Additions client pour VirtualBox

Ici nous allons voir comment installer les additions client sur une virtualbox sous Windows et pour une Debian Etch en guest.

ça parait simple, mais quand on a installé une Debian assez maigre (avec presque rien dessus) la tache ne se résume plus a un simple clic, voici donc ce qu'il faut faire :

la première étape est obligatoire pour nous éviter un message d'erreur du type :

"Please install the build and header files for your current Linux kernel.
The current kernel version is 2.6.17-5mdv
Please install the GNU compiler.
Problems were found which would prevent VirtualBox from installing.
Please correct these problems and try again."

debian-guest:~# apt-get install linux-headers-`uname -r` build-essential

après il faut aller dans : Périphériques >> Installer les additions client...

retourner dans Debian et faire :

debian-guest:~# cd /media/
debian-guest:~# mount cdrom0
debian-guest:~# cd cdrom
debian-guest:~# sh VBoxLinuxAddition-XXXX.run (le XXX c'est la version adm64 ou x86)

redémarrez les machine virtuelle est ca devrait être bon ;-)

22sept/081

Wordpress avec Lighttpd

Depuis peu naeh.net tourne sous Lighttpd (Adieu mon cher Apache 2), parait-il c'est aussi performant que Apache mais ça consomme beaucoup moins de mérmoire et de ressources CPU.

C'est beau, rapide, léger, en gros c'est magnifique, mais c'est pas tout.

il faut noter tout de même quelques différences par rapport à Apache, Lighttpd ne comprend pas les .htaccess, ne gère pas les vhosts de la même façon qu'Apache etc.

Or, wordpress utilisse l'url rewriting pour nous donner de belles urls, voici donc le bout de code a ajouter dans le vhost de wordpress pour que ce dernier continue à servir de belles urls :

server.error-handler-404 = "/index.php?error=404"
 
url.rewrite = (
        "^/(wp-.+).*/?" => "$0",
        "^/(sitemap.xml)" => "$0",
        "^/(xmlrpc.php)" => "$0",
        "^/(.+)/?$" => "/index.php/$1"
)

On garde même la gestion de l'erreur 404 par wordpress ;)

avec ces quelques lignes, votre wordpress ne peut que mieux se porter dans son nouvel environnement Lighty :)

N.B. n'oublier pas d'activer le module rewrite dans lighttpd.conf pour qu'il sache ce qu'on lui demande quand même ;)
voici la ligne a décommenter (ou a ajouter) :

server.modules              = (
            ...
            "mod_rewrite",
            ...
)

n'oubliez pas un petit

 /etc/init.d/lighttpd restart

a la fin :)

14mai/085

Comment installer fileinfo sous debian

Les fonctions de l'extension FileInfo essaient de savoir le type de contenu et l’encodage d’un fichier en regardant certaines séquences d’octet "magique" à des positions spécifiques à l’intérieur du fichier. Bien qu'il ne s'agit pas d'une approche infaillible, la méthode heuristique effectue un très bon travail.

le problème avec cette extension c'est qu'elle est un peu dur à installer, en réalité pas si dur que ça, il suffit de prendre le temps de le faire. Il faut juste savoir qu'un simple apt-get install php5-fileinfo ne suffira pas, tout simplement parce qu'il n'existe pas de paquet debian pour cette extension (pas encore...).

Donc pour l'installer, voici la procédure :
Il faut d'abord installer PEAR :

apt-get install php-pear

ensuite il faut installer php5-dev si ce n'est pas déjà fait, ceci installera phpize ce qui nous évitera l'erreur :

sh: phpize: command not found
ERROR: `phpize' failed

installation de php5-dev :

apt-get install php5-dev

c'est presque bon mais pas encore :
maintenant il faut installer libmagic pour nous éviter une erreur lors de l'installation de fileinfo :

apt-get install libmagic-dev

maintenant tout est bon, nous allons enfin pouvoir lancer l'installation de notre extension :

pecl install fileinfo

Voilà, maintenant fileinfo est installée, nous allons pouvoir vérifier les types mime des fichiers avec des méthodes plus fiables ;-)

Normalement tout devrait fonctionner maintenant, mais il ce peut que l'extension ne soit pas activée comme il faut, dans ce cas il faudra créer un fichier fileinfo.ini dans /etc/php5/apache2/conf.d avec le contenu suivant :

extension=fileinfo.so

reloader apache avec /etc/init.d/apache2 reload et le tour est joué :)

4mar/080

Installer PHPDoc et générer une documentation

Dans cet article nous allons voir comment à partir d'un code source bien commenté, générer une documentation comme on aimerait avoir pour tout projet ou application digne de son nom.

Pour cela nous allons utiliser PHPDocumentor. qui va nous permetre de générer une documentation à paritr des sources de notre projet.

Il faut d'abord l'installer avec la commande suivante :

pear install phpdocumentor

(si pear n'est pas installé faites un apt-get install php-pear)

Si vous rencontrez un problème de dépassement de mémoire alouée avec PHP, allez dans /etc/php5/cli/php.ini et augmenter cette limite (il s'agit du paramètre memory_limit).

création d'un fichier de configuration pour le projet :

pour générer la documentation d'un projet nous avons besoin d'un fichier de configuration par projet, en voici un exemple :
fichier nom_du_projet.conf :

[Parse Data]
title = Titre de la documentation
hidden = false
parseprivate = off
javadocdesc = off
defaultcategoryname = Documentation
defaultpackagename = Projet
target = /PATH/OU/SERA/ENREGISTRE/LA/DOCUMENTATION
readmeinstallchangelog = README, INSTALL, FAQ, LICENSE
directory =   /PATH/VERS/LE/PROJET
ignore = templates/,test*.php
sourcecode = on
output=HTML:frames:earthli

et pour tester exécutez la commande suivante (après avoir créé le répertoire cible de la documentation)

phpdoc -c nom_du_projet.conf

et voilà, la génération prend un peu de temps, en fonction de la machine et de la taille du projet.