Après l’installation d’une machine virtuel sous Debian et afin de faciliter le retour d’information au système hôte, vous pouvez installer l’agent QEMU sur la VM.
Dolibarr est conçu pour fonctionner avec les composants suivant:
OS
Tous les OS connus sont supportés.
Par exemple: Linux, BSD, Windows, MacOS, Aix, …
Bases de données
Mysql 5.0.3+ (toutes options/configurations possibles). N’utilisez pas les version 5.5.40 ni 5.5.41 qui ont des bugs critiques amenant perte de données.
Si le fonctionnement avec l’option mode=STRICT renvoie des warnings ou erreur merci de nous le signaler. Les tests dans ce mode sont rares, car cette option est rarement activée.
MariaDb 5.0.3+
PostgresSql 8.1.4+
MSSql (support expérimental non opérationnel)
Le volume requis est de 1Mo par tranche de 100 clients/fournisseurs enregistrés en base.
La configuration PHP doit permettre l’utilisation de 128Mb de mémoire (parametre PHP memory_limit).
PHP
Version min 5.4.0+ (requires functions like DateTimeZone.getOffset) – Version max 7.3.*
Le support des sessions doit être actif (c’est le cas par défaut en PHP)
Fonctionne quel que soit le paramètre register_globals
Fonctionne quel que soit le paramètre magick_quotes
Fonctionne quel que soit le paramètre safe_mode
La configuration PHP doit autoriser une taille de mémoire par session d’au moins 128 (paramètre memory_limit).
Espace disque
Les fichiers du programme occupe moins de 150Mo.
Toutefois, il vous faudra disposer de plus d’espace disque si vous uploader des pièces jointes ou pour stocker les factures PDF ou ODT générées. Le volume dépendra du nombre de pièces attachées.
Puissance CPU
Toute machine actuelle ou ancienne est assez puissante pour faire tourner Dolibarr, même un vieux 386. Au-delà de 50 utilisateurs, un serveur d’au moins 1Ghz est recommandé.
Installation:
Depuis une installation LAMP fonctionnel.
Creation de la base de donnée:
Connexion a MariaDB en tant que root:
$ mysql -u root -p
Création de la basse de donnée « dolibarr » avec un jeu de caractère spécifique:
MariaDB> CREATE DATABASE dolibarr DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Création d’un utilisateur « dolibarr-user » avec un mot de passe « dolibarr-pass » qui pourra gérer la base de donnée « dolibarr »
MariaDB> MariaDB> GRANT ALL PRIVILEGES ON dolibarr.* TO 'dolibarr-user'@'localhost' IDENTIFIED BY 'dolibarr-pass';
Maintenant, pour que les nouveaux droits attribués soient pris en compte, il est nécessaire de lancer la requête FLUSH.
MariaDB> FLUSH PRIVILEGES;
Copie des fichiers
Placez-vous dans le répertoire dans lequel installer Dolibarr (le répertoire racine défini pour votre serveur web):
$ cd /var/www
Récupérez l’application
Depuis les sources Git. Les fichiers seront extraits dans le dossier « dolibarr » a l’issue du téléchargement:
Modifiez les permissions et propriétaires du répertoire « dolibarr » pour être sûr que tous les fichiers soient en lecture pour l’utilisateur sur lequel tourne le serveur:
En tant que root, créez, dans le répertoire dolibarr/htdocs/conf, un fichier de configuration vide, et attribuez-lui comme propriétaire du fichier, l’utilisateur du serveur web (exemple www-data sur debian, nobody sur une vieille RedHat, apache sur une autre version …). Ceci est requis, car le serveur web a besoin d’écrire dans ce fichier lors de l’installation.
$ cd dolibarr ; touch htdocs/conf/conf.php ; chown www-data htdocs/conf/conf.php
Configurer le server web:
Configurez votre serveur Web pour qu’il utilise « dolibarr/htdocs » en tant que racine si votre serveur Web ne possède pas déjà de répertoire défini vers lequel pointer:
Ensuite, ouvrez les fichiers de configuration Apache pour les deux sites activés et ajoutez le bloc suivant sous la directive DocumentRoot, comme illustré dans la capture d’écran suivante.
Lors de l’administration de base de données SQL sous Linux, il se peut qu’un changement de serveur de base de données soit effectué. Par conséquent, toutes les bases de données contenues sur ce serveur se doivent d’être présente sur le serveur de destination.
En ce sens, par cet article, nous allons montrer comment utiliser les commandes fournies par le logiciel MariaDB pour, d’une part, exporter une base de données d’un serveur 1 et, d’autre part, l’exporter sur un serveur 2.
Pour cela, nous utiliserons deux serveurs distincts sous Debian 8 :
DB01, qui sera notre serveur historique, hébergeant nos bases de données.
DB02, qui sera notre nouveau serveur, sur lequel nous allons importer notre base de données.
Export de la base de données.
Sur DB01 :
Tout d’abord, regardons les bases de données que l’on a sur notre serveur.
###Connexion au service de base de données.
root@db01:~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 42
Server version: 10.0.28-MariaDB-0+deb8u1 (Debian)
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| users |
| wrk |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [(none)]>
Nous allons exporter les bases de données « users » et « wrk » dans deux fichiers .sql distincts. Pour cela, nous allons utiliser la commande mysqldump, fournie directement par le logiciel MariaDB.
###Export de la base de données wrk.
root@db01:~# mysqldump -u root -p -q --databases wrk > /var/tmp/dump_wrk.sql
Enter password:
###Export de la base de données users.
root@db01:~# mysqldump -u root -p -q --databases users > /var/tmp/dump_users.sql
Enter password:
root@db01:~#
Sur cette ligne de commande, nous avons les options suivantes :
-u : Permet de spécifier l’utilisateur avec lequel nous allons nous connecter. Ici, nous utilisons le compte « root », disposant de toutes les autorisations sur les bases de données.
-p : Permet de spécifier un mot de passe ; c’est une mesure d’authentification supplémentaire.
-q : Pour « Quick Mode ». Permet d’accélérer la création du fichier SQL lorsque de larges bases de données sont impliquées.
–databases : Permet de spécifier quelle base de données nous allons exporter.
Ainsi, nous avons donc sauvegardé nos deux bases de données dans le dossier /var/tmp. Par la commande cat, nous pouvons vérifier que notre export s’est bien déroulé.
Note : Ci-dessous, un exemple avec l’export de la base de données « wrk ».
root@db01:~# cat /var/tmp/dump_wrk.sql
-- MySQL dump 10.15 Distrib 10.0.28-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: localhost Database: localhost
-- ------------------------------------------------------
-- Server version 10.0.28-MariaDB-0+deb8u1
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Current Database: `wrk`
--
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `wrk` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `wrk`;
--
-- Table structure for table `wrk`
--
DROP TABLE IF EXISTS `wrk`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wrk` (
`id` int(11) NOT NULL,
`work` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `wrk`
--
LOCK TABLES `wrk` WRITE;
/*!40000 ALTER TABLE `wrk` DISABLE KEYS */;
INSERT INTO `wrk` VALUES (0,'TEST_WORK');
/*!40000 ALTER TABLE `wrk` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2017-01-19 23:30:00
root@db01:~
Nous allons maintenant envoyer nos deux fichiers sur notre second serveur. Pour cela, nous utilisons la commande SCP (Secure CoPy).
###Envoi de l'export de la base wrk.
root@db01:~# scp /var/tmp/dump_wrk.sql root@192.168.1.44:/var/tmp/dump_wrk.sql
The authenticity of host '192.168.1.44 (192.168.1.44)' can't be established.
ECDSA key fingerprint is 12:70:5a:21:06:b6:16:de:61:64:e3:e8:20:bd:6f:e6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.44' (ECDSA) to the list of known hosts.
root@192.168.1.44's password:
dump_wrk.sql 100% 1970 1.9KB/s 00:00
###Envoi de l'export de la base users.
root@db01:/var/tmp# scp /var/tmp/dump_users.sql root@192.168.1.44:/var/tmp/dump_users.sql
root@192.168.1.44's password:
dump_users.sql 100% 1990 1.9KB/s 00:00
root@db01:
Vérifions que nos fichiers sont bien copiés sur notre second serveur.
Passons désormais à l’import de nos bases de données sur notre second serveur, DB02.
Import de la base de données.
Sur DB02 :
Considérons que notre second serveur dispose d’une installation propre de MariaDB. Si nous regardons la configuration de nos bases sur ce serveur, nous avons ceci :
###Connexion au service de base de données.
root@db02:~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 42
Server version: 10.0.28-MariaDB-0+deb8u1 (Debian)
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
###Commande permettant de lister les bases de données disponibles.
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]>
Désormais, avant d’importer nos bases et leurs données, nous allons créer deux bases ayant le même nom.
###Connexion au service de base de données.
root@db02:~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 37
Server version: 10.0.28-MariaDB-0+deb8u1 (Debian)
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
###Creation de la base de données "users".
MariaDB [(none)]> CREATE DATABASE users;
Query OK, 1 row affected (0.00 sec)
###Creation de la base de données "wrk".
MariaDB [(none)]> CREATE DATABASE wrk;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| users |
| wrk |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [(none)]>
Nous pouvons désormais passer à l’import de nos bases de données. Pour cela, nous utilisons directement la commande mysql.
###Import de la base de données users.
root@db02:~# mysql -u root -p users < /var/tmp/dump_users.sql
Enter password:
###Import de la base de données wrk.
root@db02:~# mysql -u root -p wrk < /var/tmp/dump_wrk.sql
Enter password:
root@db02:~#
Les bases étant importées, nous pouvons vérifier si celles-ci disposent bien des données correspondantes.
###Connexion au service de base de données.
root@db02:~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 44
Server version: 10.0.28-MariaDB-0+deb8u1 (Debian)
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
###On se positionne sur la base de données wrk.
MariaDB [(none)]> use wrk;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
###Selection des données de la table wrk.
MariaDB [wrk]> SELECT * FROM wrk;
+----+-----------+
| id | work |
+----+-----------+
| 0 | TEST_WORK |
+----+-----------+
1 row in set (0.00 sec)
MariaDB [wrk]>
Ainsi, nous retrouvons bien les données que nous avions sur notre ancien serveur ; l’import s’est donc bien déroulé et nos bases sont accessibles.
Les mouvements contrôlent les moteurs du robot et le système de contrôle. Vous pouvez utiliser les commandes de mouvement séquentiel en les séparant par des sauts de ligne, comme le Bonjour tout le monde! programme. Robots sphéro se déplacent avec trois instructions de base: cap, la vitesse et la durée. Par exemple, si vous définissez cap = 0 °, vitesse = 60, durée = 3s, le robot rouler vers l’ avant pendant 3 secondes à une vitesse modérée.
Les robots Sphero sont des jouets amusants, durables et programmables! Ce wiki est un guide pour apprendre à programmer les robots Sphero avec JavaScript, le langage de programmation Web le plus répandu au monde. Vous aurez besoin d’un robot Sphero , de l’ application Sphero Edu sur un appareil compatible et d’une soif d’apprendre. Si vous apprenez à programmer pour la première fois, le meilleur endroit pour commencer sont les activités structurées .
Pourquoi JavaScript
JavaScript est l’un des langages de programmation les plus populaires au monde. C’est très utile pour créer des sites Web modernes, et il est même possible de créer des services back-end avec des extensions du langage. Il a été créé en 1995 par Brendan Eich de Netscape, l’une des premières sociétés Internet à avoir construit un navigateur Web populaire à l’époque de l’Internet par ligne commutée. Il a été nommé à l’origine « Mocha » par le fondateur de Netscape, Marc Andreessen, l’un des entrepreneurs les plus célèbres de la Silicon Valley.
Netscape a commencé à travailler avec Sun Microsystems, qui a développé Java, un langage populaire alimentant des applications sur les premiers ordinateurs, ordinateurs de poche et téléphones mobiles. Les deux sociétés étaient motivées à créer un plug-in afin que les applications Java existantes puissent s’exécuter en mode natif dans le navigateur Web de plus en plus populaire, sans avoir à être reconstruites. Donc, Netscape a créé un langage de script similaire à la syntaxe Java afin que ces applications puissent toujours être utilisées. De même, tous les programmeurs Java pouvaient s’adapter rapidement sans apprendre un nouveau langage à partir de zéro. Le langage était aussi très puissant. Avant JavaScript, la plupart des pages Web étaient construites uniquement en HTML et en CSS; ils étaient très statiques. JavaScript permet aux pages d’être plus dynamiques, d’utiliser des animations, de saisir des formulaires et de lire des médias.
Après une période de concurrence entre les différentes langues sur le Web, JavaScript est devenu la langue dominante. Vous pouvez désormais écrire du code JavaScript qui s’affiche dans tous les navigateurs Web modernes, tels que Chrome, Safari, Firefox et Internet Explorer, sur de nombreux appareils connectés à Internet. Si vous envisagez une carrière dans le développement de logiciels, la technologie ou la robotique, vous avez intérêt à connaître ce langage, car de nombreux emplois en JavaScript sont disponibles dans le monde entier. Même si vous ne poursuivez pas une carrière dans ces domaines, vous devrez faire preuve de créativité et résoudre des problèmes intrigants grâce à la programmation.
Vous avez peut-être déjà programmé un peu de JavaScript; il alimente les toiles de programmation Draw et Blocks dans l’application Sphero Edu et vous permet de visualiser le code Javascript derrière ces programmes. Maintenant, vous passerez des lignes et des glissements de blocs à l’écriture du code texte vous-même.
Hello World! (Bonjour le monde!)
À l’aide de votre appareil avec l’application Sphero Edu, créez un nouveau programme de texte, cliquez sur le symbole?bouton en haut à droite pour accéder à ce wiki et utilisez le bouton Copier pour copier et coller ces exemples de code dans la zone de texte. N’oubliez pas de viser votre robot, puis appuyez sur le bouton Démarrer pour voir ce qui se passe!
Votre code est diffusé en temps réel à 20 hertz (fois par seconde) entre votre appareil et le robot, au lieu de s’exécuter localement sur le robot. C’est plutôt cool pour plusieurs raisons. La mémoire des robots Sphero étant très réduite, la diffusion en continu vous permet d’utiliser la mémoire de votre appareil comme seule contrainte, ce qui est pratiquement illimité pour les appareils mobiles et les ordinateurs d’aujourd’hui. En outre, il vous permet d’interagir avec le programme en temps réel grâce aux données du capteur et à d’autres entrées. La nature en continu de votre programme nécessite async dans certains cas, comme par exemple avant la function startProgram() , indiquant que les données sont transmises au / à partir du robot chaque fois que cela est nécessaire. L’un des inconvénients de la diffusion en continu est que certaines commandes sont plus lentes en raison de la latence entre le périphérique et le robot. Par exemple, l’exécution d’une commande de async raw motor(255, 255, 0.05) est la durée la plus rapide (la plus courte) de fonctionnement du moteur brut (1s / 20hz = 0,05s). Si vous utilisez un délai plus court, comme 0,04 s, il fonctionnera quand même à 0,05 s.
Syntaxe
La syntaxe est l’ensemble de règles pour la construction des programmes.
Cas de caractère
La plupart des identifiants sont difficiles à décrire avec un mot. Par conséquent, la plupart sont plus de 2 mots appelés « identifiants composés ». Les langages de programmation n’autorisent généralement pas les espaces dans les identificateurs. La casse des caractères est donc la méthode par laquelle vous joignez des identificateurs composés pour supprimer des mots. Il existe des centaines de langages de programmation dans le monde, mais presque tous utilisent l’une de ces quatre méthodes de jonction: thisIsCamelCase , ThisIsPascalCase , this-is-spinal-Case et this_is_snake_case . Javascript est sensible à la casse et utilise camelCase , tel que setSpeed pour définir la vitesse.
Ponctuation
Le code doit être structuré de manière à pouvoir être interprété par le robot, exactement comme les humains se sont mis d’accord sur des normes de ponctuation écrites. Si les auteurs n’écrivaient pas avec les règles de ponctuation, les lecteurs auraient du mal à apprendre de nouvelles règles dans chaque livre qu’ils lisent. Portez une attention toute particulière à l’utilisation de ces personnages, sinon votre robot ne pourra pas « lire » votre programme:
async function startProgram() lance un programme
{ et } contiennent tout le code du programme, à l’exception des fonctions globales et des variables
// indique un commentaire et n’affecte pas la logique du programme. Si vous avez un commentaire long qui couvre plus d’une ligne de code, vous devez utiliser cette notation sur chaque ligne.
; termine une déclaration
( ) contiens une valeur
, sépare les valeurs
_____ un espace de tabulation commence la première instruction d’un programme et les conditions suivantes doivent indenter davantage
Les erreurs
Les erreurs vous indiquent quand le robot ne peut pas interpréter votre syntaxe. Dans l’exemple ci-dessous, notez quesetSpeed est mal orthographié. Dans ce cas, le robot ne peut pas lire la commande et le message d’erreur rouge s’affiche sous la ligne erronée. Copiez ce programme et corrigez-le afin qu’il s’exécute sans erreur:
Il existe différents types de données dans la programmation qui décrivent combien d’espace un numéro occupe dans la mémoire et comment il est interprété.
Certaines langues définissent plus de types de données que d’autres. Javascript utilise les types intégrés suivants:
Types les plus couramment utilisés number : valeurs comme -7 et 3.14159265359 string : combinaisons de lettres, de chiffres et de ponctuation, du type « Ne soyez pas L8 en classe ». boolean : une des valeurs logiques true ou false
Types spéciaux à usages spéciaux null : valeur spéciale signifiant « défini comme rien ». Nous reviendrons sur cette idée plus tard. undefined : une autre valeur spéciale signifiant « cette variable n’a jamais été définie » ou, parfois, « cette variable a été affectée à une valeur absurde » symbol : un type relativement nouveau pour les utilisateurs avancés
Javascript fournit également l’ Object que nous utiliserons pour créer des types personnalisés à partir des types intégrés.
Ajouter un utilisateur au groupe www-data pour proftpd
Pour ajouter un utilisateur, il faut définir son dossier home qui correspond au dossier du site web concerné, et l’ajouter au groupe www-data pour qu’il n’y ai pas de problème au niveau des permissions. Remplacez dans la commande suivante le dossier utilisé après –home et le nom de l’utilisateur :
La commande précédente inclut la directive –shell /bin/false, interdisant ainsi l’accès au shell pour le nouvel utilisateur puisque nous avons précédemment défini que l’utilisation du serveur FTP ne nécessitait pas un accès valide au shell.
Enfin pour ajouter les permissions au groupe sur un dossier on utilise :
$ chmod -R g+rw /var/www/domainname
Votre utilisateur pourra ainsi ajouter ou supprimer des fichiers en se connectant via un client ftp, mais il ne pourra pas accéder à d’autres fichiers que ceux présents dans son dossier –home et il n’aura pas accès au serveur via ssh.
Ce tutoriel vous montrera comment installer et configurer la dernière version de WordPress 5 sur une pile LAMP dans Debian 9 – Stretch .Wordpress est sans aucun doute l’un des systèmes de gestion de contenu open source ou CMS les plus populaires actuellement utilisés pour la publication sur Internet. Il alimente plus de 60 millions de sites Web dans le monde, qu’il s’agisse de petits sites de blogging ou de grandes marques. Basé sur les moteurs PHP et MySQL, WordPress est souvent associé à la collection LAMP, soit installé sur des serveurs dédiés ou des serveurs privés virtuels, soit sur des fournisseurs d’hébergement Web partagés. L’acronyme LAMP décrit une collection de logiciels, appelée groupement de logiciels, qui consiste généralement en un noyau Linux Open Source, quelle que soit la distribution choisie, le serveur HTTP Apache , qui est l’un des serveurs Web open source les plus populaires sur Internet en raison de sa stabilité, flexibilité et performance, langage de programmation interprété PHP côté serveur et le système de gestion de base de données relationnelle (RDBMS) MariaDB , qui est l’un des logiciels de base de données les plus populaires, développé et développé simultanément par la communauté open source à partir de MySQL d’origine.
Exigences
Une nouvelle installation du système d’exploitation Debian 9 sur un serveur privé virtuel ou une machine virtuelle ou directement sur une machine dédiée nu-metal.
Accès à distance SSH en cas d’accès VPS ou serveur distant ou accès direct à la console
Au moins une adresse IP statique pour une interface réseau configurée sur le serveur
Si la page Web devait être accessible au public sur Internet, vous auriez besoin d’un nom de domaine public enregistré avec les enregistrements DNS appropriés configurés. Au cours de ce didacticiel, nous utiliserons exemple.com comme exemple de domaine et une adresse IP statique issue d’un espace privé, en NAT, derrière le routeur principal. Le domaine sera accessible depuis Internet en transférant les ports Apache 80 et 443 du côté du routeur vers le réseau local de la machine virtuelle auto-hébergée.
Installer le logiciel LAMP
La première chose à faire avant de commencer à installer tous les composants de LAMP est de vous connecter au serveur Debian 9 et d’exécuter une procédure à jour pour tous les composants du système, tels que les mises à niveau du noyau, les mises à jour de paquets ou les correctifs de sécurité, en lançant la procédure suivante: commandes suivantes avec les privilèges root.
Dans l’étape suivante, vous devez configurer le nom de votre ordinateur en remplaçant la variable hostname par votre propre nom descriptif en exécutant la commande ci-dessous. Sachez que vous devrez peut-être redémarrer le système pour pouvoir appliquer le nouveau nom d’hôte en conséquence.
Une fois le nom d’hôte de la machine appliqué, reconnectez-vous avec les privilèges root et installez le serveur HTTP Apache, pré-compilé par défaut dans un paquet binaire et fourni par les référentiels Debian 9.
$ apt install apache2
Ensuite, installez la dernière version de l’interpréteur de langage PHP et tous les modules requis pour le serveur Web Apache afin de déployer WordPress CMS en exécutant la commande suivante.
Installation de PHP 7.3
A ce jour, la version actuelle de PHP 7.3 est RC 6. Cet article sera mis à jour dès que la version stable de LTS sera disponible pour le grand public. Cette version de PHP est destinée au développement et aux tests et ne doit pas être utilisée dans un environnement de production.
Ajouter un référentiel PHP 7.3 PPA
Une fois que la commande add-apt-repository est disponible, ajoutez le référentiel PHP 7.3 PPA
Le dernier composant manquant maintenant pour que la pile LAMP soit complète est le serveur de base de données MariaDB.Exécutez la commande suivante pour installer le serveur MariaDB avec le module PHP requis pour accéder à la base de données à partir du serveur HTTP Apache.
Une fois la base de données MariaDB installée, démarrez le démon et sécurisez-la avec le script mysql_secure_installation encours d’ exécution , comme illustré dans l’extrait ci-dessous. Répondez principalement par oui à toutes les questions que le script vous invite. Assurez-vous également de choisir un mot de passe fort pour le compte root. Sachez que le compte root MySQL n’est pas identique au compte root Linux. Le premier est utilisé uniquement pour gérer la base de données MariaDB et le second est le compte superutilisateur de chaque système Linux. Ces comptes ne se chevauchent jamais dans un système
$ systemctl start mariadb
$ mysql_secure_installation
REMARQUE: L’UTILISATION DE TOUTES LES PARTIES DE CE SCRIPT EST RECOMMANDÉE POUR TOUTES LES MariaDB.
LES SERVEURS EN UTILISATION EN PRODUCTION! VEUILLEZ LIRE ATTENTIVEMENT CHAQUE ÉTAPE!
Pour vous connecter à MariaDB afin de le sécuriser, nous avons besoin de la version actuelle.
mot de passe pour l'utilisateur root. Si vous venez d'installer MariaDB, et
vous n'avez pas encore défini le mot de passe root, le mot de passe sera vide,
donc vous devriez juste appuyer sur entrer ici.
Entrez le mot de passe actuel pour root (entrez pour aucun):
OK, mot de passe utilisé avec succès, passe à autre chose ...
La définition du mot de passe root garantit que personne ne peut se connecter à MariaDB
utilisateur root sans l'autorisation appropriée.
Définir un mot de passe root? [Y / n] y
Nouveau mot de passe:
Ré-entrez le nouveau mot de passe:
Mot de passe mis à jour avec succès!
Rechargement des tables de privilèges ..
... Succès!
Par défaut, une installation MariaDB a un utilisateur anonyme, permettant à quiconque
pour vous connecter à MariaDB sans avoir à créer un compte utilisateur pour
leur. Ceci est uniquement destiné aux tests et à l'installation
aller un peu plus lisse. Vous devriez les enlever avant de passer à un
environnement de production.
Supprimer les utilisateurs anonymes? [Y / n] y
... Succès!
Normalement, root ne devrait être autorisé à se connecter qu'à partir de 'localhost'. Ce
s'assure que quelqu'un ne peut pas deviner le mot de passe root du réseau.
Interdire la connexion root à distance? [Y / n] y
... Succès!
Par défaut, MariaDB est livré avec une base de données nommée 'test' que tout le monde peut
accès. Ceci est également destiné uniquement à des tests, et doit être supprimé
avant de passer dans un environnement de production.
Supprimer la base de données de test et y accéder? [Y / n] y
- Supprimer la base de données de test ...
... Succès!
- Suppression des privilèges sur la base de données de test ...
... Succès!
Le rechargement des tables de privilèges garantira que toutes les modifications apportées jusqu'à présent
entrera en vigueur immédiatement.
Recharger les tables de privilèges maintenant? [Y / n] y
... Succès!
Nettoyer...
Terminé! Si vous avez terminé toutes les étapes ci-dessus, votre MariaDB
l'installation devrait maintenant être sécurisée.
Merci d'avoir utilisé MariaDB!
Nous n’avons pas encore fini de sécuriser la base de données MariaDB. Par défaut, vous pouvez vous connecter à MariaDB à partir de localhost avec le compte racine de la base de données sans demander de mot de passe. Pour éviter d’éventuels problèmes de sécurité, connectez-vous à la base de données avec l’utilisateur root et exécutez les commandes suivantes.
$ mysql -u root -p
MariaDB> use mysql;
MariaDB> update user set plugin='' where User='root';
MariaDB> flush privileges;
MariaDB> quit
Maintenant, testez la base de données en essayant de vous connecter avec un compte root sans le mot de passe. L’accès à la base de données MariaDB devrait vous être refusé.
Dans l’étape suivante, nous activerons et configurerons TLS et réécrirons les modules du serveur Web Apache, qui sont désactivés par défaut. Exécutez les commandes ci-dessous pour activer les deux modules.
$ a2enmod rewrite ssl
$ a2ensite default-ssl.conf
Ensuite, ouvrez les fichiers de configuration Apache pour les deux sites activés et ajoutez le bloc suivant sous la directive DocumentRoot, comme illustré dans la capture d’écran suivante.
Dans les deux fichiers de configuration, ajoutez le bloc de code suivant:
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
Dans le fichier de configuration TLS apache default-ssl.conf , vous pouvez également ajouter le contenu ci-dessous, s’il n’existe pas, afin d’améliorer la sécurité du protocole SSL Apache. Ces lignes de code devraient corriger les vulnérabilités SSL courantes.
SSLProtocol all -SSLv2 -SSLv3 # Add SSL Cipher in one long line SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA SSLHonorCipherOrder on SSLOptions +StrictRequire
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff
Si les lignes illustrées dans l’extrait ci-dessus existent déjà dans le fichier de configuration SSL Apache, veillez à les modifier pour qu’elles ressemblent à celles décrites ci-dessus. Pour appliquer ces paramètres, activez le module d’ entêtes Apache et redémarrez le service en exécutant les commandes suivantes:
$ a2enmod headers
$ systemctl restart apache2.service
Pour un site Web de production, l’activation du module Apache TLS doit être obligatoire, car WordPress CMS génère principalement du contenu dynamique via une passerelle PHP et gère également le processus d’authentification pour ses utilisateurs internes.L’utilisation de la technologie TLS garantit que les informations transférées sont cryptées aux deux extrémités et que la connexion est sécurisée. Un tiers ou un intervenant peut intercepter le trafic mais ne peut pas déchiffrer le contenu, car les informations ne sont pas fournies en texte brut.
Une fois que vous avez apporté toutes les modifications ci-dessus, testez la configuration d’Apache afin de détecter les erreurs de syntaxe potentielles. Si tout va bien, redémarrez les démons LAMP afin de refléter toutes les modifications apportées jusqu’à présent et d’activer les services à l’échelle du système en exécutant les commandes suivantes.
Enfin, vérifiez si les services Apache et MariaDB ont ouvert des ports en état d’écoute en lançant la commande netstat et en filtrant la sortie à l’aide de egrep. À présent, le serveur Web Apache devrait disposer des ports 80 et 443 (correspondant aux protocoles HTTP et https) généralement exposés et MariaDB devrait être ne lie que sur localhost: socket 3306 . Utilisez la commande -n avec netstat pour supprimer l’affichage des noms de services.
$ netstat -tlp| egrep 'http|mysql'
Pour vous assurer que votre serveur Web est accessible depuis Internet via les protocoles HTTP et HTTPS, ouvrez un navigateur et accédez à votre nom de domaine. En naviguant via le protocole HTTPS, une erreur de certificat sera affichée dans le navigateur.Cela est dû au fait que le fichier de configuration TLS par défaut d’Apache est configuré pour utiliser des certificats auto-signés. Vous devez accepter l’erreur TLS et continuer à naviguer vers la page Web par défaut, comme illustré ci-dessous.
Si vous ne pouvez pas accéder à la page Web par défaut de votre domaine sur Internet, vous devez tout d’abord vérifier si certaines règles de pare-feu du système bloquent les demandes ou assurez-vous que les ports appropriés du routeur sont transférés dans votre réseau local interne au cas où le serveur est installé derrière un ordinateur. Réseau NAT-ed. Vous pouvez également vérifier les enregistrements DNS dans le panneau de votre registraire de domaine et vous assurer qu’ils pointent vers votre IP WAN et si les enregistrements ont fini de se propager sur Internet.
Afin de vérifier si PHP fonctionne comme prévu sur le serveur, créez un PHP php dans / var / www / html / system path, qui est le chemin racine du document Web par défaut du serveur Web Apache, en exécutant la commande ci-dessous et accédez à l’URI suivant à partir du navigateur pour obtenir le résultat: http://www.votredomaine.com/info.php
Maintenant que la pile LAMP est entièrement configurée, l’installation de WordPress CMS est relativement simple. Tout d’abord, connectez-vous à la base de données MariaDB et créez une base de données d’installation pour WordPress et un utilisateur disposant du mot de passe approprié pour installer et gérer le CMS WordPress, en exécutant les commandes ci-dessous. N’hésitez pas à remplacer le nom de la base de données et les informations d’identification de la base de données pour répondre à vos propres besoins.
$ mysql -u root -p
MariaDB> CREATE DATABASE wordpress;
MariaDB> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress-user'@'localhost' IDENTIFIED BY 'wordpress-pass';
MariaDB> FLUSH PRIVILEGES;
Ensuite, téléchargez la dernière archive WordPress à partir du site officiel à l’aide de l’utilitaire wget et extrayez l’archive compressée à l’aide de l’utilitaire tar . Copiez les fichiers d’installation dans le chemin racine du document du serveur Web Apache en exécutant les commandes ci-dessous. Assurez-vous également de supprimer la page Web index.html par défaut.
$ cd /tmp
Pour la dernière version (en anglais)
$ wget http://wordpress.org/latest.tar.gz
$ tar xfz latest.tar.gz
Pour la version 5.0.2 en français. (dernière version au jour ou j’écris ces mots)
Modifiez les autorisations du chemin d’accès à la racine Web Apache comme décrit ci-dessous afin d’octroyer des autorisations d’écriture complètes au groupe de données www du serveur Web sur le répertoire d’installation. Cette configuration permettra au serveur Web Apache de créer ou de modifier des fichiers et des répertoires sous ce chemin système spécifique. Les plus importants sont le répertoire de téléchargement et le fichier .htaccess , qui peuvent être utilisés pour contrôler et étendre les fonctionnalités d’Apache.
$ chmod -R 775 /var/www/html/
$ chgrp -R www-data /var/www/html/
ls -al /var/www/html
Maintenant que tout est en place, commençons par installer WordPress. Le processus d’installation sera effectué à partir du navigateur. Ouvrez un navigateur et visitez votre domaine via le protocole HTTPS. Sur le premier écran de l’installation , cliquez sur le bouton Let’s go pour lancer l’installation.
Dans l’écran d’installation suivant, ajoutez le nom de la base de données, les informations d’identification d’accès à la base de données et l’hôte de base de données que vous avez créé précédemment pour l’installation de WordPress, puis cliquez sur lebouton Soumettre pour continuer. La configuration de la base de données sera enregistrée dans /var/www/html/wp-config.php. Vous pouvez modifier le fichier manuellement à une date ultérieure à des fins spéciales pour WordPress.
Sur l’écran suivant, cliquez sur Exécuter le bouton d’ installation et indiquez le titre de votre site Web, les informations d’identification de l’administrateur du site Web et l’adresse électronique. Un mot de passe fort doit être généré automatiquement par les scripts d’installation. Vous pouvez choisir de sauvegarder ce mot de passe ou de fournir votre propre mot de passe fort. Lorsque vous avez terminé, cliquez sur le bouton Installer WordPress pour terminer le processus d’installation.
Enfin, une fois l’installation terminée, connectez-vous au tableau de bord WordPress avec les informations d’identification créées au cours du processus d’installation et commencez à gérer votre propre site Web.
Connectez-vous à WordPress backend.
Tableau de bord d’administration WordPress.
Modification d’un article dans le nouvel éditeur WordPress Gutenberg.
WordPress 5.0 Frontend avec le nouveau thème TwentyNineteen.
Toutes nos félicitations! Vous avez correctement installé la dernière version de WordPress CMS sur le paquet de logiciels LAMP dans Debian 9, nom de code Stretch.
Fixe le temps maximal d’exécution d’un script, en secondes. Cela permet d’éviter que des scripts en boucles infinies saturent le serveur. La configuration par défaut est de 30 secondes. Lorsque PHP fonctionne depuis la ligne de commande, la valeur par défaut est 0.
Cette option spécifie la durée maximale pour analyser les données d’entrée, comme POST et GET. Cette durée est mesurée depuis le moment où PHP est invoqué sur le serveur jusqu’au début de l’exécution du script. La valeur par défaut est -1, ce qui veut dire quemax_execution_time est utilisé à la place. Régler la valeur à 0 pour permettre une exécution illimitée.
Nota
Certaines directives PHP peuvent prendre des noms littéraux, et pas seulement des valeurs entières. Quels sont tous les raccourcis disponibles?
Les options disponibles sont K (pour Kilo octets) et M (pour mégaoctet) et G (pour gigaoctet ; disponible depuis PHP 5.1.0), ils sont insensibles à la casse. Tout autre syntaxe est supposée représenter des octets. 1M équivaut à un mégaoctet ou 1048576 octets. 1Kéquivaut à un kilooctet ou 1024 octets. Ces notations abrégées peuvent être utilisées dans le fichier php.ini et dans la fonction ini_set(). Notez que la valeur numérique est transtypé en entier ; par exemple, 0.5M est interprété comme 0.
Lorsqu’on gère un site internet hébergé sur un serveur distant, nous communiquons souvent avec celui-ci en ftp. Mais trop souvent, cette connection n’est pas sécurisé. Voyons comment remédier à cela.
Prérequis
Nous allons installer un serveur ftp sur une distribution Debian Stretch. Pour cela, il va nous falloir les accès root.
Installation de ProFTPd
ProFTPd se trouve directement dans les dépôts de debian. Pour l’installer, vous n’avez qu’à lancer la commande :
$ apt-get install proftpd
Configuration de base de ProFTPd
La configuration de ProFTPd se passe dans /etc/proftpd/proftpd.conf . Ouvrons-le pour l’éditer.
$ nano /etc/proftpd/proftpd.conf
De base, chaque utilisateur sera connecté à son espace Home. Si vous souhaitez utiliser votre serveur ftp pour gérer vos sites web, il peut être interessant de rediriger la connexion vers l’espace de stockage des sites.
Default Root /var/www/html
Voilà, votre serveur est installé et prêt à être utilisé. ProFTPd est très complet, vous pouvez le paramétrer de façon beaucoup plus fine et vous pouvez également regarder du côté des nombreux plugins.
Sécuriser votre serveur FTP
Toujours dans le fichier de configuration /etc/proftpd/proftpd.conf, changer le port standard.
# Port 21 is the standard ftp port. Port 21
Décommenter la ligne suivante afin de charger le fichier de configuration de tls.
# # This is used for FTPS connections # Include /etc/proftpd/tls.conf
Vous pouvez enregistrer puis fermer ce fichier de configuration.
Nous allons maintenant ouvrir le fichier /etc/proftpd/tls.conf précedemment chargé.
$ nano /etc/proftpd/tls.conf
Décommentez les lignes suivantes :
TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSVerifyClient off #TLS obligatoire (off si possibilité de se connecter sans tls) TLSRequired on
Nous allons ajouter la ligne suivante avant
Include /etc/proftpd/tls.conf
Nous allons aussi décommenter les deux lignes suivantes permettant de charger les certificats puis nous les créérons dans les répertoires définis.