Nous détaillerons ici la mise en place d’un environnement de développement web LAPP (Linux Apache PostgreSQL PHP).
Linux
Pour commencer, installer votre distribution GNU/Linux préférée, ici, une Ubuntu Intrepid Ibex toute neuve.

Logo Ubuntu
Apache 2
Installer :
Installer les paquets suivants :
$ sudo apt-get install apache2 apache2-utils apache2-mpm-prefork libapache2-mod-chroot libapache2-mod-auth-pam libapache2-mod-auth-sys-group
Tester :
Dans un navigateur, consulter l’url http://localhost/.
Commandes :
Redémarrer Apache :
$ sudo /etc/init.d/apache2 restart

Logo Apache
PHP
Installer PHP et le support Apache :
Installer les paquets suivants :
$ sudo apt-get install php5-common php5 php5-gd libapache2-mod-php5
Tester :
Redémarrer le serveur :
$ sudo /etc/init.d/apache2 restart
Créer un répertoire /site dans /var/www, rendre l’utilisateur courant propriétaire du répertoire et y créer un fichier index.php :
$ cd /var/www $ mkdir site $ sudo chown nico site $ cd site $ gedit index.php
Saisir le contenu :
Tester le rendu à l’adresse http://localhost/site/.

Logo PHP
PostgreSQL
Installer PostgreSQL et le support Apache
Installer les paquets suivants :
$ sudo apt-get install postgresql libapache2-mod-auth-pgsql php5-pgsql
Activer le support :
$ sudo a2enmod Which module would you like to enable? Your choices are: actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap auth_pam auth_pgsql ... usertrack version vhost_alias Module name? auth_pgsql Module auth_pgsql installed; run /etc/init.d/apache2 force-reload to enable. $ sudo /etc/init.d/apache2 force-reload
Tester PostgreSQL
Se connecter avec l’utilisateur postgres :
user@laptop:~$ sudo -s -u postgres
Accéder à l’interface interactive :
postgres@laptop:~$ psql
Bienvenue dans psql 8.3.5, l'interface interactive de PostgreSQL.
Tapez: copyright pour les termes de distribution
h pour l'aide-mémoire des commandes SQL
? pour l'aide-mémoire des commandes psql
g ou point-virgule en fin d'instruction pour exécuter la requête
q pour quitter
postgres=# qAjouter un mot de passe à l’utilisateur postgres :
postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'mdp' ; ALTER ROLE
Créer une base de données de test, se connecter, créer une table et la remplir :
postgres@laptop:~$ createdb -O postgres -E UTF8 bdd_test
CREATE DATABASE
postgres@laptop:~$ psql -d bdd_test
Bienvenue dans psql 8.3.5, l'interface interactive de PostgreSQL.
bdd_test=# CREATE TABLE films (code char(5) CONSTRAINT firstkey PRIMARY KEY, title varchar(40) NOT NULL, kind varchar(10));
INFO: CREATE TABLE / PRIMARY KEY créera un index implicite « firstkey » pour la table « films »
CREATE TABLE
bdd_test=# select * from films;
code | title | kind
------+-------+------
(0 lignes)
bdd_test=# insert into films values('azer', 'Lost in space', 'fantastic');
bdd_test=# select * from films;
code | title | kind
-------+---------------+-----------
azer | Lost in space | fantastic
(1 ligne)Tester le support postgreSQL
Editer le fichier index.php pour exécuter une requête sur la nouvelle table :
Se rendre à l’adresse http://localhost/site/ pour exécuter la requête et consulter le résultat. Commandes : Redémarrer PostgreSQL :
postgres@laptop:~$ sudo /etc/init.d/postgresql-8.3 restart

Logo PostgreSQL
Conclusion
L’environnement est désormais fonctionnel, bien entendu, il est à réserver à la phase de développement d’un projet. La mise en production requiert une configuration stricte de la sécurité, en particulier, la création d’un utilisateur postgreSQL spécifique au projet et n’ayant que le minimum de droits nécessaire.