Création d’un serveur web virtualisé dédié au webmapping – partie 2

Installation du serveur web avec Apache2 et PostgreSQL

Dans Ubuntu, l’installation des logiciels se fait via APT ou APTITUDE.

Advanced Packaging Tool est un système complet et avancé de gestion de paquets, permettant une recherche facile et efficace, une installation simple et une désinstallation propre de logiciels et utilitaires. Il permet aussi de facilement tenir à jour votre distribution Ubuntu avec les paquets en versions les plus récentes et de passer à une nouvelle version de Ubuntu, lorsque celle-ci est disponible. Il prend en charge en termes de mise à jour, l’ensemble des logiciels qui sont installé par son intermédiare, ce qui rend ltout système Ubuntu très facile à maintenir au niveau des mises à jours de sécurité.

Les logiciels sont proposés sous forme de « paquets ».

Une interface graphique pour l’installation des logiciels existe. Il s’agit de Synaptic (accessible via le menu Système \ Administration \ Synaptic).

Nous allons installer le serveur web et ses différents composants par Synaptic et en lignes de commandes pour information.

Installation d’Apache2 (le serveur web)

Dans Synaptic, chercher « apache2 » puis cliquez droit sur le paquet apache2 et choisir « Sélectionnez pour installation ».

Synaptic va vous proposer d’installer un certain nombre d’autres paquets à installer, il s’agit des dépendances. Sans eux, Apache2 ne peut fonctionner correctement, vous devez donc les installer également. L’installation se déroule en deux parties: au début, Synaptic télécharge l’ensemble des paquets nécessaires pour Apapche2 puis les installe. Il peut arriver que durant la phase d’installation, Des questions vous soient posées (ce n’est pas le cas pour Apache2, mais ça l’est si vous installez par exemple MySQL). Cliquez sur « Appliquer » et valider jusqu’à la fin de l’installation.

Apache2 est installé et opérationnel.

Dans un navigateur de votre machine virtuelle, tapez http://localhost/ ou depuis votre machine hôte Windows tapez http://192.168.0.154/ (il faut en fait tapez l’adresse IP de votre VM Ubuntu trouvée grâce à la commande ifconfig).

Pour qu’Apache puisse exécuter des scripts PHP, il faut également installer le paquet PHP5.

Pour la forme, nous allons lancer cette installation en ligne de commande. Dans une console, tapez:

sudo aptitude update

La liste des paquets disponibles est mise à jour.

Notez que la commande:

sudo aptitude upgrade

… installe tous les nouveaux paquets (cela force votre système à se mettre à jour).

Recherchons tous les paquets avec le nom php

sudo aptitude search php

On voit que le paquet php5 est disponible. Installons le avec la commande:

sudo aptitude install php5

Votre serveur web Apache2 et le moteur de script PHP5 est opérationnel.

Installation de PostgreSQL, PostGIS et pgAdminIII

Nous allons installer PostgreSQL et son module spatial PostGIS en ligne de commande (décidément, nous nous enfonçons dans le purisme linuxien…):

Tapez dans une console:

sudo aptitude search postgres

Nous allons installet la version 8.3 de PostgreSQL et PostGIS d’un même coup grâce au paquet postgres8.3-postgis. Tapez dans la console:

sudo aptitude install postgresql-8.3-postgis

Notez que pour l’installation d’une base de données MySQL, il faut renseignez durant l’installation les différentes options. La version 8.4 est, au 17 juin 2010 disponible via le paquet postgresql-8.4-postgis

Installons maintenant l’interface graphique pgAdminIII permettant de gérer en mode graphique PostgreSQL. Dans la console, tapez:

sudo aptitude install pgadmin3

PgAdmin III est accessible depuis le menu Application / Programmation

Pour pouvoir utiliser les fonctions Postgresql natives dans PHP, il faut installer également, le paquet php5-pgsql depuis synaptic ou en ligne de commande par aptitude

sudo aptitude install php5-pgsql

L’installation de PostgreSQL et la configuration d’Apache2 est achevée.

Création d’un utilisateur sous PostgreSQL

Nous allons créer un utilisateur avec un rôle d’administrateur de la base de données. Il sera nommé formation, son mot de passe sera aussi formation. En ligne de commande, dans une console, tapez:

sudo -s -u postgres
psql
CREATE USER formation ;
ALTER ROLE formation WITH createdb ;
ALTER USER formation WITH encrypted password 'formation' ;
\q

Création d’une base de données sous PostgreSQL

Nous allons créer une base de données nommée formation pour l’utilisateur précédemment créé:

CREATE DATABASE formation OWNER formation ;

Lancer pgAdmin III et créer une nouvelle connexion avec les données suivantes:

  • Hôte: localhost
  • port TCP: 5432
  • Base de maintenance: postgres
  • Utilisateur: formation
  • Mot de passe: formation

Vous avez alors accès à tout ce qui est nécessaire pour gérer votre propre base de données PostgreSQL.

Gérer le super utilisateur de votre serveur de base de données Postgresql

Par défaut le mot de passe du gestionnaire de base de données (utilisateur nommé « postgres ») est celui de l’utilisateur sudo d’Ubuntu.

Il est très fortement conseillé, en production, de choisir un mot de passe différent.

Pour cela, tapez :

sudo -s -u postgres
psql
ALTER USER postgres WITH encrypted password ‘lenouveaumotdepasse’ ;
\q

Remarque : Le fait d’attribuer (ou de forcer si vous voulez…) un mot de passé different du sudo d’Ubuntu, vous permet d’utiliser l’utilisateur postgres via l’interface graphique pgAdminIII. Si vous n’avez pas attribué un mot de passe à postgres (donc si vous utiliser pour vous connecter à postgres le mot de passe sudo), alors vous ne pourrez vous connecter via pgAdminIII à votre serveur postgresql.

Remarque : si vous devez donner des droits à un utilisateur tiers sur une base de donnée et que cet utilisateur n’est pas le propriétaire de la base de données en question, vous devez alors, en tant qu’utilisateur ‘postgres’, créer un rôle de groupe, puis spécifier que le rôle (de l’utilisateur, dit rôle de connexion) appartient au rôle de groupe. Enfin il faut donner les droits d’usage (SELECT ou INSERT ou …) de la base de façon générale (clic droit sur « Propriétés… » de la base), ou des tables (clic droit sur « Propriétés… » de Tables (xxx)), ou d’une table (clic droit sur « Propriétés… » de la table) au groupe de rôle et tout ceci directement depuis l’interface de PgAdminIII.


Dans la partie 3, nous verrons comment mettre en place les sites web (les alias)