postgreSQL & xampp portable sous windows
Tout est dans le titre je crois. Je suis parti de ce billet http://notepad.patheticcockroach.com/628/adding-postgresql-portable-to-xampp-on-windows/et je vous livre ce qui a fonctionné pour moi. J’ai déjà expliqué sur ce blog comment installer une plateforme xampp portable sous windows.
Le prérequis est donc d’en avoir une fonctionnelle pour la suite
Tout d’abord il vous faudra une version portable de postrgre, que vous trouverez sur http://www.postgresql.org/download/windows. En tant qu’« Advanced user » vous téléchagerez l’ archive zip sans l’installeur (la version portable quoi). J’ai opté pour la 9.0.3-1 qui semble être la stable du moment.
Une fois l’archive décompressée, copier / coller le répertoire pgsql qu’elle contient dans Z:/MyApps/xampp/.
La première des choses à faire est ensuite de créer un cluster en tapant
Les fichiers de ce cluster appartiendront à l'utilisateur « mazenovi».
Le processus serveur doit également lui appartenir.
Le cluster sera initialisé avec la locale French_France.1252.
L'encodage par défaut des bases de données a été configuré en conséquence
avec WIN1252.
La configuration de la recherche plein texte a été initialisée à « french ».
correction des droits sur le répertoire existant ../data... ok
création des sous-répertoires... ok
sélection de la valeur par défaut de max_connections... 100
sélection des valeurs par défaut de shared_buffers/max_fsm_pages... 32MB/204800
création des fichiers de configuration... ok
création de la base de données template1 dans ../data/base/1... ok
initialisation de pg_authid... ok
initialisation des dépendances... ok
création des vues système... ok
chargement de la description des objets système... ok
création des conversions... ok
création des dictionnaires... ok
initialisation des droits sur les objets internes... ok
création du schéma d'informations... ok
lancement du vacuum sur la base de données template1... ok
copie de template1 vers template0... ok
copie de template1 vers postgres... ok
ATTENTION : active l'authentification « trust » pour les connexions
locales.
Vous pouvez modifier ceci en éditant pg_hba.conf ou en utilisant l'option -A
au prochain lancement d'initdb.
Succès. Vous pouvez maintenant lancer le serveur de bases de données par :
"postgres" -D "../data"
ou
"pg_ctl" -D "../data" -l journal_applicatif start
N.B. le cluster appartient à l’utilisateur système avec lequel il est créé c’est important pour la suite!
pour lancer le serveur
"pg_ctl" -D "../data" -l journal_applicatif start
vous pouvez déjà jouer avec pgAdmin3 en entrant l’adresse de votre serveur (127.0.01 ou localhost) et le login mot de passe de l’utilisateur que vous avez utilisez pour créer le cluster. Mais il s’agit ici de faire fonctionner postgreSQL avec php. On va donc décommenter deux extensions dans le Z:\MyApps\xampp\php\php.ini
extension=php_pgsql.dll
; abstraction layer for PDO
extension=php_pdo_pgsql.dll
Mais là vous risquez d’être victime de message d’erreur car PostgreSQl a besoin de quelques dll pour fonctionner sous windows. Afin de garder l’installation portable il faut ajouter \MyApps\xampp\pgsql\bin au path, car ce répertoire contient les dll nécessaires (et évite du coup d’avoir à les copier dans c:\windows\system32).
Afin de tester que postgreSQL fonctionne bien avec php je vous propose d’installer phpPgAdmin en le téléchargeant sur le site officiel http://phppgadmin.sourceforge.net/ puis en le décompressant dans Z:/MyApps/xampp/phpPgAdmin/
Afin de le rendre visible ajouter dans Z:\MyApps\xampp\apache\conf\extra\httpd-xampp.conf
<Directory "Z:/MyApps/xampp/phpPgAdmin">
AllowOverride AuthConfig
</Directory>
et modifier
Order deny,allow
Deny from all
Allow from 127.0.0.0/8
ErrorDocument 403 /error/HTTP_XAMPP_FORBIDDEN.html.var
</LocationMatch>
éditer également selon vos besoins le fichier de configuration de phpPgAdmin Z:\MyApps\xampp\phpPgAdmin\conf\config.inc.php
ouvrez maintenant http://localhost/phppgadmin dans votre navigateur et saisissez les login mot de passe de l’utilisateur associé au cluster
A vous postgreSQL






Hello Vincent,
Merci pour l’article, pour info, j’ai publié un article sur quelques features intéressantes de postgresql pour le dev web. N’hésite pas si tu souhaites créer un article commun sur le sujet (je pense notamment à la ligne de commande psql qui est tellement bien que je la préfère aux interfaces web).
Amicalement,
Grégoire
Commentaire by Grégoire — 25 mars 2011 @ 10 h 22 min
Hello,
Juste un truc, avec cette methode il faut compiler ou bien ?
Parce que je ne trouve aucun bininitdb.exe dans le zip …
Commentaire by dcz — 31 mars 2011 @ 7 h 30 min
il s’agissait de … bin\initdb.exe! Le backslash c’était perdu en route :/ c’est corrigé. Merci!
Commentaire by mazenovi — 31 mars 2011 @ 8 h 08 min
Merci, c’est en effet bien plu sclaire comme ça !
Donc, je viens de réussir a installer postgres 9.0.3-1 sur xampp-win32-1.7.3 (j(ai besoin de gmp, et c’est une galère sur la dernière version)
Petit trucs, j’ai utilisé :
X:\xampp\pgsql\bin\initdb.exe -E UTF8 -D H:\xampp\pgsql\data
Pour avoir de l’utf8, vu que je ne voyais pas trop d’intérêt au WIN1252
Et j’ai aussi du ajouter :
LoadFile « X:/xampp/pgsql/bin/libpq.dll »
Dans le httpd.conf pour que le chargement de php_pgsql.dll depuis le php.ini se passe sans erreur (unable to load dynamic library php_pgsql.dll, source du fix : http://stackoverflow.com/questions/551734/php-not-loading-php-pgsql-dll-on-windows )
Commentaire by dcz — 2 avril 2011 @ 16 h 23 min
Petit truc qui le fait pour éviter d’éditer le PATH à la main :
A mettre dans le dossier xampp/
pgsql_start.bat :
@ECHO OFF
ECHO Now we start postgres
set « path=pgsql\bin;%path% »
pgsql\bin\pg_ctl -D pgsql\data start
if errorlevel 1 goto error
goto finish
:error
echo.
echo postgres could not be started
pause
:finish
POPD
PAUSE
Et pgsql_stop.bat :
@ECHO OFF
ECHO Now we stop postgres
pgsql\bin\pg_ctl -D pgsql\data stop
POPD
PAUSE
Je suis très loin d’être un pro en batch windows, mais ça fait le travail sans changement du PATH
Commentaire by dcz — 2 avril 2011 @ 18 h 12 min
[...] postgreSQL & xampp portable sous windows, Via Vincent Mazenod, aka mazenovi, aka voisin de gennetines [...]
Ping by Revue du web du 25/03/2011 « www.aurelienpiat.com — 15 avril 2011 @ 11 h 19 min