Advertisement
Guest User

Untitled

a guest
Mar 31st, 2019
475
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.57 KB | None | 0 0
  1. # Manuel d'installation de Gigaplanning
  2. Ce manuel et le script d'installation ont été rédigés pour être exécutés sous Debian 9.
  3. La partie concernant la compilation du programme se trouve en bas, dans la partie **Utilisation du logiciel**
  4.  
  5. # Pré-requis
  6. Un serveur SMTP pour l'envoi de mails
  7. Au moins un serveur pour accueillir le gestionnaire de base de données et le serveur web, sous Debian. Cependant, ces il est possible de mettre le gestionnaires de base de données et le serveur web sur deux serveurs différents en suivant l'installation manuelle.
  8.  
  9. # Installation automatique
  10. Si vous souhaitez installer les serveurs de base de donnée et le serveur d'accès au web sur le même serveur, vous pouvez utiliser le script d'installation fournit. Cependant il est recommandé de suivre les instructions ci-dessous pour bénéficier d'une installation plus personnalisée.
  11. Ce script doit être exécuté en mode super-utilisateur. Une fois lancé, il vous demandera quelques informations au sujet du gestionnaire de base de données et du serveur SMTP. Une fois les données entrées, le script se chargera d'installer les dépendences nécessaires et de configurer les différents outils.
  12.  
  13. **ATTENTION** Tout le contenu de /var/www/html sera supprimé en utilisant ce script. Si il y a des fichiers dedans, veillez à les sauvegarder.
  14.  
  15. # Installation manuelle
  16. L'ensemble des commandes qui suivent doivent être exécutées en mode super utilisateur. Toutes les ressources nécessaires à la mise en place des serveurs et du logiciel sont disponibles dans le dossier ressources.
  17. Les mots de passe de la base de donnée peuvent contenir n'importe quel caractère à part '":/@ car ces derniers peuvent causer des problèmes avec Symfony ou les requêtes SQL de création d'utilisateur.
  18.  
  19. ## Installation de MySQL
  20. Toutes les commandes dans cette sections seront à exécuter sur le serveur censé héberger la base de données. Par défaut toutes les commandes sont exécutées de façon à rendre l'accès à la base de données en utilisant le client lourd possible depuis n'importe quel ordinateur. Il est cependant possible de modifier les commandes afin de restreindre l'accès à un réseau privé.
  21.  
  22. Si MySQL n'est pas installé sur le serveur, il faut l'installer à l'aide de la commande suivante :
  23. apt-get install mysql-server
  24.  
  25. Vous pouvez ensuite ouvrir mysql en entrant la commande mysql.
  26.  
  27. ### Création de la base de donnée
  28. Entrez la commande suivante afin de créer la base de donnée de gigaplanning :
  29. CREATE DATABASE gigaplanning;
  30.  
  31. ### Ajout de l'accès depuis le web
  32. Remplacer password par le mot de passe nécessaire à accéder à la base (vous n'aurez pas besoin d'utiliser ce mot de passe plus tard, il est donc fortement recommandé de choisir un mot de passe compliqué). Pour plus de sécurité, vous pouvez remplacer le % par l'adresse IP du serveur sur lequel le site web sera hébergé (localhost si le serveur web se situe sur la même machine que la base de donnée), ainsi, seul ce serveur pourra se connexer avec l'utilisateur web.
  33. CREATE USER 'web'@'%' IDENTIFIED BY 'password';
  34. GRANT SELECT ON gigaplanning.* TO 'web'@'%';
  35. GRANT ALL PRIVILEGES ON gigaplanning.User TO 'web'@'%';
  36. FLUSH PRIVILEGES;
  37.  
  38. ### Ajout de l'accès pour le client lourd
  39. Le % permet de laisser l'accès à n'importe quelle machine. Si vous voulez restreindre l'accès au logiciel afin qu'il soit accessible uniquement depuis votre établissement, il faut remplacer le caractère % par l'ip du sous-réseau autorisé à accéder au serveur de base de donnée.
  40. Remplacer password par le mot de passe nécessaire à accéder à la base (ce mot de passe sera présent dans les fichiers de configuration du client lourd mais l'utilisateur n'aura pas besoin de l'entrer à chaque utilisation, il est donc fortement recommandé de choisir un mot de passe compliqué, il ne doit pas contenir de ', [CARACTERES DANS LA CHAINE DE connexION]).
  41. CREATE USER 'client'@'%' IDENTIFIED BY 'password';
  42. GRANT ALL PRIVILEGES ON gigaplanning.* TO 'client'@'%';
  43. FLUSH PRIVILEGES;
  44.  
  45. ### Configuration du pare-feu
  46. Quittez maintenant mysql (commande exit).
  47. Pour permettre au serveur web et aux clients lourds de se connexer au serveur de base de donnée, il faut autoriser les connexions entrantes sur le port 3306 en entrant les deux commandes qui suivent :
  48. iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
  49. iptables-save
  50.  
  51. Maintenant que le pare-feu autorise les connexions entrantes sur le port 3306, il faut dire à mysql d'autoriser les connexions venant de l'exterieur, ce qu'il ne fait pas par défaut :
  52. find /etc/mysql -type f -exec sed -i 's/127.0.0.1/0.0.0.0/g' {} \;
  53. service mysql restart
  54.  
  55. ### Import de la base de donnée
  56. Un script permettant de créer la structure de la base de donnée est disponible dans le dossier où se trouve l'exécutable.
  57.  
  58. #### Depuis le serveur
  59. Assurez-vous d'avoir le fichier d'import (setup.sql) sur le serveur de base de donnée puis ositionnez vous dans le dossier où se trouve ce script et lancez la commande suivante :
  60. cat setup.sql > mysql
  61.  
  62. #### Depuis une autre machine
  63. Depuis une autre machine (cette machine doit avoir le droit de se connecter avec l'utilisateur client), remplacez IP par l'ip du serveur de base de donnée :
  64. mysql -h IP -u client -p < setup.sql
  65. Une fois la commande entrée, mysql va vous demander le mot de passe de l'utilisateur client, entrez le, et mysql va se charger de créer la structure de la base de donnée.
  66.  
  67. ### Réinitialisation de la base de donnée
  68. Si pour une quelquonque raison vous avez besoin de réinitialiser la base de donnée et donc supprimer toutes les données du logiciel, vous pouvez vous connecter sur le serveur de base de donnée et entrer les commandes suivantes :
  69. mysql
  70. DROP DATABASE gigaplanning;
  71. CREATE DATABASE gigaplanning;
  72.  
  73. Puis quitter le logiciel avec la commande exit. Il ne reste plus qu'à réimporter la base de donnée (voir section **Import de la base de donnée**) pour pouvoir utiliser Gigaplanning.
  74.  
  75. ## Déploiement du site web
  76. Toutes les commandes citées ci-dessous seront à exécuter sur le serveur hébergeant la partie web de Gigaplanning.
  77.  
  78. ### Installation de PHP
  79. Les commandes suivantes vous permettront d'installer Nginx qui est un logiciel de serveur web permettant de rendre public la partie web en toute sécurité, PHP qui permet d'interpréter le code du site, ainsi que les extensions nécessaires au fonctionnement des deux logiciels cités précédemment :
  80. apt install ca-certificates apt-transport-https
  81. wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
  82. echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/php.list
  83. apt-get update
  84. apt-get install nginx php7.2 php7.2-fpm php7.2-cli php7.2-common php7.2-opcache php7.2-curl php7.2-mbstring php7.2-mysql php7.2-zip php7.2-xml
  85.  
  86. ### Installation de composer
  87. Les commandes suivantes vous permettront d'installer Composer, un outil de gestion de dépendances utilisé par notre site web. Nous l'utiliseront afin d'initialiser le site.
  88. php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
  89. php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
  90. php composer-setup.php
  91. php -r "unlink('composer-setup.php');"
  92. mv composer.phar /usr/bin/composer
  93.  
  94. ### Mise en place du serveur web
  95. Nous allons maintenant mettre en place le serveur web. Pour cela, nous avons préparé un fichier de configuration basique permettant de configurer Nginx afin d'accueillir le site web GigaPlanning. Remplacez le contenu du fichier /etc/nginx/sites-available/default par le fichier nginx.txt fourni avec ce manuel. Il ne reste plus qu'à exécuter la commande suivante pour redémarrer Nginx :
  96. service nginx reload
  97.  
  98. Il vous faut désormais envoyer le dossier web sur le serveur web. Ce dossier contient tous les fichiers nécessaires au bon fonctionnement du site. Une fois le dossier envoyé sur le serveur, ouvrez ce dossier et lancez les commandes suivante afin de :
  99. mv * .env /var/www/html
  100. cd /var/www/html
  101. composer install --no-dev #Initialise symfony
  102.  
  103. ### Configuration du site web
  104. Ouvrez le fichier .env situé dans /var/www/html, il faudra y apporter deux modifications :
  105. La ligne qui commence par DATABASE_URL doit contenir les informations de la base de donnée sous cette forme : mysql://UTILISATEUR:MDP@URL:PORT/BASE
  106. UTILISATEUR est client (sauf si vous l'avez modifié précédemment)
  107. MDP est le mot de passe que vous avez défini pour l'utilisateur client
  108. URL est l'adresse du serveur de base de donnée (127.0.0.1 si le serveur web et celui de base de donnée sont sur le même serveur)
  109. PORT est le port de MySQL (par défaut 3306)
  110. BASE est la base de donnée utilisée, ici gigaplanning
  111.  
  112. Laligne qui commence par MAILER_URL doit contenir les informations du serveur SMTP sous cette forme : smtp://URL:PORT?encryption=ssl&auth_mode=login&username=UTILISATEUR&password=MDP
  113. UTILISATEUR est l'adresse mail à utiliser
  114. MDP est le mot de passe de cet utilisateur
  115. URL est l'adresse du serveur SMTP
  116. PORT est le port du serveur SMTP
  117.  
  118. ### Configuration du pare-feu
  119. Il ne reste plus qu'à configurer le pare-feu afin d'autoriser les connexions entrantes sur les ports 80 et 443 (http et https) avec les trois commandes suivantes :
  120. iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
  121. iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
  122. iptables-save
  123.  
  124. Vous pouvez désormais essayer de vous connecter au site web en entrant l'adresse du site dans votre barre d'URL.
  125.  
  126. ## Utilisation du logiciel
  127. Les commandes dans cette partie sont à exécuter sur votre ordinateur.
  128.  
  129. ### Installation du JDK
  130. Avant de pouvoir utiliser le logiciel, il faut le compiler. Pour cela, il est nécessaire d'installer Java 8 (ou une version supérieure) sur votre ordinateur.
  131. Si vous êtes sous Debian ou Ubuntu, la solution la plus simple est d'exécuter les commandes suivantes :
  132. apt-get install software-properties-common
  133. add-apt-repository "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main"
  134. apt-get update
  135. apt-get install oracle-java8-installer
  136.  
  137. Sous Windows, MacOS ou autre, vous pouvez télécharger les fichiers d'installation situés ici : https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html et suivre les instructions.
  138.  
  139. ### Compilation
  140. Il est désormais possible de compiler le projet. La prochaine commande va créer un fichier .jar exécutable que vous pourrez distribuer aux enseignants et aux DDE.
  141. Placez vous dans le dossier logiciel et exécutez les commandes suivantes :
  142. ./gradlew jfxJar
  143. mv build/app/ ../
  144. cd ../app
  145.  
  146. Il y a désormais un dossier app contenant tous les fichiers nécessaires à l'utilisation du programme.
  147.  
  148. ### Exécution du programme
  149. Vous avez désormais tous les fichiers requis pour lancer le programme. Assurez-vous de vous trouver dans le dossier contenant gigaplanning.jar et config.properties, puis lancez la commande suivante :
  150. java -jar gigaplanning.jar
  151.  
  152. Afin de fonctionner correctement et pouvoir accéder à la base de donnée et envoyer des mails, le programme a besoin d'avoir accès en lecture et écriture sur la base de donnée et un accès à un serveur SMTP. C'est à cela que sert l'utilisateur client que l'on a créé précédemment sur la base de donnée.
  153. Lors de la première utilisation (si le fichier config.properties n'existe pas), une fenêtre va s'ouvrir et va vous demander d'entrer toutes les informations nécessaires. Ce sont les mêmes que ce qui vous a été demandé lors de la configuration du site web.
  154.  
  155. Une fois la configuration terminée, un fichier config.properties sera généré avec les informations que vous avez entré dedans, voici un example de fichier config.properties:
  156. db_ip=example.com
  157. db_base=gigaplanning
  158. db_port=3306
  159. db_username=client
  160. db_password=mdp
  161. smtp_url=smtp.example.com
  162. smtp_port=587
  163. smtp_username=mail@example.com
  164. smtp_password=mdp
  165.  
  166. Après cette étape de configuration, une nouvelle fenêtre vous demandant de créer un compte administrateur va s'ouvrir, remplissez les différents champs, validez et vous pouvez commencer à utiliser Gigaplanning !
  167.  
  168. ### Distribuer le programme
  169. Lorsque vous installerez Gigaplanning sur les ordinateurs des différents enseignants, il est nécessaire d'avoir le dossier libs, l'exécutable gigaplanning.jar et le fichier config.properties dans le même dossier. Tout ces fichiers se trouvent dans le dossier app que nous venont de générer, il est donc conseillé de distribuer ce dossier.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement