Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
smi [Le 30/05/2017, 22:54]
yoritomo [Installation sur serveur local.]
smi [Le 11/09/2022, 12:00] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>​Trusty entreprise ​ERP}} +{{tag>​Trusty ​Xenial Focal Fossa entreprise ​GMAO }} 
 +<note warning>​Cette page contient des manipulation dangereuses pour la sécurité du système (chomd 777)</​note>​
 ====== SMI : Services Maintenance Interventions ====== ====== SMI : Services Maintenance Interventions ======
  
Ligne 7: Ligne 7:
 SMI est plus un GMAO (gestionnaire de maintenance) qu'un PGI ou ERP (progiciel de gestion intégré) écrit en language PHP qui permet la gestion d'un service après vente où un centre de maintenance technique. Il doit être sur un serveur local ou distant pour pouvoir fonctionner dans un explorateur web. SMI est plus un GMAO (gestionnaire de maintenance) qu'un PGI ou ERP (progiciel de gestion intégré) écrit en language PHP qui permet la gestion d'un service après vente où un centre de maintenance technique. Il doit être sur un serveur local ou distant pour pouvoir fonctionner dans un explorateur web.
  
-Avec ce logiciel ​ il est possible de : +Avec ce logiciel ​ il est possible de :
    * Gérer ses agendas.    * Gérer ses agendas.
    * Générer des bons d'​intervention et de réparation.    * Générer des bons d'​intervention et de réparation.
Ligne 76: Ligne 76:
  
 ====Installation sur serveur local.==== ====Installation sur serveur local.====
-<note important>​Méthode uniquement valable pour les version ​d'​Ubuntu antérieures à 16.04, sous Ubuntu 16.04 et ultérieur il faut installer SMI en virtualisation sous Docker avec php5.6 et mysql5.5 par la méthode décrite plus bas, sans quoi SMI 1.0.5 ne fonctionnera pas où avec d'​énormes contraintes de mise en œuvre! ​ Pour raison d'​incompatibilité du code aux versions actuelles de PHP7.0 et Mysql 5.7</​note>​+<note important>​Méthode uniquement valable pour les versions ​d'​Ubuntu antérieures à 16.04, sous Ubuntu 16.04 et ultérieur il faut installer SMI en virtualisation sous Docker avec php5.6 et mysql5.5 par la méthode décrite plus bas, sans quoi SMI 1.0.5 ne fonctionnera pas où avec d'​énormes contraintes de mise en œuvre! ​ Pour raison d'​incompatibilité du code aux versions actuelles de PHP7.0 et Mysql 5.7</​note>​
  
 Commencer tout d'​abord par télécharger l'​archive contenant les fichiers de SMI, la version actuelle étant 1.0.5 sur le site officiel de SMI [[http://​smi.no-ip.org/​down.html|ici]]. Commencer tout d'​abord par télécharger l'​archive contenant les fichiers de SMI, la version actuelle étant 1.0.5 sur le site officiel de SMI [[http://​smi.no-ip.org/​down.html|ici]].
Ligne 119: Ligne 119:
  
 Si tout s'est bien passé, vous ne devriez pas obtenir de messages d'​erreur,​ si tel était le cas, se référer au [[http://​smi.no-ip.org/​phpBB3/​|forum officiel sur le site de SMI]]. Si tout s'est bien passé, vous ne devriez pas obtenir de messages d'​erreur,​ si tel était le cas, se référer au [[http://​smi.no-ip.org/​phpBB3/​|forum officiel sur le site de SMI]].
 +
 +====Installation locale de compatibilité sous Docker.====
 +<note important>​Toujours valable sous Focal Fossa 12.04. Cette méthode d'​installation est la solution à l'​incompatibilité du code de SMI avec les versions actuelles php 7.x et mysql 5.7, elle fait appel à Docker un système de virtualisation partielle qui permet la cohabitation de différentes versions de logiciels sans influer sur le système hôte lui-même, merci à Krodelabestiole pour son aide précieuse.</​note>​
 +
 +Après de nombreux essais et recherches, il s'est avéré que l'​installation sous Ubuntu 16.04 de PHP 5.6 par un ppa est un jeu d'​enfant mais il n'en est pas de même pour mysql 5.5 ou 5.6 qui est un véritable parcours du combattant pour l'​utilisateur commun, ​ Krodelabestiole,​ un membre du forum Ubuntu à eu l'​idée géniale d'​utiliser Docker pour lancer SMI dans  son environnement compatible, sans pour autant modifier quoi que ce soit au système hôte. Merci à lui au passage.
 +
 +Brève présentation de Docker, c'est un logiciel qui permet de mettre en '​container'​ toutes sortes de logiciels dans autant de versions que possible, soit combinés en environnement complet, soit installés de manière individuelle pour un usage précis. ​ C'est une solution qui permet une virtualisation très légère du strict nécessaire sans pour autant faire tourner un OS complet comme le fait VirtualBox.
 +
 +Commençons par ce tutoriel très bien réalisé sur la question pour installer docker ainsi que php et mysql dans les versions attendues par SMI. Suivez toutes les étapes du tutoriel scrupuleusement sans tenir compte du point 4, nous utiliserons la méthode avancée pour SMI [[https://​doc.ubuntu-fr.org/​docker_lamp|Tutoriel d'​installation sous Docker]]
 +
 +Si vous avez bien suivi ce tutoriel vous devez maintenant avoir dans votre répertoire personnel un répertoire www/ , télécharger l'​archive sur le site de smi [[http://​smi.no-ip.org/​down.html|Téléchargement sur la page officielle]]
 +
 +Dans www/ créer un répertoire pour smi, se placer dans le dossier www/ et taper ceci en console :
 +<​code>​mkdir smi</​code>​
 +
 +Ensuite suivre exactement la procédure décrite au point précédent pour l'​installation de smi dans le répertoire après avoir démarré Docker en sachant que l'​accès à Phpmyadmin du container se fait par http://​localhost:​8080
 +
 +Dans prm.inc.php,​ utilisez les lignes suivantes en lieu et place des lignes traditionnellement utilisées. Ce sont les identifiants définis pour la base MySQL de Docker:
 +<​code>//​ Constantes de connexion à la base MySQL
 +
 +define('​DBUSER',​ '​root'​); ​               // Utilisateur MySQL
 +define('​DBPASS',​ '​root'​); ​       // Mot de Passe pour MySQL
 +define('​DBHOST',​ '​db'​); ​       // Adresse IP du serveur MySQL
 + </​code>​
 +
 +Il est maintenant temps de lancer SMI et de procéder à ses configurations initiales comme habituellement. Pour cela, taper dans la barre d'​adresse de votre explorateur http://​localhost/​smi/​admin/​index.php.
 +
 +Il ne reste plus qu'à automatiser le démarrage du container Docker ainsi que de la page de SMI, voici un exemple de script que vous placerez dans le même dossier que le script .yml de docker ainsi créé précédemment. Vous le personnaliserai si nécessaire en fonction de vos besoin, le mieux est de créer un lanceur sur le bureau.
 +Ne pas oublier de donner les droits d'​exécution au script !
 +
 +script_smi_docker.sh :
 +<​code>#​!/​bin/​bash
 +
 +# Script de démarrage de SMI dans Docker.
 +
 +# Arrêt d'un serveur natif éventuel, absolument nécessaire !!
 +sudo service apache2 stop
 +sudo service mysql stop
 +
 +# Déplacement dans le dossier du script .yml
 +cd /​home/​user/​docker_smi/​
 +
 +# Lancement du container
 +docker-compose up &
 +
 +# Ouverture de la page de SMI dans Chromium après attente de 20 sec
 +sleep 20
 +chromium-browser http://​localhost/​smi/​index.php</​code>​
 +
 +Passons au lanceur maintenant, dans cet exemple reprenons le même chemin que le script et mettons y pour commande d'​exécution :
 +<​code>​sh /​home/​user/​docker_smi/​script_smi.sh</​code>​
 +
 +Voilà qui est fait !
 +
 + 
 ====Installation sur serveur distant.==== ====Installation sur serveur distant.====
 A compléter ! A compléter !
Ligne 147: Ligne 202:
 =====Utilisation ===== =====Utilisation =====
 SMI est un logiciel en permanente évolution qui devrait bientôt se doter d'une gestion de facturation et de stock, pour la prise en main je vous recommande donc de consulter sa [[http://​smi.no-ip.org/​doc.html|documentation officielle]]. SMI est un logiciel en permanente évolution qui devrait bientôt se doter d'une gestion de facturation et de stock, pour la prise en main je vous recommande donc de consulter sa [[http://​smi.no-ip.org/​doc.html|documentation officielle]].
 +
 +=====Exemple de fichier prm.inc.php====
 +La syntaxe de prm.inc.php peut faire perdre beaucoup de temps, ce n'est pas simple à compléter, c'est pourquoi ci-dessous vous trouverez un fichier exemple relatif à une installation sous docker, adaptable en fonction de votre propre situation.
 +
 +<​code>//​ Vérification des tentatives de hack
 +$pos = strpos($_SERVER['​PHP_SELF'​],​ '​inc.php'​);​
 +if ($pos !== FALSE) {
 +    header('​Location:​ ../​index.php'​);​
 +}
 +
 +//////////////////////////////////////////////////////////////////////////////////​
 +/// Vous pouvez modifier ces variables en fonction de votre configuration ​     ///
 +//////////////////////////////////////////////////////////////////////////////////​
 +
 +/​************************************************/​
 +/**        Language de l'​application ​          **/
 +/​************************************************/​
 +
 +// Language par défaut de l'​application (pris sur le browser)
 +$lng_appli = substr($_SERVER['​HTTP_ACCEPT_LANGUAGE'​],​ 0, 2);
 +
 +
 +/​************************************************/​
 +/**        Fuseau Horaire du serveur ​          **/
 +/​************************************************/​
 +date_default_timezone_set('​Europe/​Paris'​);​
 +
 +/​**************************************************/​
 +/**        Répertoire de l'​application ​          **/
 +/​**************************************************/​
 +
 +define('​REP',​ '​smi'​); ​   // Répertoire de l'​application
 +
 +$rep_appli = $racine_web . '/'​ . REP;        // Chemin web absolu vers l'​application
 +
 +/​*******************************************/​
 +/**        Nom de la base MySQL           **/
 +/​*******************************************/​
 +
 +define('​DBNAME',​ '​smi'​); ​               // Nom de la base de données
 +define('​PREFIXE',​ '​smi'​); ​               // Préfixe des noms des tables
 +
 +/​*************************************************************/​
 +/**               ​Constantes des bases MySQL                **/
 +/​*************************************************************/​
 +
 +// login/mot de passe Administrateur par défaut (créé la 1ère fois)
 +
 +$admin_code = '​Administrateur'; ​           // Code '​Administrateur'​
 +$admin_mdp = '​Administrateur'; ​               // Mot de passe '​Administrateur'​
 +
 +
 +// Constantes de connexion à la base MySQL
 +
 +define('​DBUSER',​ '​root'​); ​               // Utilisateur MySQL
 +define('​DBPASS',​ '​root'​); ​       // Mot de Passe pour MySQL
 +define('​DBHOST',​ '​db'​); ​       // Adresse IP du serveur MySQL
 +
 +
 +/​****************************************************/​
 +/**        Variables des téléchargements ​          **/
 +/​****************************************************/​
 +
 +/​*************************************************************/​
 +/** Constantes et variables pour la gestion des icônes ​     **/
 +/** pour les statuts et des logos pour les agences, ​        **/
 +/** et les applications complémentaires ​                    **/
 +/​*************************************************************/​
 +
 +// Constantes & Variables des répertoires pour les fichiers internes et téléchargés,​ et les sauvegardes
 +
 +$url_gfc = $root . '​smi/​telechgt/​fictec'; ​               // Chemin REEL complet pour la gestion des fichiers techniques
 +//$url_gfc = '/​srv/​www/​smi/​telechgt/​fictec';​ //​ Chemin REEL complet pour la gestion des fichiers techniques
 +$url_tfc = '/​home/​user/​www/​smi/​telechgt/​fictec/'; ​                   // Chemin REEL depuis la racine pour le téléchargement des
 +// fichiers techniques
 +$url_svg = $root . '​smi/​svg/'; ​                       // Chemin REEL vers le répertoire des sauvegardes
 +//$url_svg = '/​srv/​www/​datas/​smi/​svg/';​ //​ Chemin REEL vers le répertoire des sauvegardes
 +
 +// Extensions autorisées
 +$extensions_ok = ['​.png',​ '​.zip',​ '​.pdf',​ '​.7z',​ '​.txt',​ '​.csv',​ '​.rtf',​ '​.wk1',​ '​.wks',​ '​.123',​ '​.iso',​ '​.xls',​ '​.doc',​
 +    '​.ods',​ '​.odt',​ '​.odg',​ '​.odp',​ '​.odb',​ '​.sxw',​ '​.sxi',​ '​.sti',​ '​.sxd',​ '​.gz',​ '​.tar',​ '​.gif',​ '​.rar',​ '​.arj',​ '​.jpg',​ '​.ppt',​ '​.exe',​ '​.jpg',​
 +    '​.gif',​ '​.bmp'​];​
 +
 +// Tailles maximum (en octets) des fichiers pouvant être téléchargés
 +// (Pensez à contrôler votre PHP.INI)
 +$taille_maxi_admin = 1024 * 6000;
 +$taille_maxi_cge = 1024 * 6000;
 +$taille_maxi_age = 1024 * 3000;
 +$taille_maxi_tec = 1024 * 2000;
 +
 +/​*******************************************/​
 +/**        Variables des icônes ​          **/
 +/​*******************************************/​
 +
 +// Constantes & Variables des répertoires icônes et images
 +
 +/​***********[ TRES TRES IMPORTANT SOUS LINUX !!! ]***************/​
 +/**                                                            **/
 +/** pensez à changer le propriétaire du répertoire des icônes ​ **/
 +/** en le passant sous le même propriétaire que celui qui      **/
 +/** exécute les scripts, sinon, rien ne s'​affichera. ​          **/
 +/** Par exemple 'chown wwwrun /​srv/​www/​htdocs/​maint/​icones' ​   **/
 +/**                                                            **/
 +/​****************************************************************/​
 +
 +$chemin_icones = '​../​icones'; ​                   // Chemin relatif vers les icônes
 +$url_logos = $rep_appli . '/​logos'; ​               // Chemin complet vers le dossier de stockage des logos
 +$chemin_logos = '​../​logos'; ​                       // Chemin relatif vers les logos
 +$cheminr_logos = $root . REP . '/​logos'; ​           // Chemin REEL vers les logos
 +$chemin_images = '​../​img'; ​                       // Chemin relatif vers les images
 +
 +/​*************************************************************/​
 +/**        Constantes & Variables pour les emails ​          **/
 +/​*************************************************************/​
 +
 +$admin_name = ''; ​               // Nom de l'​Administrateur
 +$admin_mail = ''; ​           // Email de l'​Administrateur
 +
 +// Coordonnées du serveur smtp de votre FAI
 +
 +$smtp_nom = ''; ​           // Nom du serveur SMTP
 +// Vous pouvez en donner plusieurs (séparez-les avec des ';'​)
 +$smtp_port = 25;                        // Port du serveur SMTP
 +$smtp_login = ''; ​                       // Login du serveur SMTP (si serveur avec authentification...laisser vide si pas d'​authentification)
 +$smtp_mdp = ''; ​                           // Mot de passe du serveur SMTP (si serveur avec authentification...laisser vide si pas d'​authentification)
 +$smtp_pausem = 5;                        // Pause en secondes entre chaque envoi de mail (emailings)
 +$smtp_secure = ''; ​                       // Mode de sécurité SMTP ('​ssl',​ '​tls',​ ou rien)
 +// SMI n'en tien compte que s'il y a un login
 +$pop_before = false; ​                   // Si true, on fait un 'POP before SMTP', sinon rien
 +$pop_nom = ''; ​                           // Non du serveur POP3 (SMI n'en tient compte que si 'POP before STMP')
 +$pop_port = 110;                        // Port du serveur POP3 (SMI n'en tient compte que si 'POP before STMP')
 +$pop_timeout = 30;                        // Time Out du serveur POP3 (SMI n'en tient compte que si 'POP before STMP')
 +$pop_login = ''; ​                       // Login du serveur POP3 (SMI n'en tient compte que si 'POP before STMP')
 +$pop_mdp = ''; ​                           // Mot de passe du serveur POP3 (SMI n'en tient compte que si 'POP before STMP')
 +
 +
 +/​***************************************************/​
 +/**        Applications complémentaires ​          **/
 +/​***************************************************/​
 +
 +$url_cal = ''; ​                                   // Racine de l'​application calendrier / agenda
 +$url_fac = ''; ​                                   // Racine de l'​application facturation
 +$url_facc = ''; ​                                   // Racine de l'​application facturation client </​code>​
 +
 +
 +----
 +
 +//​Contributeur principal : [[:​utilisateurs:​yoritomo|yoritomo]]//​
  • smi.1496177653.txt.gz
  • Dernière modification: Le 30/05/2017, 22:54
  • par yoritomo