Sqlite Encryption Extension avec PHP

PHP intègre de base sqlite3 , cependant cette version ne supporte pas les bases cryptées avec SEE. La seule solution pour que PHP puisse intéragir avec des bases cryptée c’est de re-compiler l’extension sqlite3 avec l’extension SEE fournie par sqlite (après s’être acquitté de la licence à 2000$ ).
Nous verrons donc ici comment réaliser ceci sous Windows. Je n’ai effectuer la manipulation qu’avec un PHP VC9 , mais celà doit être plus ou moins équivalent avec un VC6.

Prérequis :

Divers outils sont nécessaire avant de commencer quoi que ce soit

  • Visual Studio 2008 (nom de code Vc9) version pro ou express.
  • Le SDK Windows 6.1 : Voir ici
  • Les Binary tools de PHP : Télécharger
  • Les sources PHP : Voir ici
  • Les librairies PHP annexes. Dans le doute je les ai toutes prises, c’est pas très gros , autant pas se priver. Voir ici
  • Les sources de SEE téléchargées sur le dépôt sqlite. Faites attention à la version utiliser dans PHP pour être en adéquation (3.6.19 avec un PHP 5.3.1).
  • Apache version VC9 si besoin : Apachelounge

Procédure :

1- Dans un premier temps installer Visual Studio puis le SDK windows. C’et sans doute la partie la plus longue de l’opération….
2- Pendant ce temps préparez le dossier qui va recevoir les sources à compiler. J’ai personnellement crée un dossier D:/php-sdk.
3- Extraire les binary tools dans le dossier php-sdk. Vous devriez vous retrouver avec un dossier bin et script.

A partir de ce point l’installation du SDK et Visual doit être terminée.

4- Depuis le menu démarrer ouvrir le shell Windows SDK puis taper :
setenv /x86 /xp /release
cd d:\php-sdk\
bin\phpsdk_setvars.bat
bin\phpsdk_buildtree.bat php531

Le nom php531 est bien évidemment à choisir en fonction de votre version de php / humeur.
5- Extraire les sources PHP dans \php531\vc9\x86\
6- Modifiez L’extension sqlite de php (\php531\vc9\x86\ext\sqlite3\libsqlite\) avec la version SEE. Voir la doc SEE pour les lignes de code à copier et insérer.
7- Extraire les librairies annexes dans \php531\vc9\x86\deps\ si vous en avez besoin.
8- Lancez la commande : D:\php-sdk\php53dev\vc9\x86\php5.3.1\buildconf pour créer le fichier de configuration
9- configure –help . Vous donnera les différentes options possible pour votre compilation. Gardez en tête que pour obtenir une dll les extension doivent être compilée en shared.
Par exemple : configure –enable-pdo –with-pdo-sqlite3=shared
10- Une fois la configuration terminée (sans erreur) lancez : nmake
11- Une fois la compilation terminée lancez : nmake install
Par défaut vous trouverez les binaire et dll dans C:/php5/
12- Copiez la dll sqlite3 nouvellement compilé et remplacez là dans vos binaires de production.

Attention : Il est indispensable que vos binaires soit compilé avec le même compilateur que votre extension ! Extension VC9 = binaire VC9.

Après un redémarrage de php vous pouvez desormais profiter de la version cryptée de sqlite directement dans php.
On peut par exemple ouvrir une base cryptée comme ceci :

$sql->query('PRAGMA key=\''aes256:maclesecrete\'');

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *