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 icon wink postgreSQL & xampp portable sous windows

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/.

images postgreSQL & xampp portable sous windows

La première des choses à faire est ensuite de créer un cluster en tapant

Z:\MyApps\xampp\pgsql\bin\initdb.exe -D ..\data

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

cd Z:\MyApps\xampp\pgsql\bin

"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

; php driver to use postgreSQL databases
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).

environnement postgreSQL & xampp portable sous windows

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

Alias /phppgadmin "Z:/MyApps/xampp/phpPgAdmin/"

<Directory "Z:/MyApps/xampp/phpPgAdmin">
AllowOverride AuthConfig
</Directory>

et modifier

<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|phppgadmin|webalizer|server-status|server-info))">
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

phppgadmin postgreSQL & xampp portable sous windows

 

A vous postgreSQL

Posted by: mazenovi on 23 mars 2011 @ 19 h 09 min
Filed under: bricolage,dev,libre,portable apps

6 commentaires »

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. [...] 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

Flux RSS des commentaires de cet article. TrackBack URL

Laisser un commentaire