Fix install.php

Les sujets de cette catégorie concernent le développement du logiciel MedshakeEHR.
Avatar de l’utilisateur
Bertrand
Messages : 180
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Fix install.php

Message non lu par Bertrand »

Je viens de pousser un fix (master) pour install.php en PDO, mais qui corrige aussi certaines choses (je ne me suis jamais penché sur ce script et je ne l'ai fait ici que sur cette partie).
Par exemple les requêtes de création de base et utilisateur étaient par défaut sur @locahost ... heureusement que c'est l'option habituelle :D !

Ca fonctionne ici, mais je veux bien des tests :D
Merci ! ;)

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

Avatar de l’utilisateur
Bertrand
Messages : 180
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Re: Fix install.php

Message non lu par Bertrand »

Hummmm je ne sais pas si j'ai fait une bêtise ou pas avec cette histoire de @localhost que j'ai remplacé par l'adresse du serveurSQL.

Je viens de rependre la doc, la partie host indique le serveur depuis lequel l'utilisateur SQL en question se connecte.
Soit on est sur un install mono serveur avec base installée en local et quoi qu'on indique, ça doit fonctionner.
Soit ce n'est pas le cas et ça ne doit jamais fonctionner.

Il semble donc qu'il faille introduire un nouveau paramètre qui serait le host de connexion de l'utilisateur, donc en gros le nom d'hôte ou l'IP de la machine qui exécute les scripts PHP.

Qu'en dites vous ?
Merci.

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

marsante
Messages : 177
Inscription : 25 juil. 2020, 18:42

Re: Fix install.php

Message non lu par marsante »

Avec docker le serveur mariadb est séparé, le nom d'hôte est db, je n'ai jamais eu de soucis avec la cli d'Indelog dans ce contexte. Le problème serait quand on remplit manuellement les champs avec une db non crée ?

Avatar de l’utilisateur
Bertrand
Messages : 180
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Re: Fix install.php

Message non lu par Bertrand »

Alors ça c'est curieux. Je n'ai peut-être rien compris.
Mais si j'ai compris un minimum, ca ne devrait pas fonctionner.
Je ne sais pas si tu peux regarder simplement dans ce contexte-là si dans la base MariaDB l'utilisateur a bien localhost ?

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

marsante
Messages : 177
Inscription : 25 juil. 2020, 18:42

Re: Fix install.php

Message non lu par marsante »

Sur l'image mariadb avec la bdd et l'utilisateur déjà crée j'ai pour l'utilisateur docker l'host %

Code : Tout sélectionner

MariaDB [(none)]> select user, host from mysql.user;
+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| docker      | %         |
| root        | %         |
| mariadb.sys | localhost |
| root        | localhost |
+-------------+-----------+
4 rows in set (0.005 sec)

Sur docker le % pose moins de problème car c'est sur un réseau interne. Par exemple dans ma proposition il y a le réseau base de donnée qui relie medshakeehr à la base de donnée et un réseau qui relie medshakehr au proxy. Le port de mariadb n'est donc ouvert que sur son réseau interne, mais pas sur la machine. Sur une installation en réseau local, c'est probablement pas foufou d'autoriser à tout le monde la connexion sans chiffrement
Il faudra que j'essaye avec une base de donnée non crée

Avatar de l’utilisateur
Bertrand
Messages : 180
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Re: Fix install.php

Message non lu par Bertrand »

Merci. Effectivement, si on passe par une base déjà créée, la question ne se pose pas dans mes modifs du install.php car ces lignes sont shuntées.

Je crois que je vais reprendre le install.php de haut en bas et le fragmenter en class et templates pour y voir clair.

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

Avatar de l’utilisateur
Bertrand
Messages : 180
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Re: Fix install.php

Message non lu par Bertrand »

Ce joker % ne serait-il pas ici un vrai problème de sécurité si on parle d'un environnement plutôt ouvert ?

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

marsante
Messages : 177
Inscription : 25 juil. 2020, 18:42

Re: Fix install.php

Message non lu par marsante »

Voilà ce que ça donne sur une version 7.3.2 avec mysqli installée manuellement

Code : Tout sélectionner

Fatal error: Uncaught mysqli_sql_exception: Access denied for user 'docker'@'172.29.0.3' (using password: YES) in /var/www/html/class/msSQL.php:41 Stack trace: #0 /var/www/html/class/msSQL.php(41): mysqli->__construct() #1 /var/www/html/public_html/install.php(426): msSQL::sqlConnect() #2 {main} thrown in /var/www/html/class/msSQL.php on line 41

Avec

Code : Tout sélectionner

+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| root        | %         |
| docker      | localhost |
| mariadb.sys | localhost |
| root        | localhost |
+-------------+-----------+

Et ce que ça donne avec la branche master installée manuellement

Code : Tout sélectionner

Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user 'docker'@'172.25.0.3' (using password: YES) in /var/www/html/class/msSQL.php:43 Stack trace: #0 /var/www/html/class/msSQL.php(43): PDO->__construct() #1 /var/www/html/public_html/install.php(443): msSQL::sqlConnect() #2 {main} thrown in /var/www/html/class/msSQL.php on line 43

Avec

Code : Tout sélectionner

+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| root        | %         |
| docker      | db        |
| mariadb.sys | localhost |
| root        | localhost |
+-------------+-----------+

Concernant le % oui je ne pense pas que ça soit très malin sur une vraie machine

Avatar de l’utilisateur
Bertrand
Messages : 180
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Re: Fix install.php

Message non lu par Bertrand »

Bon j'ai poussé un install.php ici :
https://github.com/MedShake/MedShakeEHR ... 1237355b81

Cela permet de gérer la partie host de la création de l'utilisateur et de l'attribution de ses droits sur la base.
En cli on passe avec -o ou --sqluserhost

Je n'ai pas testé :shock: :?

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

Avatar de l’utilisateur
Bertrand
Messages : 180
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Re: Fix install.php

Message non lu par Bertrand »

Je viens de pousser une version refactor de l'install.php avec class msInstall et templates twig.

Tout cela semble fonctionner correctement.

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

Répondre