serveur_hebergement:bases_de_donnees:phppgadmin

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
serveur_hebergement:bases_de_donnees:phppgadmin [2022/10/07 11:44] – [Installation] fateserveur_hebergement:bases_de_donnees:phppgadmin [2024/01/20 16:31] (Version actuelle) fate
Ligne 1: Ligne 1:
-====== phpPgAdmin ======+====== Pgadmin4 ======
  
-phpPgAdmin est une interface web permettant de manipuler vos bases de données PostgreSQL (création, modification, suppression, etc). C'est un outil très pratique mais ça veut également dire donner un accès à vos bases de données depuis internet avec les risques qui vont avec.+Pgadmin est une interface web permettant de manipuler vos bases de données PostgreSQL (création, modification, suppression, etc). C'est un outil très pratique mais ça veut également dire donner un accès à vos bases de données depuis internet avec les risques qui vont avec.
 Comme toute interface web, elle nécessite un serveur web pour fonctionner. Dans mon cas, j'utiliserai Apache2. Je ne traiterai pas la création et configuration du nom de domaine et partirai du principe que vous avez un nom de domaine, appelé domaine.fr ici, qui pointe vers votre serveur. Comme toute interface web, elle nécessite un serveur web pour fonctionner. Dans mon cas, j'utiliserai Apache2. Je ne traiterai pas la création et configuration du nom de domaine et partirai du principe que vous avez un nom de domaine, appelé domaine.fr ici, qui pointe vers votre serveur.
  
 ===== Installation ===== ===== Installation =====
  
-L'installation sous Debian est très simple vu que le logiciel se trouve dans les dépôts et s'installe en une commande : +L'installation sous Raspbian doit se faire via Python. 
-<code bash>sudo aptitude install phppgadmin</code>+
  
-Pour l'utiliser, il va falloir créer un super utilisateur. Tapez les lignes suivantes dans la console en remplaçant le nom d'utilisateur et le mot de passe (choisissez un mot de passe robuste pour l'utilisateur) :+Installez les paquets nécessaires :  
 +<code bash>sudo aptitude install build-essential libssl-dev libffi-dev libgmp3-dev virtualenv python3-pip libpq-dev python3-dev python3</code> 
 + 
 +Créez l'environnement virtuel : 
 +<code bash>sudo python3 -m venv /var/www/pgadmin4</code> 
 + 
 +Changez le propriétaire par votre utilisateur courant (fate dans mon cas) : 
 +<code bash>sudo chown -R fate:fate /var/www/pgadmin4</code> 
 + 
 +Rentrez dans le répertoire : 
 +<code bash>cd /var/www/pgadmin4</code> 
 + 
 +Créez les sous-répertoires var/storage et var/sessions : 
 +<code bash> 
 +mkdir -p var/storage 
 +mkdir var/sessions 
 +</code> 
 + 
 +Activez l'environnement virtuel :  
 +<code bash>source /var/www/pgadmin4/bin/activate</code> 
 + 
 +Installez pgadmin4 :  
 +<code bash>pip install pgadmin4</code> 
 + 
 +Créez le fichier de configuration :  
 +<code bash>nano lib/python3.11/site-packages/pgadmin4/config_local.py</code> 
 + 
 +Ajoutez les lignes suivantes (ce sont les différents répertoires de travail de pgadmin) :  
 +<code> 
 +LOG_FILE = '/var/www/pgadmin4/var/pgadmin4.log' 
 +SQLITE_PATH = '/var/www/pgadmin4/var/pgadmin4.db' 
 +SESSION_DB_PATH = '/var/www/pgadmin4/var/sessions' 
 +STORAGE_DIR = '/var/www/pgadmin4/var/storage' 
 +SERVER_MODE = True 
 +DATA_DIR = '/var/www/pgadmin4/var' 
 +AZURE_CREDENTIAL_CACHE_DIR = '/var/www/pgadmin4/var/azurecredentialcache' 
 +</code> 
 + 
 +Lancez l'installation de la base de données :  
 +<code bash>/var/www/pgadmin4/bin/python3.11 /var/www/pgadmin4/lib/python3.11/site-packages/pgadmin4/setup.py setup-db</code> 
 +Il vous sera demandé de rentrer une adresse mail et un mot de passe. 
 + 
 +Il ne nous reste plus qu'à modifier de nouveau le propriétaire par www-data ce coup-ci : 
 +<code bash>sudo chown -R www-data:www-data /var/www/pgadmin4/</code> 
 + 
 +Pour utiliser pgadmin, il va falloir créer un super utilisateur ayant accès à postgresql. Tapez les lignes suivantes dans la console en remplaçant le nom d'utilisateur et le mot de passe (choisissez un mot de passe robuste pour l'utilisateur) :
 <code sql> <code sql>
 sudo -i -u postgres sudo -i -u postgres
Ligne 18: Ligne 62:
 </code> </code>
  
-===== Sécuriser l'accès =====+===== Lancement de pgadmin via Systemd =====
  
-Par défaut, phpPgAdmin est accessible à l'adresse https://domaine.fr/phppgadmin avec domaine.fr le domaine pointant sur votre serveur ou son adresse IP. N'aimant pas que n'importe puisse tomber sur la page de connexion de phpPgAdmin , je préfère le rendre accessible uniquement via un nom de domaine spécifique. +Créez le fichier  
 +<code>/etc/systemd/system/pgadmin.service</code>
  
-On va commencer par désactiver la configuration Apache2 actuelle permettant l'accès à phpPgAdmin : +Copiez les lignes suivantes dedans 
-<code bash>sudo a2disconf phppgadmin</code>+<code> 
 +[Unit] 
 +Description=Pgadmin4 Service 
 +After=network.target 
 + 
 +[Service] 
 +User=www-data 
 +Group=www-data 
 +WorkingDirectory=/var/www/pgadmin4/ 
 +Environment="PATH=/var/www/pgadmin4/bin" 
 +ExecStart=/var/www/pgadmin4/bin/python /var/www/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgAdmin4.py 
 +PrivateTmp=true 
 + 
 +[Install] 
 +WantedBy=multi-user.target 
 +</code> 
 + 
 +Activez le service au démarrage 
 +<code bash>sudo systemctl enable pgadmin.service</code> 
 + 
 +Démarrez le service 
 +<code bash>sudo systemctl start pgadmin.service</code> 
 + 
 + 
 +===== Sécuriser l'accès ===== 
 + 
 +Par défaut, PgAdmin est accessible à l'adresse https://domaine.fr:5050 avec domaine.fr le domaine pointant sur votre serveur ou son adresse IP. N'aimant pas que n'importe puisse tomber sur la page de connexion de PgAdmin , je préfère le rendre accessible uniquement via un nom de domaine spécifique et y ajouter une double authentification. 
  
 Créez un fichier de configuration pour le sous-domaine (mettre le sous-domaine de votre choix) : Créez un fichier de configuration pour le sous-domaine (mettre le sous-domaine de votre choix) :
Ligne 34: Ligne 105:
         ServerName sous.domaine.fr         ServerName sous.domaine.fr
  
-        Redirect / https://sous.domaine.fr/+        Redirect / https://sous.domaine.fr
  
 </VirtualHost> </VirtualHost>
Ligne 40: Ligne 111:
  
 <VirtualHost *:443> <VirtualHost *:443>
-        DocumentRoot /usr/share/phppgadmin/ 
- 
         ServerName sous.domaine.fr         ServerName sous.domaine.fr
  
Ligne 52: Ligne 121:
         SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr/privkey.pem         SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr/privkey.pem
  
 +        ProxyPass / http://localhost:5050/
         <Location />         <Location />
-                Require all granted+                ProxyPassReverse http://localhost:5050/ 
 +                AuthType Digest 
 +                AuthName "pgadmin" 
 +                AuthDigestDomain /var/www/pgadmin4 https://sous.domaine.fr 
 +                AuthDigestProvider file 
 +                AuthUserFile /etc/apache2/passwords 
 +                Require valid-user
         </Location>         </Location>
  
  
 </VirtualHost> </VirtualHost>
- 
 </code> </code>
  
-Vous pouvez également rajouter une double authentification en protégeant l'accès avec un identifiant/mot de passe pour plus de sécurité. Voir [[serveur_hebergement:apache2:proteger_une_page_web|ici]] comment faire.+Voir [[serveur_hebergement:apache2:proteger_une_page_web|ici]] pour créer l'accès.
  
-Ensuite, on active la fichier de configuration :+Ensuite, on active le fichier de configuration :
 <code bash>sudo a2ensite sous.domaine.fr.conf</code> <code bash>sudo a2ensite sous.domaine.fr.conf</code>
  
Ligne 69: Ligne 144:
 <code bash>sudo systemctl reload apache2</code> <code bash>sudo systemctl reload apache2</code>
  
-Vous pouvez maintenant manipuler vos bases de données avec phpPgAdmin.+Vous pouvez maintenant manipuler vos bases de données avec PgAdmin.
  
  
  • serveur_hebergement/bases_de_donnees/phppgadmin.1665143070.txt.gz
  • Dernière modification : 2023/08/08 14:01
  • (modification externe)