One place for hosting & domains

      Comment installer une pile ERPNext sur Ubuntu 18.04


      L’auteur a choisi Software in the Public Interest pour recevoir un don dans le cadre du programme Write for DOnations.

      Introduction

      ERPNext est une suite de planification des ressources d’entreprise (ERP) qui tire parti de la puissance et de la flexibilité des technologies open-source. Elle excelle dans la gestion des processus opérationnels de base tels que la finance, les ventes, les ressources humaines, la fabrication, les achats, les services, les besoins du helpdesk, et plus encore. Parmi les avantages de la mise en œuvre d’un système comme ERPNext, on peut citer :

      • Une meilleure productivité en automatisant les processus commerciaux répétitifs
      • Une amélioration de l’efficacité informatique en partageant une base de données pour tous les départements de la société
      • Une meilleure prise de décisions grâce à une vision intégrale de la relation entre les unités commerciales

      ERPNext repose sur Frappe, un cadre d’application web full-stack écrit en Python qui tire pleinement parti de l’environnement d’exécution Node/JavaScript et utilise MariaDB comme backend de base de données. L’un des nombreux avantages des applications reposant sur Frappe, comme ERPNext, est l’utilitaire de ligne de commande bench. L’ILC bench permet aux administrateurs de gagner du temps en automatisant des tâches telles que l’installation, la mise à jour, la configuration et la gestion de plusieurs sites Frappe/ERPNext.

      Dans ce tutoriel, vous installerez et configurez une pile ERPNext sur un serveur tournant sous Ubuntu 18.04. Cela vous permettra de configurer votre pile pour divers environnements de développement ou de production en fonction de vos besoins, et cela vous préparera à construire une architecture plus complexe et tolérante aux défauts.

      Conditions préalables

      Note : Lorsque vous choisissez les spécifications de votre serveur, n’oubliez pas que les systèmes ERP sont gourmands en ressources. Ce guide préconise un serveur de 4 Go de RAM, ce qui est suffisant pour les cas d’utilisation de base, mais les exigences matérielles spécifiques peuvent varier en fonction du nombre d’utilisateurs et de la taille de votre entreprise.

      • Un nom de domaine entièrement enregistré avec un enregistrement A pointant vers votre serveur. Si vous utilisez un droplet DigitalOcean, vous pouvez suivre ce guide pour configurer correctement votre DNS. Ce tutoriel utilisera your_domain.

      Étape 1 — Configuration du pare-feu

      Bien que la configuration d’un pare-feu pour le développement soit facultative, pour la production il s’agit d’une pratique de sécurité obligatoire.

      Vous devrez ouvrir les ports suivants sur votre serveur ERPNext :

      • 80/tcp et 443/tcp pour HTTP et HTTPS, respectivement
      • 3306/tcp pour la connexion à MariaDB (recommandé uniquement si vous avez besoin d’un accès à la base de données à distance)
      • 143/tcp et 25/tcp pour IMAP et STMP, respectivement
      • 22/tcp pour SSH (si vous n’avez pas encore activé OpenSSH)
      • 8000/tcp pour les tests de développement avant de déployer votre site

      Pour ouvrir plusieurs ports à la fois, vous pouvez utiliser la commande suivante :

      • sudo ufw allow 22,25,143,80,443,3306,8000/tcp

      Vous pouvez également autoriser des connexions à partir d’adresses IP spécifiques sur des ports spécifiques en utilisant cette commande :

      • sudo ufw allow from server_IP to any port port_number

      Après avoir ouvert tous les ports nécessaires, activez le pare-feu :

      Après avoir activé le pare-feu, confirmez l’état de vos ports ouverts :

      Pour plus d’informations concernant la configuration du pare-feu, veuillez lire notre guide Comment configurer un pare-feu avec UFW sur Ubuntu 18.04.

      La mise en place d’un pare-feu approprié est la première des deux étapes préliminaires. Vous allez maintenant configurer le mappage du clavier et l’encodage des caractères sur votre serveur.

      Étape 2 — Configuration des sites

      Il est fortement recommandé de configurer le mappage du clavier pour la console ainsi que la langue et l’encodage des caractères sur votre hôte. Ceci est nécessaire pour éviter les problèmes éventuels lors du processus d’installation d’ERPNext 12. Remarquez que cette configuration n’a rien à voir avec la langue de l’interface utilisateur sur votre plateforme ERPNext actuelle, mais avec la configuration locale du système.

      Tout d’abord, mettez à jour votre serveur :

      Configurez maintenant le keymap, la langue et l’encodage des caractères :

      • sudo localectl set-keymap us && sudo localectl set-locale LANG=en_US.utf8

      L’utilitaire localectl est utilisé par Ubuntu 18.04 et d’autres distributions Linux pour contrôler et modifier les paramètres locaux et la disposition du clavier à l’échelle du système, avant que l’utilisateur ne se connecte, ce qui est exactement ce dont ERPNext 12 a besoin.

      Vous devrez également ajouter les lignes suivantes à votre fichier /etc/environment. Utilisez nano ou votre éditeur de texte préféré pour ouvrir le fichier :

      • sudo nano /etc/environment

      Maintenant ajoutez le contenu suivant :

      /etc/environment

      LC_ALL=en_US.UTF-8
      LC_CTYPE=en_US.UTF-8
      LANG=en_US.UTF-8
      

      Enregistrez et fermez le fichier.

      Redémarrez votre serveur pour appliquer tous les changements :

      Patientez quelques minutes pendant que votre serveur redémarre, puis réintégrez le ssh. Vous êtes maintenant prêt à installer votre base de données.

      Étape 3 — Installation de MariaDB 10.4

      Vous allez maintenant ajouter MariaDB à la pile de votre serveur. ERPNext 12 requiert MariaDB 10.2+, mais la version incluse dans le dépôt officiel d’Ubuntu 18.04 est 10.1, ce qui signifie que vous devrez installer une version supérieure. Pour les besoins de ce guide, vous utiliserez la dernière version stable de MariaDB, qui, au moment de la rédaction de ce document, est la version 10.4.

      Pour installer MariaDB 10.4 sur Ubuntu 18.04, vous devrez ajouter la clé de signature et le dépôt appropriés. Vous pouvez trouver ces informations sur l’assistant de dépôt de la Fondation MariaDB. Pour visualiser la page, collez cette URL dans votre navigateur web. Maintenant, sous 1. Choose a Distro, cliquez sur Ubuntu. Une deuxième colonne intitulée 2. Choose a Release (Choisir une version) apparaîtra. Sous ce titre, cliquez sur 18.04 LTS “bionic”. Une troisième colonne intitulée 3.Choose a Version apparaîtra alors. Sous ce titre, cliquez sur 10.4 stable. Une quatrième colonne intitulée 4.Choose a Mirror apparaîtra alors. Choisissez un miroir en fonction de votre emplacement, puis MariaDB remplira les commandes appropriées pour votre installation personnalisée.

      Assistant de dépôt MariaDB

      Exécutez les trois commandes remplies, ce qui ajoutera correctement le dépôt et la clé MariaDB. Vos propres commandes ressembleront à ceci :

      • sudo apt-get install software-properties-common && sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' && sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.klaus-uwe.me/mariadb/repo/10.4/ubuntu bionic main'

      Une fois que vous avez fini d’ajouter le référentiel, installez MariaDB :

      • sudo apt install mariadb-server

      Après avoir installé mariadb-server, installez les packages suivants :

      • sudo apt install libmysqlclient-dev python3-mysqldb

      ERPNext 12 est une application Python et nécessite donc la bibliothèque python3-mysqldb pour la gestion de la base de données. Concernant libmysqlclient-dev, mariadb-client, et libmariadbclient18 : ces paquets permettent aux utilisateurs de communiquer avec le service MariaDB. ntpdate et libdate-manip-perl sont utilisés par ERPNext pour la synchronisation horaire du serveur.

      Ensuite, ajoutez une couche de sécurité basique supplémentaire au serveur MariaDB en exécutant le script mysql_secure_installation :

      • sudo mysql_secure_installation

      Le script mysql_secure_installation vous posera plusieurs questions :

      • La première invite vous demandera le mot de passe root, mais comme aucun de mot de passe n’a été configuré, appuyez sur ENTER.
      • Ensuite, vous devrez décider d’utiliser ou non l’authentification Unix. Répondez Y pour accepter cette méthode d’authentification.
      • Lorsqu’il vous sera demandé de modifier le mot de passe root de MariaDB, répondez N. L’utilisation du mot de passe par défaut avec l’authentification Unix est la configuration recommandée pour les systèmes basés sur Ubuntu, car le compte root est étroitement lié aux tâches de maintenance automatisées du système.
      • Les questions restantes concernent la suppression de l’utilisateur anonyme de la base de données, la restriction du compte root pour vous connecter à distance sur localhost, la suppression de la base de données de test et le rechargement des tables de privilèges. Vous pouvez répondre Y à toutes ces questions en toute sécurité.

      Après avoir terminé le script mysql_secure_installation, MariaDB commencera à fonctionner en utilisant sa configuration par défaut. L’installation standard ERPNext utilise le root user de MariaDB, pour toutes les opérations de la base de données. Bien que cette approche soit pratique sur les configurations de serveur unique, elle n’est pas considérée comme une bonne pratique en matière de sécurité. Par conséquent, dans la section suivante, vous apprendrez à éviter ce problème en créant un nouvel utilisateur avec des privilèges spéciaux.

      Création d’un Super utilisateur admin de MariaDB

      ERPNext prévoit d’utiliser le root user de MariaDB pour gérer les connexions aux bases de données, mais ce n’est pas toujours idéal. Pour contourner cette limitation et laisser un utilisateur non-root gérer MariaDB, vous allez maintenant créer manuellement une base de données portant le nom de l’utilisateur. Ensuite, vous serez en mesure d’attribuer des privilèges spéciaux au nouvel utilisateur pour conduire les opérations de la base de données d’ERPNext.

      Ouvrez l’invite MariaDB :

      Créez maintenant une nouvelle base de données nommée d’après l’utilisateur que vous souhaitez affecter aux connexions MariaDB. Ce tutoriel utilisera sammy mais vous êtes libre de choisir votre propre nom :

      Confirmez que la base de données a été créée en utilisant cette instruction SQL :

      Vous obtiendrez une sortie semblable à ceci :

      Output

      +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sammy | +--------------------+

      Créez maintenant l’utilisateur MariaDB sammy avec des privilèges similaires à root, puis donnez à l’utilisateur le mot de passe fort de votre choix. Conservez le mot de passe dans un endroit sûr, vous en aurez besoin plus tard :

      • GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'%' IDENTIFIED BY 'mariadb_password' WITH GRANT OPTION;

      Confirmez maintenant la création de l’utilisateur et les privilèges du nouvel utilisateur :

      • SELECT host, user, Super_priv FROM mysql.user;

      Vous verrez un résultat similaire à ce qui suit :

      Output

      +-----------+-------+------------+ | Host | User | Super_priv | +-----------+-------+------------+ | localhost | root | Y | | localhost | mysql | Y | | % | sammy | Y | +-----------+-------+------------+ 3 rows in set (0.001 sec)

      Maintenant videz les privilèges pour appliquer tous les changements :

      Une fois que vous avez terminé, quittez la session :

      Maintenant que vous avez créé un utilisateur de la base de données, il ne vous reste plus qu’à régler MariaDB pour vous assurer le fonctionnement correct d’ERPNext 12. Heureusement, l’équipe ERPNext fournit un excellent modèle de configuration que vous utiliserez comme point de départ pour votre implémentation. Dans la section suivante, vous apprendrez à configurer correctement la base de données MariaDB en utilisant ce modèle.

      Étape 4 — Configuration de MariaDB pour ERPNext

      Une fois MariaDB installé et sécurisé, il est temps de le mettre au point pour les connexions ERPNext.

      Tout d’abord, arrêtez mariadb.service :

      • sudo systemctl stop mariadb

      Utilisez maintenant nano ou votre éditeur de texte préféré pour créer un fichier de configuration MariaDB appelé settings.cnf :

      • sudo nano /etc/mysql/conf.d/settings.cnf

      Ajoutez maintenant le modèle de configuration d’ERPNext :

      /etc/mysql/conf.d/settings.cnf

      [mysqld]
      
      # GENERAL #
      user                           = mysql
      default-storage-engine         = InnoDB
      socket                         = /var/lib/mysql/mysql.sock
      pid-file                       = /var/lib/mysql/mysql.pid
      
      # MyISAM #
      key-buffer-size                = 32M
      myisam-recover                 = FORCE,BACKUP
      
      # SAFETY #
      max-allowed-packet             = 256M
      max-connect-errors             = 1000000
      innodb                         = FORCE
      
      # DATA STORAGE #
      datadir                        = /var/lib/mysql/
      
      # BINARY LOGGING #
      log-bin                        = /var/lib/mysql/mysql-bin
      expire-logs-days               = 14
      sync-binlog                    = 1
      
      # REPLICATION #
      server-id                      = 1
      
      # CACHES AND LIMITS #
      tmp-table-size                 = 32M
      max-heap-table-size            = 32M
      query-cache-type               = 0
      query-cache-size               = 0
      max-connections                = 500
      thread-cache-size              = 50
      open-files-limit               = 65535
      table-definition-cache         = 4096
      table-open-cache               = 10240
      
      # INNODB #
      innodb-flush-method            = O_DIRECT
      innodb-log-files-in-group      = 2
      innodb-log-file-size           = 512M
      innodb-flush-log-at-trx-commit = 1
      innodb-file-per-table          = 1
      innodb-buffer-pool-size        = 5462M
      innodb-file-format             = barracuda
      innodb-large-prefix            = 1
      collation-server               = utf8mb4_unicode_ci
      character-set-server           = utf8mb4
      character-set-client-handshake = FALSE
      max_allowed_packet             = 256M
      
      # LOGGING #
      log-error                      = /var/lib/mysql/mysql-error.log
      log-queries-not-using-indexes  = 0
      slow-query-log                 = 1
      slow-query-log-file            = /var/lib/mysql/mysql-slow.log
      
      [mysql]
      default-character-set = utf8mb4
      
      [mysqldump]
      max_allowed_packet=256M
      
      !includedir /etc/mysql/mariadb.conf.d/
      

      Enregistrez et fermez le fichier. Pour obtenir des informations plus détaillées sur ces configurations, consultez ce fichier modèle sur le référentiel Github d’ERPNext. C’est un point de départ utile pour explorer ces options.

      Ensuite, créez un autre fichier appelé erpnext.cnf :

      • sudo nano /etc/mysql/mariadb.conf.d/erpnext.cnf

      Ajoutez le contenu suivant au fichier :

      /etc/mysql/mariadb.conf.d/erpnext.cnf

      [mysqld]
      pid-file        = /var/run/mysqld/mysqld.pid
      socket          = /var/run/mysqld/mysqld.sock
      bind-address    = 0.0.0.0
      

      Le premier fichier,/etc/mysql/conf.d/settings.cnf, complète et remplace également quelques valeurs incluses dans la configuration par défaut de MariaDB située dans /etc/mysql/my.cnf. Ce fichier vous donne un modèle de conservation qui améliore considérablement les performances de la base de données pour ERPNext. N’oubliez pas toutefois que si ce modèle est un excellent point de départ, rien ne vous empêche d’améliorer encore plus les performances de MariaDB en ajustant ces paramètres à vos besoins.

      Le deuxième fichier, /etc/mysql/mariadb.conf.d/erpnext.cnf, permet également de remplacer certaines valeurs par des informations spécifiques concernant la connexion à votre base de données.

      Test de la connexion MariaDB

      Comme ERPNext dépend de la connexion à la base de données pour presque toutes ses opérations internes, il est bon de tester la connexion avant de continuer.

      Démarrez mariadb.service :

      • sudo systemctl start mariadb

      Pour tester la connexion, vous pouvez utiliser la commande suivante. N’oubliez pas de remplacer sammy et mariadb_password par vos propres identifiants :

      • mysql --user sammy --password mariadb_password --host=localhost --protocol=tcp --port=3306 test

      Vous verrez un résultat montrant le contenu de l’aide de base de MariaDB et plusieurs paramètres. Cela signifie que votre connexion a réussi :

      Output

      mysql Ver 15.1 Distrib 10.4.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Usage: mysql [OPTIONS] [database] Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf ... --ssl-verify-server-cert Verify server's "Common Name" in its cert against hostname used when connecting. This option is disabled by default. -t, --table Output in table format. --tee=name Append everything into outfile. See interactive help (h) also. Does not work in batch mode. Disable with --disable-tee. This option is disabled by default. -u, --user=name User for login if not current user. -U, --safe-updates Only allow UPDATE and DELETE that uses keys. -U, --i-am-a-dummy Synonym for option --safe-updates, -U. -v, --verbose Write more. (-v -v -v gives the table output format). ... max-join-size 1000000 secure-auth FALSE show-warnings FALSE plugin-dir (No default value) default-auth (No default value) binary-mode FALSE connect-expired-password FALSE

      Si vous devez apporter des ajustements aux paramètres de MariaDB ou corriger des erreurs, n’oubliez pas de recharger le service en utilisant la commande suivante :

      • sudo systemctl restart mariadb

      Une fois que vous avez terminé, activez MariaDB :

      • sudo systemctl enable mariadb

      Maintenant que vous avez testé la connexion à la base de données, vous pouvez continuer à installer votre application ERPNext.

      Étape 5 — Configuration ERPNext 12

      Maintenant que le backend de votre base de données est prêt, vous pouvez continuer à configurer votre application web ERPNext. Dans cette section, vous apprendrez à installer et configurer tous les composants requis par ERPNext 12, puis à installer l’application elle-même.

      Commencez par préparer le serveur avec tous les paquets système requis par ERPNext 12. Installez les dépendances dans tout le système en utilisant la commande suivante :

      • sudo DEBIAN_FRONTEND=noninteractive apt install -y curl build-essential mariadb-client python3-setuptools python3-dev libffi-dev python3-pip libcurl4 dnsmasq fontconfig git htop libcrypto++-dev libfreetype6-dev liblcms2-dev libwebp-dev libxext6 libxrender1 libxslt1-dev libxslt1.1 libffi-dev ntpdate postfix python3-dev python-tk screen vim xfonts-75dpi xfonts-base zlib1g-dev apt-transport-https libsasl2-dev libldap2-dev libcups2-dev pv libjpeg8-dev libtiff5-dev tcl8.6-dev tk8.6-dev libssl1.0-dev python3-mysqldb libdate-manip-perl logwatch

      La variable DEBIAN_FRONTEND=noninteractive a été transmise à la commande d’installation afin d’éviter les invites Postfix. Pour obtenir des informations détaillées sur la configuration de Postfix, lisez notre guide Comment installer et configurer Postfix sur Ubuntu 18.04

      Ensuite, mettez à jour pip3 et installez les dernières versions de trois modules Python supplémentaires requis par ERPNext :

      • sudo -H python3 -m pip install --upgrade setuptools cryptography psutil

      Maintenant que vous avez installé toutes les dépendances générales nécessaires, vous allez installer tous les services et les bibliothèques nécessaires à ERPNext 12.

      Configuration de Node.js et Yarn

      ERPNext 12 peut fonctionner avec la version 8+ de l’environnement serveur Node.js. En réalité, au moment de la rédaction de ce texte, le script officiel easy_install d’ERPNext utilise Node 8. Mais du point de vue de la sécurité, il est conseillé d’installer une version plus récente, car Node 8 a atteint sa fin de vie (EOL) en 2020 et ne bénéficiera donc plus de correctifs de sécurité. Pour les besoins de ce guide, la version 12 LTS de Node.js sera installée en même temps que les gestionnaires de paquets npm et yarn correspondants. Veuillez noter que le framework Frappe utilise yarn pour installer les dépendances. Si vous décidez d’utiliser une autre méthode d’installation, vérifiez que la version 1.12+ de yarn fonctionne sur votre système.

      Ajoutez le référentiel NodeSource à votre système :

      • curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh

      Vous pouvez maintenant inspecter le contenu du script téléchargé :

      • sudo nano nodesurce_setup.sh

      Une fois que vous êtes satisfait, vous pouvez exécuter le script :

      • sudo bash nodesource_setup.sh

      Ce script mettra à jour automatiquement la liste apt. Vous pouvez maintenant installer nodejs sur votre serveur :

      Ensuite, installez yarn globalement en utilisant le paquet npm inclus :

      Maintenant que vous avez installé Node, vous pouvez continuer à configurer wkhtmltopdf pour votre plate-forme.

      ERPNext utilise l’outil open source wkhtmltopdf pour convertir le contenu HTML en PDF, en utilisant le moteur de rendu Qt WebKit. Cette fonction est principalement utilisée pour l’impression de factures, de devis et d’autres rapports. Dans le cas d’ERPNext 12, une version spécifique de wkhtmltopdf est requise, 0.12.5 avec Qt patché.

      Pour installer wkhtmltopdf, commencez par passer à un répertoire approprié pour télécharger le paquet, dans ce cas /tmp :

      Téléchargez la version wkhtmltopdf appropriée et le paquet pour Ubuntu 18.04 depuis la page du projet :

      • wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb

      Installez maintenant le paquet en utilisant l’outil dpkg :

      • sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb

      Ensuite, copiez tous les exécutables pertinents dans votre répertoire /usr/bin/ :

      • sudo cp /usr/local/bin/wkhtmlto* /usr/bin/

      Une fois les fichiers en place, modifiez leurs autorisations pour les rendre exécutables :

      • sudo chmod a+x /usr/bin/wk*

      Maintenant que wkhtmltopdf est correctement installé, nous ajouterons Redis à notre pile de base de données.

      Installation de Redis

      ERPNext 12 utilise Redis pour améliorer les performances de MariaDB. Plus précisément, il aide à la mise en cache.

      Tout d’abord, installez Redis depuis le référentiel officiel Ubuntu 18.04 :

      • sudo apt install redis-server

      Ensuite, activez Redis au démarrage :

      • sudo systemctl enable redis-server

      Maintenant que vous avez ajouté Redis à votre pile, prenons un moment pour résumer ce que vous avez accompli jusqu’à présent. Jusqu’à présent, vous avez installé tous les principaux composants nécessaires à ERPNext 12, dont :

      • Un backend de base de données MariaDB
      • L’environnement serveur JavaScript Node.js
      • Le gestionnaire de paquets Yarn
      • Un cache de la base de donnée de Redis
      • Le générateur de documents PDF wkhtmltopdf

      Que vous installiez le système ERP pour le développement ou pour la production, vous êtes maintenant prêt pour la prochaine étape, qui consiste à installer le framework full-stack Frappe et l’application web ERPNext 12 actuelle.

      Étape 6 — Configuration de l’ILC Bench de Frappe

      Maintenant que vous avez mis en place toutes les exigences de pile d’ERPNext, vous pouvez exploiter la flexibilité de l’utilitaire de ligne de commande bench de Frappe. L’ILC bench a été conçue dans le but d’aider les utilisateurs dans le processus d’installation, de mise en place et de gestion d’applications comme ERPNext, qui reposent sur le Framework Frappe. Dans les sections suivantes, vous allez installer l’ILC bench et l’utiliser ensuite pour terminer le processus de configuration d’ERPNext 12.

      Assurez-vous que l’utilisateur de Frappe (dans ce cas sammy) dispose des droits appropriés sur son répertoire home :

      • sudo chown sammy -R /home/sammy

      Maintenant, clonez le référentiel frappe/bench vers votre répertoire de base. N’oubliez pas de remplacer sammy par votre nom d’utilisateur système :

      • git clone https://github.com/frappe/bench /home/sammy/.bench --depth 1 --branch master

      Installez l’ILC bench :

      • sudo pip3 install -e /home/sammy/.bench

      Ce guide suppose que vous installez ERPNext 12 pour des scénarios de test/production et que vous utilisez donc la branche master. Mais si votre intention est de développer des applications ou des modules ERPNext personnalisés, la branche develop pourrait être préférable. Dans les deux cas, vous êtes maintenant prêt à installer le Framework de Frappe. Ce sera la dernière étape avant d’installer ERPNext lui-même.

      Configuration de l’environnement du framework de Frappe

      Dans cette section, vous allez créer un environnement Frappe en utilisant l’ILC bench.

      Pendant l’installation de Frappe, vous pouvez dépasser la limite de surveillance des fichier d’Ubuntu, qui par défaut est fixée à 8192. Pour éviter ce problème, définissez une limite supérieure en utilisant la commande suivante :

      • echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

      Ensuite, initialisez Frappe framework 12. Remplacez Sammy par votre nom d’utilisateur système :

      • bench init /home/sammy/frappe-bench --frappe-path https://github.com/frappe/frappe --frappe-branch version-12 --python python3

      Au cours de l’exécution, vous pouvez voir une erreur concernant votre chemin d’accès, ainsi que plusieurs avertissements. Laissez le processus se poursuivre jusqu’à la fin. Une fois terminé, vous verrez un résultat similaire à celui qui suit, indiquant que votre environnement a été créé avec succès :

      Output

      ... Done in 82.23s. INFO:bench.utils:setting up backups no crontab for sammy SUCCESS: Bench /home/sammy/frappe-bench initialized

      Note : le processus bench init pourrait s’arrêter si une erreur spawn ENOMEM était rencontrée. Cette erreur se produit lorsque votre système manque de mémoire. Vous devez corriger le problème avant de continuer, soit en installant plus de mémoire physique, soit en attribuant l’espace SWAP.

      Examinons de plus près la commande utilisée pour créer l’environnement :

      • /home/sammy/frappe-bench est le chemin où le framework Frappe, les sites web et les applications connexes seront installés. Un nouveau répertoire, appelé frappe-bench dans cet exemple, sera créé pour accueillir tous les fichiers nécessaires.
      • --frappe-path pointe vers le référentiel de Frappe, qui dans ce cas est le référentiel officiel de Github.
      • --frappe-branch est la version Frappe à installer. Comme vous souhaitez installer ERPNext 12, la version choisie est Frappe 12.
      • --python est la version Python qui sera utilisée. ERPNext 12 requiert Python 3.6+. Les versions antérieures, cependant, utilisent toujours Python 2.7.

      Pour plus d’informations sur les commandes ILC bench, veuillez vous référer à la fiche d’aide des commandes de Bench.

      La flexibilité offerte par le framework Frappe va bien au-delà de l’utilisation d’environnements isolés. Vous pouvez également créer différents sites web et y installer des applications.

      Étape 7 — Configuration de l’application web ERPNext 12

      Dans cette section, vous allez configurer un site reposant sur Frappe, puis installer l’application ERPNext 12 sur celui-ci.

      Passez dans le répertoire où Frappe a été initialisé.

      • cd /home/sammy/frappe-bench

      Maintenant, téléchargez ERPNext 12 depuis son référentiel en utilisant l’ILC bench :

      • bench get-app erpnext https://github.com/frappe/erpnext --branch version-12

      Ensuite, créez le nouveau site, en remplaçant your_domain par le domaine que vous avez associé à l’IP de ce serveur :

      • bench new-site your_domain --admin-password 'erpnext_admin_password' --mariadb-root-username sammy --mariadb-root-password 'mariadb_password'

      Prenons un moment pour examiner les options utilisées dans la commande ci-dessus :

      • bench new-site crée un nouveau site reposant sur le framework Frappe.
      • your_domain est le nom du nouveau site. Assurez-vous que le DNS de votre domaine a un enregistrement A pointant vers l’IP de votre serveur.
      • erpnext_admin_passwordest le mot de passe souhaité pour l’utilisateur Administrator d’ERPNext. Conservez ce mot de passe dans un endroit sûr, vous en aurez besoin sous peu.
      • mariadb_password est le mot de passe que vous avez créé au début du guide de l’utilisateur sammy de MariaDB.

      Ensuite, installez l’application ERPNext sur le site :

      • bench --site your_domain install-app erpnext

      Une fois l’installation terminée, vous disposerez d’une application ERPNext 12 fonctionnelle. Maintenant, testons-la à l’aide d’une commande bench :

      La commande ci-dessus lancera une console de surveillance en temps réel vous montrant divers messages concernant le serveur web et d’autres services. Ouvrez un navigateur web et naviguez vers localhost:8000 (pour les installations locales) ou your_domain:8000 (si vous utilisez un serveur distant). Vous verrez l’écran de connexion ERPNext (nous procéderons à la connexion et à la configuration dans une étape ultérieure, une fois que notre site sera prêt pour la production).

      Après avoir consulté votre déploiement de test, retournez à votre terminal et appuyez sur CTRL+C. Cela arrêtera ERPNext et permettra de quitter la console de surveillance.

      Si votre objectif principal est de créer des modules ou de modifier ERPNext 12, vous pouvez alors vous arrêter à ce stade. Aucun autre composant n’est nécessaire pour le développement. Cependant, si vous avez besoin d’un système prêt pour la production qui ne requiert pas d’initialisation manuelle, vous devrez alors installer et configurer quelques composants supplémentaires. C’est votre prochaine étape.

      Étape 8 — Configuration d’ERPNext 12 pour la production

      Bien que l’application ERPNext 12 soit prête, le système dans son ensemble n’est pas encore complètement prêt pour la production. Pour garantir la fiabilité et la sécurité d’ERPNext, vous devrez activer quelques services supplémentaires :

      • Fail2ban fournit une couche supplémentaire de protection contre les tentatives de recours abusif des utilisateurs et des bots malveillants.
      • Nginx fonctionne principalement comme un proxy web, redirigeant tout le trafic depuis le port 8000 vers le port 80 (HTTP) ou le port 443 (HTTPS)
      • Supervisor veille à ce que les processus clés d’ERPNext soient constamment opérationnels, en les redémarrant au besoin.

      Jusqu’à ce stade, vous avez installé et configuré manuellement ERPNext 12, ce qui vous a permis de personnaliser le processus pour qu’il corresponde à n’importe quel cas d’utilisation particulier. Néanmoins, pour le reste de la configuration de la production, vous pouvez tirer parti de la commodité de l’ILC bench, afin d’automatiser l’installation et la configuration de ces services restants.

      Assurez-vous que vous êtes bien dans le répertoire de travail de Frappe :

      • cd /home/sammy/frappe-bench

      Maintenant, utilisez la commande suivante pour terminer la configuration d’ERPNext 12 pour la production :

      • sudo bench setup production sammy --yes

      La commande ci-dessus installera et configurera aNginx, Supervisor, et Fail2Ban, et définira sammy comme propriétaire de l’environnement de production.

      Les fichiers de configuration créés par la commande bench  sont les suivants :

      • Deux fichiers de configuration Nginx situés dans /etc/nginx/nginx.conf et /etc/nginx/conf.d/frappe-bench.conf
      • Un proxy jail Fail2Ban situé dans /etc/fail2ban/jail.d/nginx-proxy.conf et un filtre situé dans /etc/fail2ban/filter.d/nginx-proxy.conf

      Ces configurations par défaut suffiront pour ce tutoriel, mais n’hésitez pas à explorer et ajuster ces fichiers pour qu’ils correspondent à vos besoins. Vous pouvez arrêter tous les services en exécutant :

      • sudo supervisorctl stop all

      Et ensuite, une fois que vous êtes prêt, vous pouvez redémarrer vos services :

      • sudo supervisorctl start all

      Maintenant vous êtes prêt pour tester votre installation.

      Test de votre installation ERPNext 12

      Tout d’abord, vérifiez que les principaux services de production fonctionnent en utilisant la commande systemctl suivante, puis en la transmettant à grep :

      • systemctl list-unit-files | grep 'fail2ban|nginx|supervisor'

      Vous verrez un résultat similaire à ce qui suit :

      Output

      fail2ban.service enabled nginx.service enabled supervisor.service enabled

      Après avoir confirmé que tout fonctionne comme prévu, vous pouvez tester ERPNext 12 en direct sur votre serveur. Ouvrez votre navigateur préféré et naviguez jusqu’au domaine où vous hébergez votre application ERPNext 12.

      Après quelques secondes, vous devriez voir l’écran de connexion d’ERPNext 12. Utilisez Administrator pour le nom d’utilisateur et erpnext_admin_password que vous avez créé précédemment pour le mot de passe.

      Écran de connexion d'ERPNext

      Dans l’écran suivant, vous verrez un menu déroulant où vous pouvez sélectionner la langue de l’interface utilisateur pour l’application :

      Sélection de la langue

      Après la sélection de la langue, ERPNext vous demandera d’entrer votre pays, votre fuseau horaire et votre devise :

      Sélectionnez votre région

      Une fois que vous aurez complété les informations sur votre région, vous pourrez créer le premier utilisateur ERPNext. Les informations que vous fournissez seront utilisées comme identifiants de connexion de l’utilisateur.

      Premier utilisateur ERPNext

      Dans l’écran suivant, vous serez questionné sur ce qu’ERPNext appelle Domains. Si vous n’êtes pas sûr de savoir quel est votre domaine, sélectionnez Distribution et cliquez sur le bouton Next.

      Sélectionnez vos domaines

      Ensuite, vous devrez fournir un nom de société et une abréviation.

      Nom de la société

      Dans le dernier écran, ERPNext vous demandera d’indiquer l’activité de votre société, le nom de sa banque, le type de plan comptable et la période de l’exercice. Vous pourrez entrer des banques supplémentaires plus tard. Pour l’instant, remplissez tous les champs comme vous le souhaitez, puis cliquez sur le bouton Complete Setup.

      Informations financières

      Ensuite, vous verrez un barre de progression.

      Configuration d'ERPNext

      Une fois le processus de configuration terminé, le tableau de bord principal d’ERPNext 12 apparaît.

      Tableau de bord d'ERPNext 12

      Vous avez maintenant entièrement installé et configuré une application ERPNext 12.

      Conclusion

      Maintenant que vous avez correctement installé votre application ERPNext 12, vous pouvez commencer à mettre en œuvre le système pour vos besoins commerciaux. Un bon point de départ consiste à cliquer sur le bouton Getting Started sur le tableau de bord d’ERPNext. ERPNext vous aidera alors à configurer la plate-forme pour tous vos besoins commerciaux et de commerce électronique.

      Mise en route

      Vous pouvez également souhaiter améliorer la vitesse d’ERPNext. Si c’est le cas, vous pouvez lire les informations sur le réglage de performance ERPNext, qui vous guideront sur les meilleures pratiques et sur la manière de résoudre les problèmes liés aux performances.



      Source link

      Comment installer une pile ERPNext sur Ubuntu 20.04


      L’auteur a choisi Software in the Public Interest pour recevoir un don dans le cadre du programme Write for DOnations.

      Introduction

      ERPNext est une suite de planification des ressources d’entreprise (ERP) qui tire parti de la puissance et de la flexibilité des technologies open-source. Elle excelle dans la gestion des processus opérationnels de base tels que la finance, les ventes, les ressources humaines, la fabrication, les achats, les services, les besoins du helpdesk, et plus encore. Parmi les avantages de la mise en œuvre d’un système comme ERPNext, on peut citer :

      • Une meilleure productivité en automatisant les processus commerciaux répétitifs
      • Une amélioration de l’efficacité informatique en partageant une base de données pour tous les départements de la société
      • Une meilleure prise de décisions grâce à une vision intégrale de la relation entre les unités commerciales

      ERPNext repose sur Frappe, un cadre d’application web full-stack écrit en Python qui tire pleinement parti de l’environnement d’exécution Node/JavaScript et utilise MariaDB comme backend de base de données. L’un des nombreux avantages des applications reposant sur Frappe, comme ERPNext, est l’utilitaire de ligne de commande bench. L’ILC bench permet aux administrateurs de gagner du temps en automatisant des tâches telles que l’installation, la mise à jour, la configuration et la gestion de plusieurs sites Frappe/ERPNext.

      Dans ce tutoriel, vous installerez et configurez une pile ERPNext sur un serveur tournant sous Ubuntu 20.04. Cela vous permettra de configurer votre pile pour divers environnements de développement ou de production en fonction de vos besoins, et cela vous préparera à construire une architecture plus complexe et tolérante aux défauts.

      Conditions préalables

      Note : Lorsque vous choisissez les spécifications de votre serveur, n’oubliez pas que les systèmes ERP sont gourmands en ressources. Ce guide préconise un serveur de 4 Go de RAM, ce qui est suffisant pour les cas d’utilisation de base, mais les exigences matérielles spécifiques peuvent varier en fonction du nombre d’utilisateurs et de la taille de votre entreprise.

      Étape 1 — Configuration du pare-feu

      Bien que la configuration d’un pare-feu pour le développement soit facultative, pour la production il s’agit d’une pratique de sécurité obligatoire.

      Vous devrez ouvrir les ports suivants sur votre serveur ERPNext :

      • 80/tcp et 443/tcp pour HTTP et HTTPS, respectivement
      • 3306/tcp pour la connexion à MariaDB (recommandé uniquement si vous avez besoin d’un accès à la base de données à distance)
      • 143/tcp et 25/tcp pour IMAP et STMP, respectivement
      • 22/tcp pour SSH (si vous n’avez pas encore activé OpenSSH dans vos paramètres UFW)
      • 8000/tcp pour tester votre plate-forme avant de la déployer en production

      Pour ouvrir plusieurs ports à la fois, vous pouvez utiliser la commande suivante :

      • sudo ufw allow 22,25,143,80,443,3306,8000/tcp

      Vous pouvez également autoriser des connexions à partir d’adresses IP spécifiques sur des ports spécifiques en utilisant cette commande :

      • sudo ufw allow from server_IP to any port port_number

      Après avoir ouvert tous les ports nécessaires, activez le pare-feu :

      Confirmez maintenant l’état de votre pare-feu :

      UFW fournira une liste des règles que vous avez autorisées. Assurez-vous que les ports nécessaires d’ERPNext sont ouverts :

      Output

      Status: active To Action From -- ------ ---- 22,25,80,143,443,3306,8000/tcp ALLOW Anywhere 22,25,80,143,443,3306,8000/tcp (v6) ALLOW Anywhere (v6)

      Pour plus d’informations sur la configuration d’UFW, consultez notre guide Comment configurer un pare-feu avec UFW sur Ubuntu 20.04.

      La mise en place d’un pare-feu approprié est la première des deux étapes préliminaires. Vous allez maintenant configurer le mappage du clavier et l’encodage des caractères sur votre serveur.

      Étape 2 — Configuration des sites

      Il est fortement recommandé de configurer le mappage du clavier pour la console ainsi que la langue et l’encodage des caractères sur votre hôte. Ceci est nécessaire pour éviter les problèmes éventuels lors du processus d’installation d’ERPNext 12. Remarquez que cette configuration n’a rien à voir avec la langue de l’interface utilisateur sur votre plateforme ERPNext actuelle, mais avec la configuration locale du système.

      Tout d’abord, mettez à jour votre serveur :

      Configurez maintenant le keymap, la langue et l’encodage des caractères :

      • sudo localectl set-keymap us && sudo localectl set-locale LANG=en_US.utf8

      L’utilitaire localectl est utilisé par Ubuntu 20.04 et d’autres distributions Linux pour contrôler et modifier les paramètres locaux et la disposition du clavier à l’échelle du système, avant que l’utilisateur ne se connecte, ce qui est exactement ce dont ERPNext 12 a besoin.

      Vous devrez également ajouter les lignes suivantes à votre fichier /etc/environment. Utilisez nano ou votre éditeur de texte préféré pour ouvrir le fichier :

      • sudo nano /etc/environment

      Maintenant ajoutez le contenu suivant :

      /etc/environment

      LC_ALL=en_US.UTF-8
      LC_CTYPE=en_US.UTF-8
      LANG=en_US.UTF-8
      

      Enregistrez et fermez le fichier.

      Redémarrez votre serveur pour appliquer tous les changements :

      Laissez à votre serveur quelques minutes pour redémarrer, puis utilisez ssh pour réintroduire votre instance. Vous êtes maintenant prêt à installer votre base de données.

      Étape 3 — Installation de MariaDB

      Vous allez maintenant ajouter MariaDB à la pile de votre serveur. ERPNext 12 requiert MariaDB 10.2+ pour fonctionner correctement. Comme Ubuntu 20.04 inclut MariaDB 10.3 dans ses référentiels officiels, vous pouvez installer cette version en utilisant la commande apt :

      • sudo apt install mariadb-server

      Si vous préférez une version plus récente de MariaDB, vous pouvez suivre l’Étape 3 de notre guide Comment installer une pile ERPNext sur Ubuntu 18.04. Cela vous guidera à travers l’assistant du référentiel en ligne de MariaDB, qui vous aidera à installer la version la plus récente : MariaDB 10.5.

      Après avoir installé mariadb-server, installez les packages suivants :

      • sudo apt install python3-mysqldb libmysqlclient-dev

      ERPNext 12 est une application Python : elle requiert donc la bibliothèque python3-mysqldb pour la gestion de la base de données. libmysqlclient-dev est nécessaire pour accéder à certaines fonctionnalités de développeur MariaDB.

      Ensuite, ajoutez une couche de sécurité supplémentaire au serveur MariaDB, en exécutant le script mysql_secure_installation :

      • sudo mysql_secure_installation

      Le script mysql_secure_installation vous posera plusieurs questions :

      • La première invite vous demandera le mot de passe root, mais comme aucun de mot de passe n’a été configuré, appuyez sur ENTER.
      • Ensuite, lorsqu’il vous sera demandé de modifier le mot de passe root de MariaDB, répondez N. L’utilisation du mot de passe par défaut avec l’authentification Unix est la configuration recommandée pour les systèmes basés sur Ubuntu, car le compte root est étroitement lié aux tâches de maintenance automatisées du système.
      • Les questions restantes concernent la suppression de l’utilisateur anonyme de la base de données, la restriction du compte root pour vous connecter à distance sur localhost, la suppression de la base de données de test et le rechargement des tables de privilèges. Vous pouvez répondre Y à toutes ces questions en toute sécurité.

      Après avoir terminé le script mysql_secure_installation, MariaDB commencera à fonctionner en utilisant sa configuration par défaut. L’installation standard ERPNext utilise le root user de MariaDB, pour toutes les opérations de la base de données. Bien que cette approche soit pratique sur les configurations de serveur unique, elle n’est pas considérée comme une bonne pratique en matière de sécurité. Par conséquent, dans la section suivante, vous apprendrez à éviter ce problème en créant un nouvel utilisateur avec des privilèges spéciaux.

      Création d’un Super utilisateur admin de MariaDB

      ERPNext prévoit d’utiliser le root user de MariaDB pour gérer les connexions aux bases de données, mais ce n’est pas toujours idéal. Pour contourner cette limitation et laisser un non-root user gérer MariaDB, vous allez maintenant créer manuellement une base de données portant le nom de l’utilisateur. Ensuite, vous serez en mesure d’attribuer des privilèges spéciaux au nouvel utilisateur pour conduire les opérations de la base de données d’ERPNext.

      Ouvrez l’invite MariaDB :

      Créez maintenant une nouvelle base de données nommée d’après l’utilisateur que vous souhaitez affecter aux connexions MariaDB. Ce tutoriel utilisera sammy, mais vous pouvez choisir un nom différent :

      Confirmez que la base de données a été créée en utilisant cette instruction SQL :

      Vous obtiendrez une sortie semblable à ceci :

      Output

      +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sammy | +--------------------+

      Créez maintenant l’utilisateur MariaDB sammy avec des privilèges similaires à root, puis donnez à l’utilisateur un mot de passe fort de votre choix. Conservez le mot de passe dans un endroit sûr, vous en aurez besoin plus tard :

      • GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'%' IDENTIFIED BY 'mariadb_password' WITH GRANT OPTION;

      Confirmez maintenant la création de l’utilisateur et les privilèges du nouvel utilisateur :

      • SELECT host, user, Super_priv FROM mysql.user;

      Vous verrez un résultat similaire à ce qui suit :

      Output

      +-----------+-------+------------+ | Host | User | Super_priv | +-----------+-------+------------+ | localhost | root | Y | | localhost | mysql | Y | | % | sammy| Y | +-----------+-------+------------+ 3 rows in set (0.001 sec)

      Maintenant videz les privilèges pour appliquer tous les changements :

      Une fois que vous avez terminé, quittez la session :

      Maintenant que vous avez créé un utilisateur de la base de données, il ne vous reste plus qu’à régler MariaDB pour vous assurer le fonctionnement correct d’ERPNext 12. Heureusement, l’équipe ERPNext fournit un excellent modèle de configuration que vous utiliserez comme point de départ pour votre implémentation. Dans la section suivante, vous apprendrez à configurer correctement la base de données MariaDB en utilisant ce modèle.

      Étape 4 — Configuration de MariaDB pour ERPNext

      Une fois MariaDB installé et sécurisé, il est temps de le mettre au point pour les connexions ERPNext.

      Tout d’abord, arrêtez mariadb.service :

      • sudo systemctl stop mariadb

      Utilisez maintenant nano ou votre éditeur de texte préféré pour créer un fichier de configuration MariaDB appelé mariadb.cnf :

      • sudo nano /etc/mysql/mariadb.conf.d/mariadb.cnf

      Ensuite, ajoutez le modèle de configuration officiel d’ERPNext :

      /etc/mysql/mariadb.conf.d/mariadb.cnf

      [mysqld]
      
      # GENERAL #
      user                           = mysql
      default-storage-engine         = InnoDB
      socket                         = /var/lib/mysql/mysql.sock
      pid-file                       = /var/lib/mysql/mysql.pid
      
      # MyISAM #
      key-buffer-size                = 32M
      myisam-recover                 = FORCE,BACKUP
      
      # SAFETY #
      max-allowed-packet             = 256M
      max-connect-errors             = 1000000
      innodb                         = FORCE
      
      # DATA STORAGE #
      datadir                        = /var/lib/mysql/
      
      # BINARY LOGGING #
      log-bin                        = /var/lib/mysql/mysql-bin
      expire-logs-days               = 14
      sync-binlog                    = 1
      
      # REPLICATION #
      server-id                      = 1
      
      # CACHES AND LIMITS #
      tmp-table-size                 = 32M
      max-heap-table-size            = 32M
      query-cache-type               = 0
      query-cache-size               = 0
      max-connections                = 500
      thread-cache-size              = 50
      open-files-limit               = 65535
      table-definition-cache         = 4096
      table-open-cache               = 10240
      
      # INNODB #
      innodb-flush-method            = O_DIRECT
      innodb-log-files-in-group      = 2
      innodb-log-file-size           = 512M
      innodb-flush-log-at-trx-commit = 1
      innodb-file-per-table          = 1
      innodb-buffer-pool-size        = 5462M
      innodb-file-format             = barracuda
      innodb-large-prefix            = 1
      collation-server               = utf8mb4_unicode_ci
      character-set-server           = utf8mb4
      character-set-client-handshake = FALSE
      max_allowed_packet             = 256M
      
      # LOGGING #
      log-error                      = /var/lib/mysql/mysql-error.log
      log-queries-not-using-indexes  = 0
      slow-query-log                 = 1
      slow-query-log-file            = /var/lib/mysql/mysql-slow.log
      
      # CONNECTIONS #
      
      pid-file        = /var/run/mysqld/mysqld.pid
      socket          = /var/run/mysqld/mysqld.sock
      bind-address    = 0.0.0.0
      
      [mysql]
      default-character-set = utf8mb4
      
      [mysqldump]
      max_allowed_packet=256M
      

      Enregistrez et fermez le fichier. Pour obtenir des informations plus détaillées sur ces configurations, consultez ce fichier modèle sur le référentiel Github d’ERPNext. C’est un point de départ utile pour explorer ces options.

      Le fichier de configuration,/etc/mysql/mariadb.conf.d/mariadb.cnf, complète et remplace également quelques valeurs incluses dans la configuration par défaut de MariaDB située dans /etc/mysql/my.cnf. Ce fichier vous donne un modèle de conservation qui améliore considérablement les performances de la base de données pour ERPNext. N’oubliez pas toutefois que si ce modèle est un excellent point de départ, rien ne vous empêche d’améliorer encore plus les performances de MariaDB en ajustant ces paramètres à vos besoins.

      Test de la connexion MariaDB

      Comme ERPNext dépend de la connexion à la base de données pour presque toutes ses opérations internes, il est bon de tester la connexion avant de continuer.

      Démarrez mariadb.service :

      • sudo systemctl start mariadb

      Pour tester la connexion, vous pouvez utiliser la commande suivante. N’oubliez pas de remplacer sammy et mariadb_password par vos identifiants :

      • mysql --user sammy --password mariadb_password --host=localhost --protocol=tcp --port=3306 test

      Vous verrez un résultat montrant le contenu de l’aide de base de MariaDB et plusieurs paramètres. Cela signifie que votre connexion a réussi :

      Output

      mysql Ver 15.1 Distrib 10.4.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Usage: mysql [OPTIONS] [database] Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf ... --ssl-verify-server-cert Verify server's "Common Name" in its cert against hostname used when connecting. This option is disabled by default. -t, --table Output in table format. --tee=name Append everything into outfile. See interactive help (h) also. Does not work in batch mode. Disable with --disable-tee. This option is disabled by default. -u, --user=name User for login if not current user. -U, --safe-updates Only allow UPDATE and DELETE that uses keys. -U, --i-am-a-dummy Synonym for option --safe-updates, -U. -v, --verbose Write more. (-v -v -v gives the table output format). ... max-join-size 1000000 secure-auth FALSE show-warnings FALSE plugin-dir (No default value) default-auth (No default value) binary-mode FALSE connect-expired-password FALSE

      Si vous devez apporter des ajustements aux paramètres de MariaDB ou corriger des erreurs, n’oubliez pas de recharger le service en utilisant la commande suivante :

      • sudo systemctl restart mariadb

      Une fois que vous avez terminé, activez MariaDB :

      • sudo systemctl enable mariadb

      Maintenant que vous avez testé la connexion à la base de données, vous pouvez continuer à installer votre application ERPNext.

      Étape 5 — Configuration d’ERPNext 12

      Maintenant que le backend de votre base de données est prêt, vous pouvez continuer à configurer votre application web ERPNext. Dans cette section, vous apprendrez à installer et configurer tous les composants requis par ERPNext 12, puis à installer l’application elle-même.

      Commencez par préparer le serveur avec tous les paquets système requis par ERPNext 12. Installez les dépendances dans tout le système en utilisant la commande suivante :

      • sudo DEBIAN_FRONTEND=noninteractive apt install -y curl build-essential python3-testresources python3-setuptools python3-dev libffi-dev python3-pip libcurl4 dnsmasq fontconfig git htop libcrypto++-dev libfreetype6-dev liblcms2-dev libwebp-dev libxext6 libxrender1 libxslt1-dev libxslt1.1 libffi-dev ntpdate postfix python3-dev python-tk screen vim xfonts-75dpi xfonts-base zlib1g-dev apt-transport-https libsasl2-dev libldap2-dev libcups2-dev pv libjpeg8-dev libtiff5-dev tcl8.6-dev tk8.6-dev libdate-manip-perl logwatch

      La variable DEBIAN_FRONTEND=noninteractive a été transmise à la commande d’installation afin d’éviter les invites Postfix. Pour obtenir des informations détaillées sur la configuration de Postfix, lisez notre guide Comment installer et configurer Postfix sur Ubuntu 20.04

      Ensuite, mettez à jour pip3, qui est le gestionnaire de paquets standard de Python, puis installez les dernières versions de trois modules Python supplémentaires :

      • sudo -H python3 -m pip install --upgrade setuptools cryptography psutil

      setuptools facilite l’installation et la mise à jour des paquets Python, cryptography ajoute des capacités de cryptage à votre pile et psutil aide à la surveillance du système. Maintenant que vous avez installé toutes les dépendances générales nécessaires, vous allez installer tous les services et les bibliothèques nécessaires à ERPNext 12.

      Configuration de Node.js et Yarn

      ERPNext 12 peut fonctionner avec la version 8+ de l’environnement serveur Node.js. Au moment de la rédaction de ce texte, le script officiel easy_install d’ERPNext utilise Node 8. Mais du point de vue de la sécurité, il est conseillé d’installer une version plus récente, car Node 8 a atteint sa fin de vie (EOL) en 2020 et ne bénéficiera donc plus de correctifs de sécurité. Au moment de la rédaction de ce texte, Ubuntu 20.04 contient la version 10.19 de Node.js. Bien que cette version soit toujours maintenue, pour des raisons similaires (EOL dans moins d’un an), il est fortement conseillé de l’éviter. Pour les besoins de ce guide, Node.js version 12 LTS sera installé avec les gestionnaires de paquets npm et yarn correspondants. Veuillez noter que le framework Frappe utilise yarn pour installer les dépendances. Si vous décidez d’utiliser une autre méthode d’installation, vérifiez que la version 1.12+ de yarn fonctionne sur votre système.

      Ajoutez le référentiel NodeSource à votre système :

      • curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh

      Vous pouvez maintenant inspecter le contenu du script téléchargé :

      • sudo nano nodesurce_setup.sh

      Lorsque vous êtes satisfait du contenu du script, vous pouvez exécuter le script :

      • sudo bash nodesource_setup.sh

      Ce script mettra à jour automatiquement la liste apt. Vous pouvez maintenant installer nodejs sur votre serveur :

      Ensuite, installez yarn en utilisant le gestionnaire de paquets npm :

      Maintenant que vous avez installé Node, vous pouvez continuer à configurer wkhtmltopdf pour votre plate-forme.

      ERPNext utilise l’outil open source wkhtmltopdf pour convertir le contenu HTML en PDF, en utilisant le moteur de rendu Qt WebKit. Cette fonction est principalement utilisée pour l’impression de factures, de devis et d’autres rapports. Dans le cas d’ERPNext 12, une version spécifique de wkhtmltopdf est requise, 0.12.5 avec Qt patché.

      Pour installer wkhtmltopdf, commencez par passer à un répertoire approprié pour télécharger le paquet, dans ce cas /tmp :

      Téléchargez la version wkhtmltopdf appropriée et le paquet pour Ubuntu 20.04 depuis la page du projet :

      • wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb

      Installez maintenant le paquet en utilisant l’outil dpkg :

      • sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb

      Ensuite, copiez tous les exécutables pertinents dans votre répertoire /usr/bin/ :

      • sudo cp /usr/local/bin/wkhtmlto* /usr/bin/

      Une fois les fichiers en place, modifiez leurs autorisations pour les rendre exécutables :

      • sudo chmod a+x /usr/bin/wk*

      Maintenant que wkhtmltopdf est correctement installé, nous ajouterons Redis à notre pile de base de données.

      Installation de Redis

      ERPNext 12 utilise Redis pour améliorer les performances de MariaDB. Plus précisément, Redis aide à la mise en cache.

      Tout d’abord, installez Redis depuis le référentiel officiel Ubuntu 20.04 :

      • sudo apt install redis-server

      Ensuite, activez Redis au démarrage :

      • sudo systemctl enable redis-server

      Maintenant que vous avez ajouté Redis à votre pile, prenons un moment pour résumer ce que vous avez accompli jusqu’à présent. Jusqu’à ce stade, vous avez installé tous les principaux composants requis par ERPNext 12, qui comprennent :

      • Un backend de base de données MariaDB
      • L’environnement serveur JavaScript Node.js
      • Le gestionnaire de paquets Yarn
      • Un cache de la base de donnée de Redis
      • Le générateur de documents PDF wkhtmltopdf

      Que vous installiez le système ERP pour le développement ou pour la production, vous êtes maintenant prêt pour la prochaine étape, qui consiste à installer le framework full-stack Frappe et l’application web ERPNext 12 actuelle.

      Étape 6 — Configuration de l’ILC Bench de Frappe

      Maintenant que vous avez mis en place toutes les exigences de pile d’ERPNext, vous pouvez exploiter la flexibilité de l’utilitaire de ligne de commande bench de Frappe. L’ILC bench a été conçue dans le but d’aider les utilisateurs dans le processus d’installation, de mise en place et de gestion d’applications comme ERPNext, qui reposent sur le Framework Frappe. Dans les sections suivantes, vous allez installer l’ILC bench et l’utiliser ensuite pour terminer le processus de configuration d’ERPNext 12.

      Assurez-vous que l’utilisateur de Frappe (dans ce cas sammy) dispose des droits appropriés sur son répertoire home :

      • sudo chown sammy -R /home/sammy

      Maintenant, clonez le référentiel frappe/bench vers votre répertoire de base. N’oubliez pas de remplacer sammy par votre nom d’utilisateur système :

      • git clone https://github.com/frappe/bench /home/sammy/.bench --depth 1 --branch master

      Installez l’ILC bench :

      • sudo pip3 install -e /home/sammy/.bench

      Ce guide suppose que vous installez ERPNext 12 pour des scénarios de test/production et que vous utilisez donc la branche master. Mais si votre intention est de développer des applications ou des modules ERPNext personnalisés, la branche develop pourrait être préférable. Dans les deux cas, vous êtes maintenant prêt à installer le Framework de Frappe. Ce sera la dernière étape avant d’installer ERPNext lui-même.

      Configuration de l’environnement du framework de Frappe

      Dans cette section, vous allez créer un environnement Frappe en utilisant l’ILC bench.

      Pendant l’installation de Frappe, vous pouvez dépasser la limite de surveillance des fichier d’Ubuntu, qui par défaut est fixée à 8192. Pour éviter ce problème, définissez une limite supérieure en utilisant la commande suivante :

      • echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

      La commande tee ajoutera le contenu de votre commande echo au fichier appelé tout en imprimant la sortie sur votre console.

      Ensuite, initialisez Frappe framework 12. Remplacez Sammy par votre nom d’utilisateur système :

      • bench init /home/sammy/frappe-bench --frappe-path https://github.com/frappe/frappe --frappe-branch version-12 --python python3

      Au cours de l’exécution, vous pouvez voir une erreur concernant votre chemin d’accès, ainsi que plusieurs avertissements. Laissez le processus se poursuivre jusqu’à la fin. Une fois terminé, vous verrez un résultat similaire à celui qui suit, indiquant que votre environnement a été créé avec succès :

      Output

      ... Done in 82.23s. INFO:bench.utils:setting up backups no crontab for sammy SUCCESS: Bench /home/sammy/frappe-bench initialized

      Note : le processus bench init pourrait s’arrêter si une erreur spawn ENOMEM était rencontrée. Cette erreur se produit lorsque votre système manque de mémoire. Vous devez corriger le problème avant de continuer, soit en installant plus de mémoire physique, soit en attribuant l’espace SWAP.

      Examinons de plus près la commande utilisée pour créer l’environnement :

      • /home/sammy/frappe-bench est le chemin où le framework Frappe, les sites web et les applications connexes seront installés. Un nouveau répertoire, appelé frappe-bench dans cet exemple, sera créé pour accueillir tous les fichiers nécessaires.
      • --frappe-path pointe vers le référentiel de Frappe, qui dans ce cas est le référentiel officiel de Github.
      • --frappe-branch est la version Frappe à installer. Comme vous souhaitez installer ERPNext 12, la version choisie est Frappe 12.
      • --python est la version Python qui sera utilisée. ERPNext 12 requiert Python 3.6+. Les versions antérieures, cependant, utilisent toujours Python 2.7.

      Pour plus d’informations sur les commandes ILC bench, veuillez vous référer à la fiche d’aide des commandes de Bench.

      La flexibilité offerte par le framework Frappe va bien au-delà de l’utilisation d’environnements isolés. Vous pouvez également créer différents sites web et y installer des applications.

      Étape 7 — Configuration de l’application web ERPNext 12

      Dans cette section, vous allez configurer un site reposant sur Frappe, puis installer l’application ERPNext 12 sur celui-ci.

      Passez dans le répertoire où Frappe a été initialisé.

      • cd /home/sammy/frappe-bench

      Avant de continuer, vous devrez installer des versions spécifiques des bibliothèques Python numpy et pandas dans l’environnement virtuel de Frappe. Installez ces paquets en utilisant la commande suivante :

      • ./env/bin/pip install numpy==1.18.5 && ./env/bin/pip install pandas==0.24.2

      À ce stade, l’installation pourrait s’arrêter pendant environ 10 à 20 minutes tout en affichant ce message :

      Output

      ... Building wheel for pandas (setup.py) ... -

      Cela est dû à un bug lié à pandas et Ubuntu 20.04, qui, au moment où nous écrivons ces lignes, est encore assez récent. Néanmoins les paquets s’installeront, et une fois que cela sera terminé, vous verrez un résultat comme celui-ci :

      Output

      ... Successfully built pandas Installing collected packages: pandas Successfully installed pandas-0.24.2

      Vous pouvez maintenant continuer l’installation. Téléchargez ERPNext 12 depuis son référentiel en utilisant l’ILC bench :

      • bench get-app erpnext https://github.com/frappe/erpnext --branch version-12

      Ensuite, créez le nouveau site, en remplaçant your_domain par le domaine que vous avez associé à l’IP de ce serveur :

      • bench new-site your_domain --admin-password 'erpnext_admin_password' --mariadb-root-username sammy --mariadb-root-password 'mariadb_password'

      Prenons un moment pour examiner les options utilisées dans la commande ci-dessus :

      • bench new-site crée un nouveau site reposant sur le framework Frappe.
      • your_domain est le nom du nouveau site. Assurez-vous que le DNS de votre domaine a un enregistrement A pointant vers l’IP de votre serveur.
      • erpnext_admin_passwordest le mot de passe souhaité pour l’utilisateur Administrator d’ERPNext. Conservez ce mot de passe dans un endroit sûr, vous en aurez besoin sous peu.
      • mariadb_password est le mot de passe que vous avez créé au début du guide de l’utilisateur sammy de MariaDB.

      Ensuite, installez l’application ERPNext sur le site :

      • bench --site your_domain install-app erpnext

      Une fois l’installation terminée, vous disposerez d’une application ERPNext 12 fonctionnelle. Maintenant, testons-la à l’aide d’une commande bench :

      La commande ci-dessus lancera une console de surveillance en temps réel vous montrant divers messages concernant le serveur web et d’autres services. Ouvrez un navigateur web et naviguez vers localhost:8000 (pour les installations locales) ou your_domain:8000 (si vous utilisez un serveur distant). Vous verrez l’écran de connexion ERPNext (nous procéderons à la connexion et à la configuration dans une étape ultérieure, une fois que notre site sera prêt pour la production).

      Après avoir consulté votre déploiement de test, retournez à votre terminal et appuyez sur CTRL+C. Cela arrêtera ERPNext et permettra de quitter la console de surveillance.

      Si votre objectif principal est de créer des modules ou de modifier ERPNext 12, vous pouvez alors vous arrêter à ce stade. Aucun autre composant n’est nécessaire pour le développement. Cependant, si vous avez besoin d’un système prêt pour la production qui ne requiert pas d’initialisation manuelle, vous devrez alors installer et configurer quelques composants supplémentaires. C’est votre prochaine étape.

      Étape 8 — Configuration d’ERPNext 12 pour la production

      Bien que votre application ERPNext 12 soit prête, le système dans son ensemble n’est pas encore prêt pour la production. Pour garantir la fiabilité et la sécurité d’ERPNext, vous devrez activer quelques services supplémentaires :

      • Fail2ban fournit une couche supplémentaire de protection contre les tentatives de recours abusif des utilisateurs et des bots malveillants.
      • Nginx fonctionne principalement comme un proxy web, redirigeant tout le trafic depuis le port 8000 vers le port 80 (HTTP) ou le port 443 (HTTPS)
      • Supervisor veille à ce que les processus clés d’ERPNext soient constamment opérationnels, en les redémarrant au besoin.

      Jusqu’à ce stade, vous avez installé et configuré manuellement ERPNext 12, ce qui vous a permis de personnaliser le processus pour qu’il corresponde à n’importe quel cas d’utilisation particulier. Néanmoins, pour le reste de la configuration de la production, vous pouvez tirer parti de la commodité de l’ILC bench, afin d’automatiser l’installation et la configuration de ces services restants.

      Assurez-vous que vous êtes bien dans le répertoire de travail de Frappe :

      • cd /home/sammy/frappe-bench

      Maintenant, utilisez la commande suivante pour terminer la configuration d’ERPNext 12 pour la production :

      • sudo bench setup production sammy --yes

      La commande ci-dessus installera et configurera aNginx, Supervisor, et Fail2Ban, et définira sammy comme propriétaire de l’environnement de production.

      Les fichiers de configuration créés par la commande bench  sont les suivants :

      • Deux fichiers de configuration Nginx situés dans /etc/nginx/nginx.conf et /etc/nginx/conf.d/frappe-bench.conf
      • Un proxy jail Fail2Ban situé dans /etc/fail2ban/jail.d/nginx-proxy.conf et un filtre situé dans /etc/fail2ban/filter.d/nginx-proxy.conf

      Ces configurations par défaut suffiront pour ce tutoriel, mais n’hésitez pas à explorer et ajuster ces fichiers pour qu’ils correspondent à vos besoins. Vous pouvez arrêter tous les services en exécutant :

      • sudo supervisorctl stop all

      Et ensuite, une fois que vous êtes prêt, vous pouvez redémarrer vos services :

      • sudo supervisorctl start all

      Maintenant vous êtes prêt pour tester votre installation.

      Test de votre installation ERPNext 12

      Tout d’abord, vérifiez que les services de production clés sont en cours d’exécution. Utilisez la commande systemctl suivante, puis acheminez-la à grep :

      • systemctl list-unit-files | grep 'fail2ban|nginx|supervisor'

      Vous verrez un résultat similaire à ce qui suit :

      Output

      fail2ban.service enabled nginx.service enabled supervisor.service enabled

      Après avoir confirmé que tout fonctionne comme prévu, vous pouvez tester ERPNext 12 en direct sur votre serveur. Ouvrez votre navigateur favori et naviguez sur your_domain, ou là où vous hébergez votre application ERPNext 12.

      Après quelques secondes, vous devriez voir l’écran de connexion d’ERPNext 12. Utilisez Administrator pour le nom d’utilisateur (email) et erpnext_admin_password que vous avez créé précédemment pour le mot de passe.

      Écran de connexion d'ERPNext

      Dans l’écran suivant, vous verrez un menu déroulant où vous pouvez sélectionner la langue de l’interface utilisateur pour l’application :

      Sélection de la langue

      Après la sélection de la langue, ERPNext vous demandera d’entrer votre pays, votre fuseau horaire et votre devise :

      Sélectionnez votre région

      Une fois que vous aurez complété les informations sur votre région, vous pourrez créer votre premier utilisateur ERPNext. Les informations que vous fournissez seront utilisées comme identifiants de connexion de l’utilisateur.

      Premier utilisateur ERPNext

      Dans l’écran suivant, vous serez questionné sur ce qu’ERPNext appelle Domains. Si vous n’êtes pas sûr de savoir quel est votre domaine, sélectionnez Distribution et cliquez sur le bouton Next.

      Sélectionnez vos domaines

      Ensuite, vous devrez fournir un nom de société et une abréviation.

      Nom de la société

      Dans le dernier écran, ERPNext vous demandera d’indiquer l’activité de votre société, le nom de sa banque, le type de plan comptable et la période de l’exercice. Vous pourrez entrer des banques supplémentaires plus tard. Pour l’instant, remplissez tous les champs comme vous le souhaitez, puis cliquez sur le bouton Complete Setup.

      Informations financières

      Ensuite, vous verrez un barre de progression.

      Configuration d'ERPNext

      Une fois le processus de configuration terminé, le tableau de bord principal d’ERPNext 12 apparaît.

      Tableau de bord d'ERPNext 12

      Vous avez maintenant entièrement installé et configuré une application ERPNext 12.

      Conclusion

      Maintenant que vous avez correctement installé votre application ERPNext 12, vous pouvez commencer à mettre en œuvre le système pour vos besoins commerciaux. Un bon point de départ consiste à cliquer sur le bouton Getting Started sur le tableau de bord d’ERPNext. ERPNext vous aidera alors à configurer la plate-forme pour tous vos besoins commerciaux et de commerce électronique.

      Mise en route

      Vous pouvez également souhaiter améliorer la vitesse d’ERPNext. Si c’est le cas, vous pouvez lire les informations sur le réglage de performance ERPNext, qui vous guideront sur les meilleures pratiques et sur la manière de résoudre les problèmes liés aux performances.



      Source link

      Comment installer la pile Linux, Apache, MySQL, PHP (LAMP) sur Ubuntu 20.04 [Démarrage rapide]


      Introduction

      Dans ce guide de démarrage rapide, nous allons installer une pile LAMP sur un serveur Ubuntu 20.04.

      Pour une version plus détaillée de ce tutoriel, avec plus d’explications sur chaque étape, veuillez vous référer à Comment installer la pile Linux, Apache, MySQL, PHP (LAMP) sur Ubuntu 20.04.

      Conditions préalables

      Pour suivre ce guide, vous devrez avoir accès à un serveur Ubuntu 20.04 en tant qu’utilisateur sudo.

      Étape 1 — Installer Apache

      Mettez à jour le cache de votre gestionnaire de paquets et installez ensuite Apache avec :

      • sudo apt update
      • sudo apt install apache2

      Une fois l’installation terminée, vous devrez ajuster les paramètres de votre pare-feu pour autoriser le trafic HTTP sur votre serveur. Exécutez la commande suivante pour autoriser l’accès externe sur le port 80 (HTTP) :

      • sudo ufw allow in "Apache"

      Avec l’ajout de la nouvelle règle de pare-feu, vous pouvez vérifier si le serveur est opérationnel en accédant à l’adresse IP publique ou au nom de domaine de votre serveur depuis votre navigateur web. Vous verrez une page comme celle-ci :

      Ubuntu 20.04 Apache par défaut 

      Étape 2 – Installer MySQL

      Nous allons maintenant installer MySQL, un système de gestion de base de données très répandu utilisé dans les environnements PHP.

      Là encore, utilisez apt pour acquérir et installer ce logiciel :

      • sudo apt install mysql-server

      Une fois l’installation terminée, il est recommandé d’exécuter un script de sécurité qui vient préinstallé avec MySQL. Lancez le script interactif en exécutant :

      • sudo mysql_secure_installation

      Il vous sera demandé si vous souhaitez configurer le VALIDATE PASSWORD PLUGIN. Répondez Y pour oui, ou tout autre chose pour continuer sans activer. Si vous répondez « oui », il vous sera demandé de choisir un niveau de validation du mot de passe.

      Votre serveur vous demandera ensuite de sélectionner et de confirmer un mot de passe pour l’utilisateur root de MySQL. Même si la méthode d’authentification par défaut pour l’utilisateur root de MySQL dispense de l’utilisation d’un mot de passe, même si celui-ci est défini, vous devez définir ici un mot de passe fort pour plus de sécurité.

      Pour le reste des questions, appuyez sur Y et appuyez sur la touche ENTRÉE à chaque invite.

      Note : Au moment de la rédaction de ce document, la bibliothèque MySQL PHP native mysqlnd ne prend pas en charge caching_sha2_authentification,la méthode d’authentification par défaut pour MySQL 8. Pour cette raison, lorsque vous créez des utilisateurs de base de données pour des applications PHP sur MySQL 8, vous devez vous assurer qu’ils sont configurés pour utiliser le mot de passe mysql_native_password à la place. Veuillez vous référer à l’étape 6 de notre guide détaillé LAMP sur Ubuntu 20.04 pour apprendre comment le faire.

      Étape 3 – Installer PHP

      Pour installer PHP et ses dépendances, exécutez :

      • sudo apt install php libapache2-mod-php php-mysql

      Une fois l’installation terminée, vous pouvez exécuter la commande suivante pour confirmer votre version de PHP :

      Output

      PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

      Étape 4 – Création d’un hôte virtuel pour votre site web

      Dans ce guide, nous allons mettre en place un domaine appelé your_domain, mais vous devez le remplacer par votre propre nom de domaine. 

      Apache sur Ubuntu 20.04 a un bloc serveur activé par défaut qui est configuré pour servir des documents à partir du répertoire /var/www/html. Au lieu de modifier /var/www/html, nous allons créer une structure de répertoire au sein de /var/www pour le site your_domain, en laissant/var/www/html en place comme répertoire par défaut à servir si une demande du client ne correspond à aucun autre site. 

      Créez le répertoire pour your_domain comme suit : 

      • sudo mkdir /var/www/your_domain

      Ensuite, attribuez la propriété du répertoire avec la variable d’environnement $USER qui fera référence à votre utilisateur actuel du système :

      • sudo chown -R $USER:$USER /var/www/your_domain

      Ensuite, ouvrez un nouveau fichier de configuration dans le répertoire sites-available d’Apache en utilisant votre éditeur de ligne de commande préféré :

      • sudo nano /etc/apache2/sites-available/your_domain.conf

      Cela créera un nouveau fichier vierge. Collez dans la configuration suivante :

      /etc/apache2/sites-available/your_domain.conf

      <VirtualHost *:80>
          ServerName your_domain
          ServerAlias www.your_domain
          ServerAdmin webmaster@localhost
          DocumentRoot /var/www/your_domain
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>
      

      Enregistrez et fermez le fichier lorsque vous avez fini de le modifier. Si vous utilisez nano, vous pouvez le faire en appuyant sur CTRL+X, puis sur Y et sur ENTER.

      Vous pouvez désormais utiliser a2ensite pour activer le nouvel hôte virtuel : 

      • sudo a2ensite your_domain

      Pour désactiver le site web par défaut d’Apache, tapez :

      • sudo a2dissite 000-default

      Pour vous assurer que votre fichier de configuration ne contient pas d’erreurs de syntaxe, exécutez :

      • sudo apache2ctl configtest

      Enfin, relancez Apache pour que ces changements prennent effet :

      • sudo systemctl reload apache2

      Votre nouveau site web est maintenant actif, mais le root web /var/www/your_domain est toujours vide. Créez un fichier index.html à cet endroit afin que nous puissions vérifier que l’hôte virtuel fonctionne comme prévu :

      • nano /var/www/your_domain/index.html

      Incluez le contenu suivant dans ce dossier :

      /var/www/your_domain/index.html

      <html>
        <head>
          <title>your_domain website</title>
        </head>
        <body>
          <h1>Hello World!</h1>
      
          <p>This is the landing page of <strong>your_domain</strong>.</p>
        </body>
      </html>
      

      Now open your browser and access the domain name or IP address of your server on port 8000 :

      http://server_domain_or_IP
      

      Vous verrez une page comme celle-ci :

      Test de l'hôte virtuel Apache

      Étape 5 – Tester PHP avec Apache

      Nous allons maintenant créer un script de test PHP pour confirmer qu’Apache est capable de gérer et de traiter les demandes de fichiers PHP.

      Créer un nouveau fichier nommé info.php à l’intérieur de votre dossier root web personnalisé : 

      • nano /var/www/your_domain/info.php

      Cela ouvrira un fichier vierge. Ajoutez le contenu suivant dans le fichier :

      /var/www/your_domain/info.php

      <?php
      phpinfo();
      

      Lorsque vous avez terminé, enregistrez et fermez le fichier.

      Allez dans votre navigateur web et accédez au nom de domaine ou à l’adresse IP de votre serveur, suivi du nom du script, qui est dans ce cas info.php

      http://server_domain_or_IP/info.php
      

      Vous verrez une page similaire à celle-ci :

      Ubuntu 20.04 PHP info 

      Après avoir vérifié les informations pertinentes sur votre serveur PHP par le biais de cette page, il est préférable de supprimer le fichier que vous avez créé car il contient des informations sensibles sur votre environnement PHP — et votre serveur Ubuntu. Pour ce faire, vous pouvez utiliser rm :

      • sudo rm /var/www/your_domain/info.php

      Tutoriels connexes

      Voici des liens vers des guides plus détaillés relatifs à ce tutoriel :



      Source link