Environnement Linux Apache PostgreSQL PHP

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

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

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

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=# q

Ajouter 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

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.

Documentation

Apache , Permalien.

Laisser un commentaire

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

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">