« Previous -
Version 196/388
(diff) -
Next » -
Current version
Etienne Pallier, 05/10/2017 04:44 pm
Labinvent 2.0 (cakephp3) - Installation¶
Cette page décrit la phase d'installation du logiciel.
La version la plus à jour est sur la page "Installation" du wiki du projet: https://projects.irap.omp.eu/projects/inventirap/wiki/Installation
- Labinvent 2.0 (cakephp3) - Installation
- LIENS UTILES
- RECUPERATION
- INSTALLATION
- Utilisation du logiciel
- MISE A JOUR du logiciel
- MODE PANIQUE
LIENS UTILES¶
- HOWTO Format Redmine Wiki : http://www.redmine.org/projects/redmine/wiki/FrRedmineWikiFormatting
- Version majeure en cours (2.04): https://projects.irap.omp.eu/projects/inventirap/roadmap#version_2.04_-_Impl%C3%A9mentation_des_ACL_(droits)
- Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/commits/master
- Browse files (gitlab): https://gitlab.irap.omp.eu/epallier/labinvent/tree/master
RECUPERATION¶
1) Deux options
Deux options se présentent à vous :
- a) soit vous récupérez une version statique du logiciel, en le téléchargeant (pas besoin de login, c'est anonyme)
- b) soit vous récupérez une version synchronisée, avec git (nécessité d'avoir un login)
a) Téléchargement anonyme (version statique, non synchronisée)
Vous pouvez télécharger la version actuelle du logiciel.
Pour cela, aller sur : https://gitlab.irap.omp.eu/epallier/labinvent/tree/master
Cliquez sur : "Download zip" dans le coin en haut à droite.
Double-cliquez dessus ou dézippez-le (ou lancez la commande gzip -d labinvent.zip). Vous devriez avoir un dossier "labinvent.git".
Dans sa documentation, le logiciel sera désigné par "LABINVENT".
Vous pouvez renommer "labinvent.git" en "labinvent" si vous le souhaitez ("mv labinvent.git labinvent" ou clic droit->Renommer).
b) Récupérer le logiciel via GIT (version dynamique, synchronisée, nécessité d'un login)
Pour cette option, vous devez avoir un login. Si vous n'avez pas déjà un login, allez sur la page https://gitlab.irap.omp.eu/users/sign_in,
puis remplissez la section "Sign up". Ensuite, envoyez un email à epallier AT irap. omp. eu
en demandant l'autorisation d'accéder au gitlab du projet labinvent. On vous donnera alors la procédure à suivre pour vous connecter.
(Si vous utilisez Windows, vous DEVEZ avant tout installer git pour windows, voir plus bas "Obtenir git pour windows")
En récupérant directement le logiciel via git, vous allez avoir une version dynamiquement synchronisée.
Vous serez donc en mesure de la mettre à jour dès qu'une nouvelle version sera disponible avec la commande "git pull".
- (Depuis Eclipse : Voir plus bas, section "A L'ATTENTION DES UTILISATEURS D'ECLIPSE")
- Depuis un terminal:
git clone https://gitlab.irap.omp.eu/epallier/labinvent.git labinvent
(Ou aussi depuis ssh : git clone git@gitlab.irap.omp.eu:epallier/labinvent.git labinvent)
Si vous obtenez ce message d'erreur ... :
fatal: unable to access 'https://gitlab.irap.omp.eu/epallier/labinvent.git/': Peer's certificate issuer has been marked as not trusted by the user.
...tapez cette commande (et relancez une commade "git clone"):
$ git config --global http.sslVerify false
Puis vérifiez que votre configuration soit OK :
$ git config --list (ou encore : cat ~/.gitconfig) [user] name = Etienne Pallier email = epallier@irap.omp.eu [http] sslVerify = false [push] default = simple
(Si vous récupérez le projet pour la première fois, git vous demandera un login et un mot de passe)
Git a normalement créé un dossier "labinvent" qui contiendra votre projet (avec un sous dossier ".git" qui sert à la synchronisation avec le dépot git).
Seulement pour Windows :
Obtenir git pour windows :
- Téléchargez git sur https://git-scm.com/download/win
- Lancez l'installation (gardez la configuration par défaut)
- Une fois installé, lancer une invite de commande (Touche Windows+R, tapez cmd, touche entrer)
$ git config --global http.sslVerify false
Vous pouvez désormais utiliser git depuis une invite de commande ou depuis l'interface graphique de git.
2) Préparation
- Si jamais votre dossier "labinvent" appartient à root (vous avez fait un "git clone" depuis root...), il serait préférable que vous en soyez vous-mêmes (ou un autre user) le propriétaire :
sudo chown -R nom_utilisateur labinvent/
- Placer ce dossier à l'endroit voulu, 2 possibilités :
- (1) soit vous placez ce dossier directement dans le repertoire des sites webs du serveur web (par exemple /var/www/html/ ou /var/www/html/localhost/public_html/, ...)
- (2) soit vous le placez n'importe où ailleurs (par exemple dans votre repertoire home), et ensuite vous indiquez au serveur web où trouver ce projet, ou bien vous faites un lien depuis votre /var/www/html/ vers ce dossier labinvent/, ou encore vous créez un Virtual Host (Apache)
INSTALLATION¶
A/ Installation des PREREQUIS¶
Le logiciel nécessite une combinaison "AMP" pour fonctionner, soit les 3 pré-requis suivants :
- un serveur web Apache
- un serveur de base de données Mysql
- le langage Php en version 5.6 (Php 7 bientôt supporté)
Si ce tiercé est déjà présent sur votre OS, vous pouvez passer à l'étape suivante (B/ Installation), et revenir ici seulement en cas de problème de configuration.
Sur Windows, vous pouvez utiliser Wampserver ou XAMPP qui regroupent ces 3 éléments (il n'y aura rien d'autre à faire ensuite).
Sur Mac, vous pouvez utiliser XAMPP (ou autre équivalent) ou bien installer chacun des 3 éléments séparément soit via MacPort (ou HomeBrew) soit en téléchargeant le paquet binaire Mac correspondant à chaque élément.
Voici la démarche à suivre sur Linux :
1) Installation des prérequis¶
Exemple pour Cent OS 6.7 (fait en 2016) :
Mettre à jour le serveur:
$ sudo yum kernel (restart) $ sudo yum update
Pour installer Apache, MySQL & PHP 5.3 :
--> https://www.zerostopbits.com/how-to-install-apache-mysql-and-php-on-centos-6-7/
Pour mettre à jour PHP de la 5.3 à la 5.6
--> https://www.zerostopbits.com/how-to-upgrade-php-5-3-to-php-5-6-on-centos-6-7/
Mettre à jour Mysql (version 5.1 à 5.5):
$ sudo yum update
Exemple pour une distribution UBuntu 14.04.4 (fait en 2016) et 14.04.5 (Mai 2017) :
/!\ Par défaut, la version de php installée ici est php5.5. Si vous souhaitez installer la version 5.6, remplacez TOUS les "php5" par "php5.6", et si vous voulez la version 7.1, remplacez TOUS les "php5" par "php7.1" /!\
Pour commencer il faut mettre à jour les "repository" de apt :
$ sudo apt-get update && sudo apt-get upgrade
Installer un serveur web (Apache) :
$ sudo apt-get install apache2
Installer un serveur de base de données (MySQL):
$ sudo apt-get install mysql-server
Installer le langage PHP en version 5.5.9 minimum (5.6 recommandé)
$ sudo apt-get install php5 php-pear
$ sudo apt-get install php5-mysql
Installer phpmyadmin et le configurer
$ sudo apt-get install phpmyadmin
$ sudo dpkg-reconfigure -plow phpmyadmin
/!\ Lorsque vous aurez l'écran suivant, n'oubliez pas d'appuyer sur la touche "espace" avant la touche "entrée" /!\
Afin d'avoir cela :
Si, en visitant http://localhost/phpmyadmin/ vous avez l'erreur "The mcrypt extension is missing. Please check your PHP configuration.", executez les commades suivantes :
$ sudo apt-get install php5-mcrypt $ sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available $ sudo php5enmod mcrypt $ sudo service apache2 restart
Exemple pour une distribution Fedora 20+ (fait en avril 2017) :
Pour commencer il faut mettre à jour l'OS :
$ sudo dnf update dnf $ sudo dnf update kernel $ sudo dnf update
Installer git:
$ sudo dnf install git
Installer php :
$ sudo dnf install php $ sudo dnf install php-mysql
Installer un serveur web (Apache) :
$ sudo dnf install httpd $ sudo systemctl enable httpd (ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service') $ sudo systemctl start httpd
Installer un serveur de base de données (MySQL):
$ sudo dnf install mariadb mariadb-server -y $ sudo systemctl enable mariadb (ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service') $ sudo systemctl start mariadb $ sudo mysql_secure_installation
(OPTIONNEL) Installer phpmyadmin (par defaut accessible uniquement depuis localhost), utile pour gérer plus facilement la BD :
$ sudo dnf install phpmyadmin $ sudo systemctl restart httpd Pour Ubuntu: sudo apt-get php5-mcrypt sudo apt-get install phpmyadmin Pensez à activer l'extension mcrypt : sudo php5enmod mcrypt
2) Configuration des prérequis¶
- Configuration du serveur web (Apache)
Ces configurations sont nécessaires sur Ubuntu, mais pas forcément sur CentOS/Fedora :
- KeepAlive:
Editer le fichier de configuration du serveur web (/etc/apache2/apache2.conf sur Ubuntu, /etc/httpd/conf/http.conf sur CentOS/Fedora) et mettre le paramêtre "KeepAlive" à "Off" :KeepAlive Off
- event et prefork modules:
Par défaut Apache utilise un "event module" et PHP un "prefork module".
Il faut désactiver le 1er module et activer le second :sudo a2dismod mpm_event sudo a2enmod mpm_prefork
- Activer le mode rewrite de Apache:
sudo a2enmod rewrite
- Autoriser les fichiers .htaccess sur le site :
(cf http://book.cakephp.org/3.0/fr/installation.html#url-rewriting)
Allez dans le fichier /etc/apache2/apache2.conf (ou httpd.conf sur CentOS), vérifier que la propriété 'AllowOverride' soit à la valeur 'All' pour le dossier Labinvent :<Directory /var/www/html/labinvent> Options FollowSymLinks AllowOverride All </Directory>
NB : Si Labinvent n'est pas dans le repertoire des sites webs :
- faire un lien dans le dossier web racine de Apache (/var/www/html/) vers le repertoire d'installation de Labinvent
- sinon, vous pouvez tenter de mettre son chemin absolu :<Directory /chemin/abosolu/vers/labinvent>
NB: Une autre solution plus "propre" consisterait à créer un virtual host dédié pour Labinvent, sur un port 808x (8081, 8082, ...)
(TODO: mettre ici un exemple de config)
- Redémarrer Apache
- Configuration de Php
- Extension PHP "intl":
Vérifier qu'elle est activée dans le php.ini:php --ini|grep intl Sinon, l'ajouter dans le php.ini: extension=intl.so
Vérifier qu'elle est bien installée :$ php -m| grep intl (ça devrait retourner "intl") Sinon, l'installer Ubuntu: $ sudo apt-get install php5-intl CentOS: $ sudo yum install php-intl MacOS avec XAMPP: cf http://stackoverflow.com/questions/27886117/php-intl-installation-on-xampp Il se pourrait que vous ayez besoin de ré-exécuter l'installeur de XAMPP afin de cocher l'option "XAMPP Developer Files", si vous ne l'aviez pas déjà fait lors de votre installation de XAMPP cd /Applications/XAMPP/bin sudo ./pecl install intl (Vérifier qu'elle a bien été installée dans /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/)
- Dossier de log (optionnel):
Dans le fichier /etc/php5/apache2/php.ini (ou /etc/php.ini sur CentOS), vous devez positionner votre répertoire de log :error_reporting = E_ALL error_log = /var/log/php/error.log max_input_time = 30
Ensuite il vous faudra peut-être créer le dossier en question et donner à Apache les droits sur ce dossier (www-data pour Ubuntu, apache pour CentOS...):sudo mkdir /var/log/php sudo chown www-data /var/log/php
- Recharger la configuration du serveur Web
$ sudo service httpd reload (CentOS: $ sudo systemctl reload httpd)
- Extension PHP "intl":
B/ Installation du logiciel LabInvent¶
cd install/ ./installation.sh
(vous pourriez éventuellement le faire en tant qu'administrateur "root", mais ça n'est pas nécessaire, le script fera quelques petits "sudo" seulement au besoin).
(Conseil : à la plupart des questions, laissez les réponses par défaut)
C/ TESTS¶
- Verifiez que la BD d'inventaire ($bddName) à bien été créée (avec phpmyadmin par exemple).
- Verifiez que les tests passent, placez vous à la racine du projet, exécutez la commande 'vendor/bin/phpunit'. Si la commande ne fonctionne pas, essayez 'vendor/phpunit/phpunit/phpunit'.
D/ CONFIGURATION DU SITE WEB¶
Le site est maintenant installé, il vous faut maintenant le configurer.
Si vous voulez le conserver, le script de creation de la BD est database/build.sql.
Votre fichier de configuration app.php (s'il existait) a été écrasé, mais il a été sauvegardé dans app.php.ORIG.
- Tester l'accès web à l'application : http://localhost/labinvent/
Vous devriez arriver par défaut sur une page correspondant au mode install, elle vous indique la bonne configuration de l'application et de ses dépendances.
Vérifier simplement (point vert) si votre base de données est bien reliée à votre application, si les droits donnés aux dossiers temporaires sont suffisants, et si toutes les extensions sont bien intallées...
(La page affichera un message si l'URL-Rewriting ne fonctionne pas correctement).
Si tout est au vert, passez à l'étape suivante (D/ Configuration de l'application).
S'il y a des points rouges, reportez-vous ci-dessous à l'extension qui pose problème, pour l'installer ou la configurer:
- Extension PHP "mbstring" et librairie "zlib"
La collection de librairies est normalement déja installée avec PHP en tant que dépendance, sinon faire :sudo apt-get install libapache2-mod-php5
=> Redémarrer votre serveur et vérifier que la ligne correspondant à l'extension soit passée au vert.
- Librairie PHP "php-gd"
sudo apt-get install php5-gd
=> Redémarrer votre serveur et vérifier que la ligne correspondant à l'extension soit passée au vert.
Si ce n'est toujours pas le cas, aller dans le fichier /etc/php5/apache2/php.ini :
Vérifier que la ligne suivante est présente et décommentée (absence de ";" devant la ligne) sinon il faut la rajouter :extension=gd.so
- Redémarrer votre serveur Web et vérifier que la ligne correspondant à l'extension manquante soit passée au vert.
sudo service apache2 restart (ou simplement le recharger: utiliser "reload" au lieu de "restart")
- URL-Rewriting
Il est possible que le mode rewrite ne fonctionne pas correctement si les fichiers .htaccess dans la racine et dans webroot disparaissent. Sur certains systèmes les fichiers commençant par un point peuvent disparaitre lors d'une copie. Si c'est le cas pour vous, voici le contenu de ces deux fichiers et leurs emplacements :Fichier ./.htaccess : <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule> Fichier ./webroot/.htaccess : <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
E/ CONFIGURATION DU LOGICIEL D'INVENTAIRE¶
- Depuis la page web de configuration "Configurer votre Labinvent", cliquez sur le lien "Editer la configuration générale" (en bas à gauche) pour configurer le logiciel, puis cliquez sur "Valider".
- Maintenant, sortez du "mode installation" en cliquant sur le bouton "Stopper le mode installation"
- Allez dans le dossier config à la racine du projet, et ouvrez le fichier config/app.php
Allez à la ligne 12 : 'debug' => filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN), Et remplacer le true par false : 'debug' => filter_var(env('DEBUG', false), FILTER_VALIDATE_BOOLEAN),
- Connectez-vous à l'aide du login utilisateur créé lors de la création de la base, SANS mot de passe (ou bien avec le mot de passe "login")
NB : Les autres comptes utilisateurs que le script d'installation aura créé auront tous le même mot de passe par défaut : "login"
- Si vous n'avez pas configuré l'application avec le mode install
Dans le menu latéral, cliquez sur le lien "Outils", puis sur "Configuration générale de l'application".
Sur cette page vous pouvez voir la configuration de votre application (nom, mode, ...) et l'éditer.
- Ensuite retournez dans la liste des outils et cliquez sur "Gérer le contenu variable de l'application".
- Sur cette page vous aurez accès à toutes les données statiques communes aux matériels (catégories, groupes métier et techniques, types de suivi, ...). Vous pouvez en ajouter, en supprimer ou les éditer..
F/ Gestion de l'authentification des utilisateurs via un annuaire LDAP¶
Labinvent peut être utilisé avec un annuaire LDAP. Si c'est ce que vous voulez, ceci vous concerne :
- Une fois la connexion au LDAP configurée (configuration générale de l'application), toute personne enregistrée dans l'annuaire LDAP peut désormais se connecter au logiciel.
- Par défaut, un utilisateur provenant du LDAP a un statut de simple "utilisateur". Pour lui attribuer un rôle supérieur (privilégié), il faut aller dans "Gérer les utilisateurs privilégiés" du menu "Outils" pour l'y ajouter (liste déroulante des utilisateurs du LDAP), en lui attribuant un rôle.
G/ Configuration de l'envoi des emails¶
- En tant que SuperAdministrateur, aller dans "Outils" -> "Configuration générale de l'application", cliquez sur "Editer la configuration" et décocher "Ne pas envoyer les mails de management en local".
- L'envoi de mail est réalisé grâce à une adresse qu'il faut créer pour labinvent. Le protocole d'envoi est à définir dans app.php selon le serveur choisi. Lors de l'envoi d'un mail il faut utiliser le transport 'dev' en local.
- Pour changer de mail et de transport, il faut aller dans la section Email/Transport de app.php, et vérifier/adapter a votre convenance le bloc suivant :
'EmailTransport' => [ 'default' => [ 'className' => 'Mail', // The following keys are used in SMTP transports 'host' => 'localhost', 'port' => 25, 'timeout' => 30, 'username' => 'user', 'password' => 'secret', 'client' => null, 'tls' => null, 'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null), ], ...
H/ Etiquettes¶
Si la fonction d'impression d'étiquettes (ruban) de LabInvent vous intéresse, voici ce que vous devez faire
1) Etiqueteuse
Vous devez acheter une étiqueteuse "Imprimante d'étiquettes - Dymo - LabelManager PnP - USB" et la brancher sur le port USB d'un poste Windows ou Mac (pas de driver pour linux).
Lien chez le constructeur DYMO
Pas de logiciel ni de pilote à installer. Le logiciel intégré s’ouvre à l’écran, prêt à l’emploi. Garantie 2 ans. Fonctionne avec les rubans D1 6, 9 et 12 mm. Petite et compacte, elle trouve facilement sa place sur un bureau. Batterie lithium-ion fournie, rechargeable par USB - pas d’adaptateur secteur ni de piles. Personnalisez vos étiquettes avec les polices et graphiques de votre ordinateur. Connectez-là à votre PC ou Mac et imprimez instantanément et très facilement des étiquettes professionnelles ! Connexion USB à votre PC ou Mac.
2) Installation du logiciel DLS
Pour pouvoir utiliser cette étiqueteuse (à ruban) avec le logiciel LabInvent, vous devez installer le logiciel DLS (DYMO LABEL SOFTWARE)
La dernière version testée sur LabInvent est la 8.6.1
Page de téléchargement du logiciel
3) Activation de la fonction d'impression sur LabInvent
Pour pouvoir étiqueter vos matériels, vous devez cocher "Imprimante disponible" dans la section "Divers" de la page de configuration générale (Outils/Configuration générale de l'application)
Utilisation du logiciel¶
Depuis le site web de Labinvent, cliquez sur "Accueil", et ouvrez le "Guide d'utilisation" (pdf)
(Vous pouvez aussi aller à la page wiki "Utilisation" Documentation_utilisateurs)
MISE A JOUR du logiciel¶
1) Mettre à jour le code
Aller sur la racine du projet et exécuter :
$ git pull
2) [Seulement si nécessaire] Mettre à jour la base de données
Aller dans le dossier database/update/
Exécuter tous les scripts qui sont d'une date postérieure à la date de votre version du logiciel (sur la page d'accueil en bas à droite).
Attention, il faut les exécuter dans l'ordre chronologique, un par un
Exemple:
Placez vous dans ./database/update et éxécutez les commandes correspondantes : ./db-update-2016-06-03.sh ./db-update-2016-06-06.sh ./db-update-2016-06-07.shRemarques :
- Le fichier README-LABINVENT.md contient la liste des mises à jour.
MODE PANIQUE¶
Vous avez changé la configuration du LDAP et elle ne fonctionne plus !
Du coup, vous ne pouvez plus vous connecter au site !
Pas de panique, le mode panique est là !
Il suffit de repasser le logiciel en mode INSTALL pour pouvoir y accéder sans connexion.
Pour cela, exécuter le script mode_panique.sh qui se trouve dans le dossier database/ :
./mode_panique.sh
(
Si vous préférez, vous pouvez aussi exécuter manuellement la requête sql set_mode_install.sql qui se trouve dans le même dossier:
mysql -u login -p labinvent2 < set_mode_install.sql
Remplacer 'login' par le 'username' défini dans votre fichier config/app.php dans la section Datasources (default)
Remplacer 'labinvent2' par le 'database' défini au même endroit
Ou bien exécuter cette requête depuis phpmyadmin
)