Phpma
- 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/;
# 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...