{{tag>Logiciel}}
====== PostGreSQL sur un Raspberry Pi : une base de données SQL ======
===== Introduction =====
===== Pré-requis =====
* Sur un Raspberry Pi :
* le Raspberry Pi doit être accessible en local ((par exemple sur [[http://framboise.local]] avec **avahi**)) ou sur internet ([[http://monsite.tld]])
* et un serveur **LLSP** ((lighttpd + php + SQLite)) tourne dessus.
===== Installation =====
==== Installation de PostgreSQL ====
Nous sommes sur le Raspberry Pi via ssh (ou dans une console).
Sur le Raspberry Pi, installez **postgresql** en lançant :$ sudo apt-get update
$ sudo apt-get install postgresql
Acceptez d'installer tous les paquets ((les paquets supplémentaires suivants vont être installés : libpq5, lsb-release, postgresql-9.1, postgresql-client-9.1, postgresql-client-common, postgresql-common,,ssl-cert)).
Après un certain temps, il s'affiche :{{ logiciel:sql:postgresql:postgresql-1.png?600 |}}
Un utilisateur système postgres a été créé. Il n'a pas de mot de passe : c'est un utilisateur bloqué et le mieux est qu'il le reste.
**__utilisateur postgres__**
Au départ, toutes les opérations d'administration se font donc avec l'utilisateur **postgres** qui seul peut se connecter.
Pour vous connecter en tant qu'utilisateur **postgres**, utilisez la commande :$ sudo -i -u postgres
L'invite de commande mentionne que vous êtes actif en tant que postgres :{{logiciel:sql:postgresql:postgresql-2.png|}}
A la fin de cette session d'administration dans PostgreSQL, il suffira de taper$ exitpour reprendre la main en tant qu'utilisateur du système.
On peut aussi lancer une commande (ici **psql**) en tant que postgres :$ sudo -u postgres psql
Dès que cette commande se termine, on se retrouve avec l'utilisateur habituel.
Le serveur PostgreSQL est en place.
===== Configuration =====
==== Création d'un nouvel utilisateur pour gérer postgresql ====
Nous allons créer l'utilisateur qui nous permettra de gérer postgresql.
Pour cela, lancez l'outil d'administration de PostgreSQL en tant qu'utilisateur **postgres** :$ sudo -u postgres psql
{{logiciel:sql:postgresql:postgresql-3.png|}}
Vous êtes dans une interface en ligne de commande, en tant que **root** (**#** en bout de ligne).
Pour créer un environnement plus sûr, créez un rôle pour l'administration, avec toutes les autorisations sauf l'héritage des droits :$ CREATE ROLE LOGIN ENCRYPTED PASSWORD '' SUPERUSER NOINHERIT CREATEDB CREATEROLE;
;
: nom d'utilisateur
;
: mot de passe
N'oubliez pas le point-virgule en fin de ligne !
Quittez l'environnement psql :$ \q
Vérifiez en essayant de vous connecter avec l'utilisateur que vous venez de créer :$ sudo -i -u postgres
==== Installation de l'interface web PhpPgAdmin ====
L'interface web **PhpPgAdmin** pour PostgreSQL simplifie la mise en place et l'administration.
Installez le paquet :$ sudo apt install phppgadmin
Éditez avec les droits d'administration le fichier **/etc/lighttpd/lighttpd.conf** pour ajouter la ligne suivante à la fin du fichier :
...
alias.url += ( "/phppgadmin" => "/usr/share/phppgadmin/")
Ainsi, l'adresse [[http://monsite.tld/phppgadmin]] pointe sur le bon répertoire interne.
Dans le fichier **/etc/lighttpd/lighttpd.conf**, assurez-vous que le module **mod_alias** est activé (dé-commenté)
et activez les modules **mod_fastcgi** et **mod_cgi** :$ sudo lighty-enable-mod fastcgi cgi
Redémarrez le serveur :$ sudo service lighttpd restart
Allez à la page de phpPgAdmin : [[http://monsite.tld/phppgadmin]]
Cliquez sur **PostgreSQL** sur le côté gauche.
Dans la fenêtre de connexion, entrez le nom et le mot de passe de l'utilisateur créé plus haut pour gérer postgresql. Cela devrait vous connecter
{{logiciel:sql:postgresql:postgresql-phppgadmin-1.png|}}
Pour ajouter un rôle (utilisateur)
Cliquez sur **rôles** dans la zone du milieu en haut de la page
Cliquez sur **Créer Rôle**
Créer nom d'utilisateur / mot de passe et donner toutes les autorisations autres que **privilèges Inherits**.
Ignorer les autres options dans les cases à cocher
Cliquez sur **Créer**
=== Sous Apache ===
Installez le paquet :$ sudo apt-get install phppgadmin
Ajouter la directive :
# Mes alias
Alias /phppgadmin /usr/share/phppgadmin/
== Sécurisation de l'interface web ==
Nous allons maintenant configurer un utilisateur pour l'interface Web.
Pour cela, il faut d'abord retirer les sécurités. éditez avec les droits d'administration le fichier **/usr/share/phppgadmin/conf/config.inc.php** pour mettre la ligne suivante à false :
$conf['extra_login_security'] = false;
Il faut encore modifier l'utilisateur postgres pour lui donner un mot de passe.
Lancer :$ sudo -u postgres psql
Au prompt, exécuter :$ ALTER USER postgres password 'Mot_DE_PASSE';et quitter par $ \q
{{materiel:nanopc:raspi:start-postgresql-2.png|}}
== Arborescence ==
* fichiers de configuration : dans **/etc/postgresql/[VERSION]/main/** :
* environment
* postgresql.conf
* pg_hba.conf
* pg_ident.conf
* start.conf
* Les données se trouveront dans "/var/lib/postgresql/[VERSION]/main"
Pour déplacer le répertoire des données, éditer la ligne suivante du fichier **postgresql.conf** :
data_directory = ...
Le répertoire des données doit appartenir à "postgres:postgres" :$ sudo chown postgres:postgres -R repertoiredata
Le port par défaut se configure dans le fichier **postgresql.conf**.
== Sécurisation ==
Maintenant, allez à la page de phpPgAdmin : [[http://framboise.local/phppgadmin/]].
* Choisir la langue française.
* Cliquez sur **PostgreSQL** sur le côté gauche pour charger le serveur. Pour la connexion,
* Utilisateur : **postgres**
* Mot de passe : mot de passe défini ci-dessus
* -> Cela vous connecte.
Nous allons maintenant créer un nouveau compte d'utilisateur qui peut accéder à l'interface de phpPgAdmin en toute sécurité.
En effet pour l'instant, n'importe qui peut se connecter en utilisant le mot de passe avec l'utilisateur **postgres**.
Pour créer un environnement plus sûr
* Cliquez sur **Rôles** dans la zone du milieu en haut de la page
* Cliquez sur **Créer un rôle**
* Créez un nom d'utilisateur/mot de passe et donnez-lui toutes les autorisations autres que "Hérite des droits". Ignorez les autres options dans les cases à cocher
* Cliquez sur Créer
* Cliquez sur **Déconnexion** en haut à droite de la page
Maintenant que vous êtes déconnecté, Essayez de vous connecter avec l'utilisateur que vous venez de créer : Vous devez y arriver.
Il est temps de re-sécuriser notre serveur. éditez avec les droits d'administration le fichier **/usr/share/phppgadmin/conf/config.inc.php** pour mettre la ligne suivante à true :
$conf['extra_login_security'] = true;
C'est tout! Vous avez maintenant une page de phpgaadmin sécurisé et une interface agréable pour configurer votre serveur PostgreSQL.
===== Utilisation =====
==== Aide-mémoire de psql ====
Voir :
* [[logiciel:sql:postgresql:memo_psql:start]]
* [[tutoriel:sql:memo:start]]
Petit guide de survie pour le client psql
; \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
===== Désinstallation =====
===== Voir aussi =====
* **(en)** [[http://c-mobberley.com/wordpress/index.php/2013/10/18/raspberry-pi-installation-of-postgresql-its-simple/]]
----
//Basé sur << [[http://|Article]] >> par Auteur.//