Phpma

De Documentation
Version datée du 22 avril 2025 à 16:39 par Domi (discussion | contributions) (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... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche
  • 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

  1. lxc launch local:alpineLe phpma
  2. lxc shell phpma
  3. apk update && apk upgrade
  4. 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 :

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

Désactivation du fichier de config initial :

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

Utliser config.inc.php nettoyé.txt

Démarrage du service

  1. rc-service apache2 start

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

  1. 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 :

  1. 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 :

  1. chown -R apache:apache /usr/share/webapps/phpmyadmin/tmp -> ok
  • *
  • Faire pointer le sous-domaine directement sur phpmyadmin *
  • *

1. Créer un lien symbolique :

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

Modifier le fichier de conf dans le conteneur proxy :

  1. 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/;
               #               root /usr/share/webapps/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	(voir si on a le même effet avec lesitadom.fr pour éviter 
       										d'avoir à modifier le fichier /etc/hosts)
       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;
       }                                              

}

=> autorier les adresses internes et rejeter les autres.

Dans le fichier /et/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...