Guest-Agent

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.

Mise à jour de la VM:

$ apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y

Installation du service:

$ apt install qemu-guest-agent

Et c’est tout, le service démarre à l’issue de l’installation et remonte les informations.

Si les informations ne remontent pas, redémarrez la VM.

Installation de Dolibarr sous Debian

Prérequis

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:

$ git clone https://github.com/Dolibarr/dolibarr.git dolibarr

Gestion des droits

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:

$ chmod -R 755 /var/www/dolibarr
$ chown -R www-data.www-data /var/www/dolibarr

Fichier de configuration

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.

$ nano /etc/apache2/sites-enabled/000-default.conf
$ nano /etc/apache2/sites-enabled/default-ssl.conf

Dans les deux fichiers de configuration, ajoutez le bloc de code suivant:

    <Directory /var/www/dolibarr/htdocs >
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Require all granted
    </Directory> 

Lancement de l’installation

Pointez votre navigateur sur la page principale:

http://adresseServer/install

Suivez les instructions de l’installateur.

Export et Import d’une base de données sous MariaDB.

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.

root@db02:~# ls -rtl /var/tmp/
total 8
-rw-r--r-- 1 root root 1970 janv. 19 18:06 dump_wrk.sql
-rw-r--r-- 1 root root 1990 janv. 19 18:08 dump_users.sql
root@db02:~#

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.

Source:


https://www.supinfo.com/articles/single/3943-export-import-une-base-donnees-mariadb

Changer Port SSH

  • Connectez-vous à votre serveur par SSH en tant qu’utilisateur root.
  • Éditez le fichier /etc/ssh/sshd_config en utilisant votre éditeur de texte préféré.
  • Trouvez la ligne correspondante à « Port 22 » et changez le « 22 » pour le numéro du port souhaité (Le port SSH par défaut est le 22).
  • Supprimez le signe « # » qui se trouve au début de la ligne (si présent).

La partie du fichier devrait ressembler à celle-ci:

Port 22
  • Sauvegardez le fichier et quittez l’éditeur de texte.
  • Redémarrez le service sshd:
$ systemctl restart sshd.service

Mouvement

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.

Rouler

Pour Commencer

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!

[pastacode lang= »javascript » manual= »async%20function%20startProgram()%20%7B%0A%20%20%20%20await%20speak(%22Hello%20World%22%2C%20true)%3B%0A%20%20%20%20setMainLed(%7B%20r%3A%200%2C%20g%3A%200%2C%20b%3A%20255%7D)%3B%0A%20%20%20%20setSpeed(60)%3B%0A%20%20%20%20await%20delay%20(2)%3B%0A%20%20%20%20setSpeed(0)%3B%0A%7D » message= »Hello World! » highlight= » » provider= »manual »/]

Bonjour Square!

Maintenant, transformez votre premier programme en un carré avec plus de logique:

[pastacode lang= »javascript » manual= »async%20function%20startProgram()%20%7B%0A%09setMainLed(%7B%20r%3A%200%2C%20g%3A%200%2C%20b%3A%20255%20%7D)%3B%0A%09await%20speak(%22Hello%20Square%22%2C%20true)%3B%0A%09await%20delay(1)%3B%0A%09for%20(var%20_i1%20%3D%200%3B%20_i1%20%3C%204%3B%20_i1%2B%2B)%20%7B%0A%09%09setMainLed(getRandomColor())%3B%0A%09%09await%20Sound.Game.Coin.play(true)%3B%0A%09%09await%20roll((getHeading()%20%2B%2090)%2C%2060%2C%201)%3B%0A%09%09await%20delay(1)%3B%0A%09%7D%0A%7D » message= »Hello Square! » highlight= » » provider= »manual »/]

Diffusion

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:

[pastacode lang= »javascript » manual= »async%20function%20startProgram()%7B%0A%20%20%20%20setSpee(188.0)%0A%2F%2F!ReferenceError%3A%20Can’t%20find%20variable%3A%20setSpee!%0A%20%20%20%20setMainLed(%7B%20r%3A%200%2C%20g%3A%20255%2C%20b%3A%200%20%7D)%3B%0A%20%20%20%20await%20delay(2)%3B%0A%7D » message= » » highlight= » » provider= »manual »/]

Types de données

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. 

Traduction de:

https://sphero.docsapp.io/docs/get-started

Gestion des utilisateurs Linux

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 :

$ adduser --home /var/www/votredomaine.tld/ --shell /bin/false --ingroup www-data votre-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.

Source:

https://jesuisadmin.fr/installer-serveur-ftp-plusieurs-utilisateurs-proftpd/

Changer les mots de passe des utilisateurs

Pour changer le mot de passe d’un utilisateur à sa place, d’abord accédez au compte “root” soit par login soit par:

$ su

Puis tapez:

$ passwd user (où user est le nom utilisateur pour le mot de passe à changer)

Le système va vous inviter à entrer un nouveau mot de passe. Les mots de passe n’apparaissent pas sur l’écran quand vous les tapez.

Vous pouvez aussi changer votre propre mot de passe en tapant:

$ passwd (sans spécifier un nom d'utilisateur)

Vous serez invité à entrer votre ancien mot de passe pour vérification puis un nouveau mot de passe.

Source:

http://www.linux-france.org/article/sys/lame/html/x780.html

Installer WordPress 5 avec Apache sur Debian 9

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.

$ apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y

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.

$ hostnamectl set-hostname hostname.yourdomain.com 

Vous devez également installer les utilitaires suivants, qui vous seront utiles ultérieurement pour résoudre divers problèmes de dépannage.

$ apt install net-tools sudo wget curl bash-completion

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

$ apt -y install lsb-release apt-transport-https ca-certificates
$ wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg 
$ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php7.3.list

Installation à proprement parlé

La dernière étape consiste à installer PHP 7.3 sur Debian 9 / Debian 8. Commencez par exécuter la commande apt update:

$ apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y

Puis installez PHP 7.3 sur Debian 9 / Debian 8:

$ apt -y install php7.3

Vérifier la version installée

$ php -v

Installation des extensions PHP 7.3

Installer les extensions PHP 7.3 en utilisant la syntaxe

$ apt install php7.3-<entension-name>

Voir l’exemple ci-dessous qui installe des extensions PHP standard.

$ apt install php7.3-cli php7.3-fpm php7.3-json php7.3-pdo php7.3-zip php7.3-gd  php7.3-mbstring php7.3-curl php7.3-xml php7.3-bcmath php7.3-json php7.3-xmlrpc

Pour installer Apache Module for PHP, exécutez:

$ apt install libapache2-mod-php7.3

Confirmer avec un:

$ apt policy php7.3-cli

Toutes nos félicitations!!. Vous avez correctement installé PHP 7.3 sur Debian 9 / Debian 8.

https://computingforgeeks.com/how-to-install-php-7-3-on-debian-9-debian-8/

Installation de la base de données.

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.

$ apt install php7.3-mysql mariadb-server mariadb-client

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.

$ nano /etc/apache2/sites-enabled/000-default.conf
$ nano /etc/apache2/sites-enabled/default-ssl.conf

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.

$ apache2ctl -t
$ systemctl restart apache2.service mariadb.service
$ systemctl enable apache2.service mariadb.service

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

$ echo '<?php phpinfo(); ?>' > /var/www/html/info.php

Installer WordPress 5.0

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)

$ wget https://fr.wordpress.org/wordpress-5.0.2-fr_FR.tar.gz
$ tar xfz wordpress-5.0.2-fr_FR.tar.gz
$ cp -rf wordpress/* /var/www/html/
$ rm /var/www/html/index.html

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.

Traduction de:

https://www.howtoforge.com/tutorial/install-wordpress-5-with-apache-on-debian-9/

Traduction de :

https://computingforgeeks.com/how-to-install-php-7-3-on-debian-9-debian-8/

Modifier les limites de transfère et de traitement de php.

Lors du transféré et du traitement des thème et/ou extension dans WordPress, l’opération s’arrêtai prématurément.

Parmi toutes les solutions existante, la solution retenue est la création/modification du fichier .htaccess.

Ajouter les lignes suivantes a votre fichier:

# Debut PHP.ini 
php_value upload_max_filesize 2M
php_value post_max_size 8M
php_value max_execution_time 30
php_value max_input_time -1
# Fin PHP.ini

Explication

php_value upload_max_filesize [integer]

La taille maximale en octets d’un fichier à charger.

php_value post_max_size [integer]

Définis la taille maximale des données reçues par la méthode POST. Cette option affecte également les fichiers chargés.

php_value max_execution_time [entier]

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.

php_value max_input_time [entier]

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.

Documentations

php_value upload_max_filesize 2M
php_value post_max_size 8M

http://php.net/manual/fr/ini.core.php

php_value max_execution_time 30
php_value max_input_time -1

http://php.net/manual/fr/info.configuration.php

http://php.net/manual/fr/faq.using.php/

Installer un serveur FTP (ProFTPd) sécurisé sur Debian 9

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.

TLSRSACertificateFile /etc/ssl/certs/proftpd.crt 
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key

On enregistre puis on ferme le fichier. On va maintenant créer les certificats.

Création de la clé

$ openssl genrsa -out /etc/ssl/private/proftpd.key 2048

Création du certificat

$ openssl req -new -x509 -days 3650 -key /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt

Il ne nous reste plus qu’à relancer le serveur ftp pour prendre en compte la nouvelle configuration :

$ service proftpd restart

Pour un usage ullterieur non obligation pur l’utilisateur d’avoir acces au shell

Changement des droit
sudo chown -R martin /chemin/vers/dossier

sudo echo "/bin/false" >> /etc/shells