« Logiciel Pastèque/Serveur/Installation » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Config v7 avec le combo inifile ident et database
Lien vers les user_ini.php pour la génération du hash de mot de passe
Ligne 257 : Ligne 257 :
/etc/pasteque/auth/<user>_id.ini
/etc/pasteque/auth/<user>_id.ini


Les mots de passe sont chiffrés via la méthode php password_encrypt. Pour générer un mot de passe utilisateur il faut executer un script externe en attendant l'intégration de la gestion des comptes utilisateurs directement via l'interface graphique.
Les mots de passe sont chiffrés via la méthode php password_encrypt. Pour générer un mot de passe utilisateur il faut executer un script externe en attendant l'intégration de la gestion des comptes utilisateurs directement via l'interface graphique. Des scripts de génération sont disponible sur le dépôt [https://framagit.org/pasteque/tools tools] ou pré-installé par exemple sur [https://pasteque.pro/user_ini.php pasteque.pro].
<?php
if ($argc < 2) {
system("stty -echo");
$password = fread(STDIN, 80);
$password2 = fread(STDIN, 80);
system("stty echo");
if ($password != $password2) {
file_put_contents("php://stderr", "Password mismatch\n");
die();
}
} else {
$password = $argv[1];
}
echo "password=" . password_hash($password, PASSWORD_DEFAULT);


Mettre la chaîne de caractères obtenue <pwd_hash> dans /etc/pasteque/auth/<user>_id.ini :
Mettre la chaîne de caractères obtenue <pwd_hash> dans /etc/pasteque/auth/<user>_id.ini :

Version du 23 mars 2017 à 15:59

Tutoriel d'installation de la solution Pastèque Server.

Présentation des modes de la solution Pastèque

Pastèque Server peut être installé de deux manières possibles:

  • "OpenBar"
  • Par le biais de "Wordpress"

Le mode "OpenBar"

Le mode OpenBar permet d'accéder de manière rapide à votre application Pastèque Server. Seul changement par rapport à la seconde version, OpenBar, comme son nom l'indique, ne gère pas l'authentification par défaut. C'est à dire que cette solution est la plus simple, si vous souhaitez gérer votre activité sans pour autant chercher à gérer l'authentification multiple.

Le mode "Wordpress"

Le mode Wordpress permet donc de coupler la praticité de notre solution Pastèque Server avec les services offerts par le socle Wordpress et donc la gestion des multiples authentification en particulier, mais aussi l'ajout possible à votre solution des modules Wordpress, suivre le lien suivant: Plugins Wordpress.

Le mode "JWT"

A partir de la version 7, la méthode d'identification a été modifié. Le module openbar a été supprimé (mais son comportement peut être retrouvé) et l'authentification via WordPress est déconseillée car très lourde.

JWT signifie JSON Web Token. Cette méthode permet d'éviter d'envoyer les information d'authentification à chaque appel. Pour plus d'explications techniques https://jwt.io/.

Installation de Pastèque serveur selon le mode "OpenBar"

Cette procédure s'applique pour Pastèque v6. Pour la version 7 et plus, suivre la méthode JWT.

Pré-requis:

  • Avoir installé Apache, PHP (5.4 ou supérieur), PHP-INTL, PHP-GD, MySQL
  • Créer une BDD MySQL avec un utilisateur ayant les droits sur celle-ci.

Télécharger la dernière version de Pastèque server : http://downloads.pasteque.org/server/pasteque-server.tgz

$ wget http://downloads.pasteque.org/server/pasteque-server.tgz

Décompresser l'archive dans le répertoire web de votre serveur.

$ tar xzvf pasteque-server.tgz

Modification du fichier de config général

Renommer le fichier pasteque-server/config-sample.php en config.php. Ce fichier doit donc se trouver à la racine de votre dossier nouvellement décompressé.

C'est ce fichier dit de configuration générale qui va vous permettre d'administrer le fonctionnement de votre application. Par défaut on peut remarquer que les lignes 28 à 32 (voir ci-dessous) donnent comme valeur le nom de ce mode, "OpenBar", et que la base de données est dite "static", ce qui est donc la différence par rapport au mode "Wordpress", ou la base de données est gérée dynamiquement.

$config['core_ident'] = "openbar";
$config['core_database'] = "static";
$config['core_modules'] = "static";

Liaisons pour les modules et la base de données

Pour les modules

Accédez au dossier pasteque-server/core-modules/modules/static/. A l'intérieur de ce dossier, se trouvent deux fichiers:

  • config-sample.php
  • module.php

Il vous faut simplement renommer config-sample.php en config.php et le modifier comme suit:

$config['modules'] = array(
    "base_products",
    "base_sales",
    "base_cashes",
    "base_cashregisters",
    "base_customers",
    "base_restaurant",
    "base_users",
    "product_attributes",
    "product_discounts",
    "customer_discountprofiles",
    "product_barcodes",
    "product_tariffareas",
    "base_currencies",
    "base_resources",
    "base_stocks",
    "product_compositions",
    "stock_multilocations"
);

Pour la base de données

Accédez au dossier pasteque-server/core-modules/database/static/. A l'intérieur de ce dossier, se trouvent aussi deux fichiers:

  • config-sample.php
  • module.php

Il vous faut tout d'abord renommer config-sample.php en config.php. Puis accéder au contenu de ce fichier (le nouveau config.php) pour en modifier le contenu.

$config['type'] = "mysql";
$config['host'] = "localhost";
$config['port'] = "3306";
$config['name'] = "nom_de_votre_bdd";
$config['user'] = "utilisateur_mysql";
$config['password'] = "password_mysql";

Vérification et Fin de l'installation de pasteque-server mode "OpenBar"

Pour accéder à l'interface d'administration de la solution pasteque-server, ouvrez votre navigateur web préféré. Puis, rentrez tout simplement l'adresse du serveur/répertoire de pastèque (exemple http://monserveur.aa/dossier_pasteque_serveur), choisissez le pays, et c'est fini !

Installation de Pastèque serveur selon le mode "Wordpress"

Dans cette installation, nous allons reprendre la majorité des éléments d'installation "OpenBar" en y ajoutant, modifiant certains éléments permettant donc de profiter du socle offert par Wordpress, comme en particulier l'identification multiple.

Pré-requis

  • Avoir installé Apache, PHP (5.4 ou supérieur), PHP-INTL, MySQL
  • Créer une base de données MySQL nommée ' pasteque '.
  • Télécharger Wordpress et le décompresser dans le répertoire web de votre serveur
  • Installer Wordpress en accédant à l'adresse du serveur/répertoire de pastèque (exemple http://monserveur.aa/dossier_wordpress ). Lors de l'installation de Wordpress, il vous sera demandé un nom d'utilisateur:
    • Nom d'utilisateur = wordpress_user
    • Mot de passe = wordress_password
  • Une fois Wordpress installé dans votre répertoire web, téléchargez la dernière version de Pastèque server : http://downloads.pasteque.org/server/pasteque-server.tgz
$ wget http://downloads.pasteque.org/server/pasteque-server.tgz
  • Puis décompressez l'archive dans votre répertoire wordpress.
$ tar xzvf pasteque-server.tgz

Vous devriez donc avoir une arborescence de ce style (voir ci-contre).

Arborescence pastèque serveur avec wordpress

Modification du fichier de config général

Renommer le fichier pasteque-server/config-sample.php en config.php. Ce fichier doit donc se trouver à la racine de votre dossier nouvellement décompressé.

C'est ce fichier dit de configuration générale qui va vous permettre d'administrer le fonctionnement de votre application. Par défaut on peut remarquer que les lignes 28 à 32 (voir ci-dessous) donne comme valeur le nom de ce mode, "Wordpress", et que la base de données est dite "static", ce qui est donc la différence par rapport au mode "Wordpress", ou la base de données est gérée dynamiquement.

$config['core_ident'] = "wordpress";
$config['core_database'] = "wordpress";
$config['core_modules'] = "database";

Liaisons pour les modules et la base de données

Pour les modules

Accédez au dossier pasteque-server/core-modules/modules/database/. A l'intérieur de ce dossier, se trouvent deux fichiers:

  • config-sample.php
  • module.php

Il vous faut tout d'abord renommer config-sample.php en config.php. Puis accéder au contenu de ce fichier (le nouveau config.php) pour en modifier le contenu.

$config['table'] = "MODULES";

Pour l'identification

Accédez au dossier pasteque-server/core-modules/ident/wordpress/. A l'intérieur de ce dossier, se trouvent deux fichiers:

  • config-sample.php
  • module.php

Il vous faut tout d'abord renommer config-sample.php en config.php. Puis accéder au contenu de ce fichier (le nouveau config.php) pour en modifier le contenu.

$config['wordpress_base_path'] = "../";


Pour la base de données

Accédez au dossier pasteque-server/core-modules/database/wordpress/. A l'intérieur de ce dossier, se trouvent deux fichiers:

  • config-sample.php
  • module.php

Il vous faut tout d'abord renommer config-sample.php en config.php. Puis accéder au contenu de ce fichier (le nouveau config.php) pour en modifier le contenu.

$config['wordpress_base_path'] = "../";
$config['wordpress_table'] = "wp_pasteque";

Création de tables dans la base de données utilisée par Wordpress

Tout d'abord il vous faut créer une première table wp_pasteque dans la base de Wordpress :

--
-- Structure de la table `wp_pasteque`
--

CREATE TABLE IF NOT EXISTS `wp_pasteque` (
  `user_id` int(11) NOT NULL,
  `host` varchar(52) CHARACTER SET utf8 NOT NULL,
  `port` int(11) NOT NULL,
  `database` varchar(100) CHARACTER SET utf8 NOT NULL,
  `user` varchar(100) CHARACTER SET utf8 NOT NULL,
  `password` varchar(100) CHARACTER SET utf8 NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Il va vous falloir remplir cette table pour chaque utilisateur. Cette table, permet de faire la liaison entre la base de données wordpress et la base de données de la solution Pastèque. Les informations varient en fonction de votre installation, à l'exception du nom de votre base de données si vous avez respecté les indications pour la création de la base de données dans les pré-requis.

user_id => 1 (par défaut, vous pouvez retrouver les ' user_id ' dans la table ' wp_users ')
host => localhost
port => 3306
database => pasteque 
user => nom_utilisateur_mysql
password => password_utilisateur_mysql
INSERT INTO wp_pasteque VALUES (
'1', 'localhost', '3306', 'pasteque', 'nom_utilisateur_mysql', 
'password_utilisateur_mysql')

Puis la base de données pasteque créez une table modules selon ce schéma:

CREATE TABLE IF NOT EXISTS `MODULES` (
  `user_id` int(11) NOT NULL,
  `modules` text NOT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Intégration des modules de bases à l'application

INSERT INTO MODULES
VALUES (
 '1',  'base_products,base_sales,modules_management,base_restaurant,base_cashes,base_resources,base_stocks,base_users,product_compositions,product_discounts'
)


Vérification et Fin de l'installation de Pastèque-Server en mode "wordpress"

Dans votre navigateur web préféré, rentrez tout simplement l'adresse du serveur/répertoire de pastèque (exemple http://monserveur.aa/wordpress/dossier_pasteque_serveur), choisissez le pays, et c'est fini !

Installation de Pastèque v7, en mode JWT

La version 7 apporte un lot de mofication en vue d'une utilisation multicompte. La gestion des comptes via les modules inifile est recommandée.

Pré-requis:

  • Avoir installé Apache, PHP (5.4 ou supérieur), PHP-INTL, PHP-GD, MySQL
  • Créer une BDD MySQL avec un utilisateur ayant les droits sur celle-ci.

Télécharger la dernière version de Pastèque server https://framagit.org/pasteque/pasteque-server/tree/7.0

Modification du fichier de config général

Renommer le fichier pasteque-server/config-sample.php en config.php. Ce fichier doit donc se trouver à la racine de votre dossier nouvellement décompressé.

Modifier l'entrée jwt_secret avec une chaîne de caractères de bonne taille (256 caractères, aléatoires, avec caractères spéciaux). Cette chaîne est utilisée pour signer et vérifier les tokens d'authentification.

Pour la base de données

Accédez au dossier pasteque-server/core-modules/database/inifile/. A l'intérieur de ce dossier, se trouvent aussi deux fichiers:

  • config-sample.php
  • module.php

Il vous faut tout d'abord renommer config-sample.php en config.php. Puis accéder au contenu de ce fichier (le nouveau config.php) pour en modifier le contenu. Indiquer le répertoire dans lequel vous allez déposer les fichiers ini des comptes utilisateurs, dans cet exemple /etc/pasteque/auth permet de regrouper tous les fichiers ini au même endroit.

Un fichier de connexion aux base de données prend la forme <login>_db.ini, il contient les informations suivantes :

type = mysql
host = localhost
port = 3306
name = "nom_de_votre_bdd"
user = "utilisateur_mysql"
password = password_mysql

Assurez vous que le fichier est lisible par l'utilisateur du serveur web (www-data).

Pour la gestion de l'authentification

Accédez au dossier pasteque-server/core-modules/ident/inifile/ et renommer config-sample.php en config.php. Le dossier indiqué dans config.php contiendra un hash des mots de passe de chaque utilisateur, il est donc conseillé de conserver le chemin /etc/pasteque/auth. Créer ce dossier (vous aurez besoin des droits root).

Définition d'un utilisateur et d'un mot de passe

Pour ajouter l'utilisateur <user> avec le mot de passe <pwd>, créer le fichier

/etc/pasteque/auth/<user>_id.ini

Les mots de passe sont chiffrés via la méthode php password_encrypt. Pour générer un mot de passe utilisateur il faut executer un script externe en attendant l'intégration de la gestion des comptes utilisateurs directement via l'interface graphique. Des scripts de génération sont disponible sur le dépôt tools ou pré-installé par exemple sur pasteque.pro.

Mettre la chaîne de caractères obtenue <pwd_hash> dans /etc/pasteque/auth/<user>_id.ini :

password = "<pwd_hash>"

Assurez vous que le fichier est lisible par l'utilisateur du serveur web (www-data).

Accès sans compte utilisateur

Déconseillé, mais pour retrouver un comportement type "openbar" sans authentification, ajouter les options suivantes dans votre fichier de configuration :

$config['debug'] = true;
$config['no_auth'] = true;

L'identifiant de l'utilisateur sera alors 0. Ce mode n'est pas disponible en dehors du mode débug.

Des messages de warning peuvent alors apparaître dans les réponses de l'API et bloquer le fonctionnement normal de l'application.

Vérification et Fin de l'installation de pasteque-server mode "JWT"

Pour accéder à l'interface d'administration de la solution pasteque-server, ouvrez votre navigateur web préféré. Puis, rentrez tout simplement l'adresse du serveur/répertoire de pastèque (exemple http://monserveur.aa/dossier_pasteque_serveur), choisissez le pays, et c'est fini !

Configuration du client

mode openbar

URL du serveur : http://monserveur.aa/pasteque-server/ 
Utilisateur : (laissez vide) 
Mot de passe : (laissez vide)

mode wordpress

URL du serveur : http://monserveur.aa/dossier_wp/pasteque-server/ 
Utilisateur : wordpress_user 
Mot de passe : wordpress_password

Configuration

Configuration is made with config.php file in your root folder of Pastèque server

Debug mode

Set $config['debug'] to true. Debug mode will trigger USER_NOTICE php errors. You can handle them with PHP (display_errors and/or log_errors)

Notice that all JSON requests to api.php are logged in this case. Be ware that PHP default configuration limit error messages to 1024 chars. You can change it threw log_errors_max_len in PHP config (php.ini file or .htaccess file or anyway you want)

Migration de la base MySQL V4 vers V5

Procéder à l'installation comme décrite plus haut. Une fois l'installation terminée, récupérer la tables ROLES et la ligne correspondante à l'ID 14, Menu.Root de la table RESOURCES Supprimer la base de donnée, la remplacer par votre sauvegarde et y injecter les dump des tables ROLES et RESOURCES précédemment enregistrés. Relancer l'installation de la base en sélectionnant la langue dans la page d'administration.

Aide Supplémentaire

Ce tutoriel a pour vocation de vous aider le mieux possible. Pour toute question supplémentaire, le forum de la communauté de Pastèque est à votre disposition.