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