« Phpma » : différence entre les versions

De Documentation
Aller à la navigationAller à la recherche
Page créée avec « ******************************* * phpmyadmin sur Alpine léger * ******************************* (cf config.inc.php nettoyé) Pré-requis Mariadb fonctionnel et accessible à distance (dans un conteneur dédié) Création d'un conteneur # lxc launch local:alpineLe phpma # lxc shell phpma # apk update && apk upgrade # apk add apache2 phpmyadmin php83-apache2 apache2-ctl (libxml2 ? pour l'importation de feuilles de classeur et d'XML) Copie du fichier de conf d... »
 
 
(11 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
*******************************
----
* phpmyadmin sur Alpine léger *
==phpmyadmin sur Alpine léger==
*******************************
''(cf config.inc.php nettoyé)''
(cf config.inc.php nettoyé)


Pré-requis
'''Pré-requis'''


Mariadb fonctionnel et accessible à distance (dans un conteneur dédié)
Mariadb fonctionnel et accessible à distance (dans un conteneur dédié)


Création d'un conteneur
Création d'un conteneur
# lxc launch local:alpineLe phpma
lxc launch local:alpineLe phpma
# lxc shell phpma
lxc shell phpma
# apk update && apk upgrade
apk update && apk upgrade
# apk add apache2 phpmyadmin php83-apache2 apache2-ctl (libxml2 ? pour l'importation de feuilles de classeur et d'XML)  
apk add apache2 phpmyadmin php83-apache2 apache2-ctl (libxml2 ? pour l'importation de feuilles de classeur et d'XML)  
 
Copie du fichier de conf dans /tmp puis modification - Déplacement dans /etc/phpmyadmin/
Copie du fichier de conf dans /tmp puis modification - Déplacement dans /etc/phpmyadmin/
changement de propriétaire :
changement de propriétaire :
# chown root:root /etc/phpmyadmin/config.php
chown root:root /etc/phpmyadmin/config.php
 
Désactivation du fichier de config initial :
Désactivation du fichier de config initial :
# mv /etc/phpmyadmin/config.inc.php /etc/phpmyadmin/config.inc.php.old
mv /etc/phpmyadmin/config.inc.php /etc/phpmyadmin/config.inc.php.old
 
Utliser config.inc.php nettoyé.txt  
Utliser config.inc.php nettoyé.txt  


Démarrage du service
Démarrage du service
# rc-service apache2 start
rc-service apache2 start
 
modif du proxy pour qu'il pointe vers le bon conteneur (dans le conteneur proxy)
modif du proxy pour qu'il pointe vers le bon conteneur (dans le conteneur proxy)
# conteneur phpmyadmin
server {
        listen 80 proxy_protocol;
        listen [::]:80 proxy_protocol;
        server_name phpma.lesitadom.fr;
        location / {
                include /etc/nginx/proxy_params;
                proxy_pass http://phpma.lxd;
        }
        real_ip_header proxy_protocol;
        set_real_ip_from 127.0.0.1;
}
redémarrage du service :
# rc-service nginx restart


# Conteneur phpmyadmin
server {
      listen 80 proxy_protocol;
      listen [::]:80 proxy_protocol;
      server_name phpma.lesitadom.fr;
      location / {
              include /etc/nginx/proxy_params;
              proxy_pass http://phpma.lxd;
      }
      real_ip_header proxy_protocol;
      set_real_ip_from 127.0.0.1;
}
Redémarrage du service :
rc-service nginx restart
-> Dans un navigateur, on arrive à la page d'accueil d'apache.
-> Dans un navigateur, on arrive à la page d'accueil d'apache.
(installation de php83 php83-pdo php83-mbstring lors de tentatives infructueuses avant d'installer php83-apache2 et apache-ctl... voir si c'est nécessaire...)
''(installation de php83 php83-pdo php83-mbstring lors de tentatives infructueuses avant d'installer php83-apache2 et apache-ctl... voir si c'est nécessaire...)''


L'accès et la connexion fonctionnent ! (accès par adresse_conteneur/phpmyadmin)
L'accès et la connexion fonctionnent ! (accès par adresse_conteneur/phpmyadmin)
Message d'alerte concernant l'accès au dossier temporaire : le dossier n'existe pas... créations -> suffit pas...
Message d'alerte concernant l'accès au dossier temporaire : le dossier n'existe pas... créations -> suffit pas...
Régler les droits sur le dossier :
Régler les droits sur le dossier :
# chown -R apache:apache /usr/share/webapps/phpmyadmin/tmp -> ok
chown -R apache:apache /usr/share/webapps/phpmyadmin/tmp -> ok
----


**************************************************************
=Faire pointer le sous-domaine directement sur phpmyadmin=
*                                                            *
----
Faire pointer le sous-domaine directement sur phpmyadmin *
*                                                            *
**************************************************************


1. Créer un lien symbolique :
1. Créer un lien symbolique :
# ln -s /usr/share/phpmyadmin /var/www/localhost/htdocs/
ln -s /usr/share/phpmyadmin var/www/localhost/htdocs/


Modifier le fichier de conf dans le conteneur proxy :
Modifier le fichier de conf dans le conteneur proxy :


# conteneur phpmyadmin
# conteneur phpmyadmin
server {
server {
        listen 80 proxy_protocol;
      listen 80 proxy_protocol;
        listen [::]:80 proxy_protocol;
      listen [::]:80 proxy_protocol;
 
        server_name phpma.lesitadom.fr;
      server_name phpma.lesitadom.fr;
 
      location / {
        location / {
              include /etc/nginx/proxy_params;
 
              root /usr/share/webapps/phpmyadmin/;
                include /etc/nginx/proxy_params;
              ''(! ne semble pas servir à grand chose...)''
                root /usr/share/webapps/phpmyadmin/; ! ne semble pas servir à grand chose...
              proxy_pass http://phpma.lxd/phpmyadmin/;
                proxy_pass http://phpma.lxd/phpmyadmin/;
              }
                #              root /usr/share/webapps/phpmyadmin;
      real_ip_header proxy_protocol;
        }
      set_real_ip_from 127.0.0.1;
        real_ip_header proxy_protocol;
}
        set_real_ip_from 127.0.0.1;
}
 
Avec cette config, on accède au site, mais une erreur apparaît : erreur : disparité du jeton
Avec cette config, on accède au site, mais une erreur apparaît : erreur : disparité du jeton


Ligne 88 : Ligne 75 :
La connection échoue :  
La connection échoue :  
  Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin.
  Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin.
 
2. En définissant phpma.lxd/phpmyadmin/ comme cible, on accède directement, mais on obtient une erreur de disparité des jetons et aucune modif n'est possible. HTTP/HTTPS en cause ?
2. En définissant phpma.lxd/phpmyadmin/ comme cible, on accède directement, mais on obtient une erreur de disparité des jetons et aucune modif n'est possible. HTTP/HTTPS en cause ?


3. Voir comment faire de la réécriture d'url sous nginx
3. Voir comment faire de la réécriture d'url sous nginx


******************** Pour limiter l'accès au réseau interne ********************************
= Pour limiter l'accès au réseau interne=


Dans le conteneur proxy modifier le bloc "serveur" en ajoutant des règles de filtrage. Elles sont lues séquentiellement dans l'ordre.
Dans le conteneur proxy modifier le bloc "serveur" en ajoutant des règles de filtrage. Elles sont lues séquentiellement dans l'ordre.


server {                               
  server {                               
         listen [::]:443 ssl proxy_protocol;           
         listen [::]:443 ssl proxy_protocol;           
         listen 443 ssl proxy_protocol;
         listen 443 ssl proxy_protocol;
                                         
 
         allow 192.168.1.0/24; # <= adresses autorisées (voir si on a le même effet avec lesitadom.fr pour éviter
         allow 192.168.1.0/24; # <= adresses autorisées
        d'avoir à modifier le fichier /etc/hosts)
         deny all; # <= rejeter toutes les autres
         deny all; # <= rejeter toutes les autres
                                          
                                          
Ligne 108 : Ligne 94 :
         include /etc/nginx/realip.conf;
         include /etc/nginx/realip.conf;
                                        
                                        
         server_name phpma.lesitadom.fr;            
         server_name phpma.lesitadom.fr;
       
         location / {
         location / {              
                                                     
                 proxy_pass http://phpma.lxd;
                 proxy_pass http://phpma.lxd;
                 include /etc/nginx/proxy_params;
                 include /etc/nginx/proxy_params;
         }                                               
         }                                               
}   
  }   


=> autorier les adresses internes et rejeter les autres.
=> autoriser les adresses internes et rejeter les autres.
Dans le fichier /et/hosts de la machine (bureau) ajouter la règle :
   
   
Dans le fichier '''/etc/hosts''' de la machine (bureau) ajouter la règle :
  192.168.1.28 phpma.lesitadom.fr
  192.168.1.28 phpma.lesitadom.fr
=Envoyer directement dans le bon dossier=
   
   
1. Créer un nouveau sous-domaine : phpmyadmin.lesitadom.fr qui servira en interne (CNAME)
   
   
******************** Envoyer directement dans le bon dossier ******************************
2. Générer un cetificat letsencrypt (--append)
   
   
1. Créer un nouveau sous-domaine : phpmyadmin.lesitadom.fr qui servira en interne (CNAME)
3. Modifier le fichier proxy.conf dans le conteneur proxy pour réécriture de l'adresse -> phpmyadmin.lesitadom.fr/phpmyadmin
2. Générer un cetificat letsencrypt (--append)
3. Modifier le fichier proxy.conf dans le conteneur proxy pour réécriture de l'adresse -> phpmyadmin.lesitadom.fr/phpmyadmin
   
   
! voir comment sécuriser l'accès : filtrage par nginx...
! voir comment sécuriser l'accès : filtrage par nginx...

Dernière version du 12 mai 2025 à 15:47


phpmyadmin sur Alpine léger

(cf config.inc.php nettoyé)

Pré-requis

Mariadb fonctionnel et accessible à distance (dans un conteneur dédié)

Création d'un conteneur

lxc launch local:alpineLe phpma
lxc shell phpma
apk update && apk upgrade
apk add apache2 phpmyadmin php83-apache2 apache2-ctl (libxml2 ? pour l'importation de feuilles de classeur et d'XML) 

Copie du fichier de conf dans /tmp puis modification - Déplacement dans /etc/phpmyadmin/ changement de propriétaire :

chown root:root /etc/phpmyadmin/config.php

Désactivation du fichier de config initial :

mv /etc/phpmyadmin/config.inc.php /etc/phpmyadmin/config.inc.php.old

Utliser config.inc.php nettoyé.txt

Démarrage du service

rc-service apache2 start

modif du proxy pour qu'il pointe vers le bon conteneur (dans le conteneur proxy)

# Conteneur phpmyadmin
server {
      listen 80 proxy_protocol;
      listen [::]:80 proxy_protocol;

      server_name phpma.lesitadom.fr;
      location / {
              include /etc/nginx/proxy_params;
              proxy_pass http://phpma.lxd;
      }
      real_ip_header proxy_protocol;
      set_real_ip_from 127.0.0.1;
}

Redémarrage du service :

rc-service nginx restart

-> Dans un navigateur, on arrive à la page d'accueil d'apache. (installation de php83 php83-pdo php83-mbstring lors de tentatives infructueuses avant d'installer php83-apache2 et apache-ctl... voir si c'est nécessaire...)

L'accès et la connexion fonctionnent ! (accès par adresse_conteneur/phpmyadmin) Message d'alerte concernant l'accès au dossier temporaire : le dossier n'existe pas... créations -> suffit pas... Régler les droits sur le dossier :

chown -R apache:apache /usr/share/webapps/phpmyadmin/tmp -> ok

Faire pointer le sous-domaine directement sur phpmyadmin


1. Créer un lien symbolique :

ln -s /usr/share/phpmyadmin  var/www/localhost/htdocs/

Modifier le fichier de conf dans le conteneur proxy :

# conteneur phpmyadmin
server {
      listen 80 proxy_protocol;
      listen [::]:80 proxy_protocol;

      server_name phpma.lesitadom.fr;
      location / {
              include /etc/nginx/proxy_params;
              root /usr/share/webapps/phpmyadmin/;
              (! ne semble pas servir à grand chose...)
              proxy_pass http://phpma.lxd/phpmyadmin/;
              }
      real_ip_header proxy_protocol;
      set_real_ip_from 127.0.0.1;
}

Avec cette config, on accède au site, mais une erreur apparaît : erreur : disparité du jeton

En modifiant le fichier de configuration de phpmyadmin 'http' -> 'cookie' La connection échoue :

Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin.

2. En définissant phpma.lxd/phpmyadmin/ comme cible, on accède directement, mais on obtient une erreur de disparité des jetons et aucune modif n'est possible. HTTP/HTTPS en cause ?

3. Voir comment faire de la réécriture d'url sous nginx

Pour limiter l'accès au réseau interne

Dans le conteneur proxy modifier le bloc "serveur" en ajoutant des règles de filtrage. Elles sont lues séquentiellement dans l'ordre.

 server {                               
       listen [::]:443 ssl proxy_protocol;          
       listen 443 ssl proxy_protocol;
 
       allow 192.168.1.0/24;				# <= adresses autorisées
       deny all;					# <= rejeter toutes les autres
                                       
       include /etc/nginx/le.conf;                  
       include /etc/nginx/realip.conf;
                                     
       server_name phpma.lesitadom.fr;
       location / {
               proxy_pass http://phpma.lxd;
               include /etc/nginx/proxy_params;
       }                                              
 }   

=> autoriser les adresses internes et rejeter les autres.

Dans le fichier /etc/hosts de la machine (bureau) ajouter la règle :

192.168.1.28	phpma.lesitadom.fr

Envoyer directement dans le bon dossier

1. Créer un nouveau sous-domaine : phpmyadmin.lesitadom.fr qui servira en interne (CNAME)

2. Générer un cetificat letsencrypt (--append)

3. Modifier le fichier proxy.conf dans le conteneur proxy pour réécriture de l'adresse -> phpmyadmin.lesitadom.fr/phpmyadmin

! voir comment sécuriser l'accès : filtrage par nginx...