Installation et configuration

d'un raspberry 

en web server Lemp.

 

 

 

Bonjour à tous, cet article est dédié à la configuration d'un Raspberry comme serveur web. Pas besoin d'écrans ni de claviers, juste un Raspberry et votre ordinateur. Nous allons faire cela en ligne de commande, n'ayez pas peur je vous accompagnerai tout au long de ce tuto. 

Cet article est destiné aux personnes qui débutent tout comme moi dans le monde de linux et du Raspberry.  Tout au long de l'article nous apprendrons à:

-manipuler des commandes indispensables à l'utilisation de linux

-piloter notre Raspberry avec une console SSH,

-installer un service Web Nginx avec PHP

-installer Mysql, adminer et Phpmyadmin

-activer le SSL du HTTPS

-partager un dossier sur notre réseau informatique

-monter un disque dur pour sauvegarder nos données. 

A la fin de ce tuto nous aurons un serveur web fonctionnel, prêt à l'emploi.

 

 

 

 

Sommaire

 

 

 Les prérequis

 

Pour suivre ce tuto il nous faudra un minimum de matériel pour que notre raspberry fonctionne. Sur le mien j'ai installé un dissipateur thermique passif. Le but étant de créer un serveur web économique qui offre une bonne expérience de navigation, j'ai décidé de m'orienter vers ces choix.

arduino mega  tft 2 8 240 320
J'ai choisi un Raspberry P4 8 Go de Ram.Mon but étant de créer un serveur réactif qui saura gérer mes objets connectés.

 Une alimentation 3 ampères, j'ai pris une alimentation raspberry officielle le prix est correct. 

NRF24L01   ESP8266 serial
Une micro carte SD performante. Qui permettra une vitesse d'accès confortable, elle hébergera l'OS, ne négligez pas la qualité!! J'ai pris une 128 Go car ma base de données évolue rapidement.  En option un dissipateur thermique permettra d'optimiser les performances du Raspberry. J'ai choisi un dissipateur statique cela permettra de limiter la consommation électrique tout en espérant de bonnes performances. 
Alimentation 800ma resistor 4.7K 
Un câble RJ45 permettra de raccorder le Raspberry au routeur de notre installation. Un adaptateur Micro SD vers USB qui va permettre d'installer l'OS Raspbian sur la carte Micro SD.

 

 

 

Choix et installation de L'OS

 

L'OS est le système d'exploitation qui va gérer le micro ordinateur Raspberry, windows est un OS. Le Raspberry peut accueillir plusieurs types d'OS, Raspbian, Ubuntu,.... Ils sont basés sur la distribution Debian, seul l'interface graphique change réellement. Dans la suite nous allons choisir un OS le plus léger possible afin d'optimiser le fonctionnement de notre serveur Web, gardons nos objectifs en tête ;-).  Rendons nous sur le site officiel du Raspberry pour télécharger l'utilitaire d'installation Raspberry pi imager.

acceuil software


 

Installons le logiciel, puis ouvrons celui-ci. Au préalable nous aurons branché la carte micro SD via l'adaptateur à notre ordinateur. Cliquons sur le bouton "choose SD card" pour sélectionner notre carte SD. 

Puis il vat nous falloir choisir l'OS que nous voulons installer. Pour l'application que nous voulons faire nous n'avons pas besoin d'interface graphique et nous souhaitons un OS léger, c'est pourquoi j'ai choisi l'OS Raspbian Lite.  Gravons notre carte en cliquant sur write. Un message vous informera que l'installation est terminée.


Choix OS

Ce n'est pas tout à fait fini, pour pouvoir communiquer avec notre Raspberry il faut activer le SSH. Il nous permettra de nous connecter à notre Raspberry. Pour cela il suffit de créer un fichier nommé ssh sans extension dans la racine boot de la carte SD. Déconnectons puis reconnectons l'adaptateur USB pour qu'il soit reconnu par Windows et ajoutons ce fichier.

ssh file

Après avoir inséré notre carte SD dans le Raspberry nous pouvons le connecter à notre réseau grâce au câble RJ45. La première mise en marche prend un peu de temps car l'OS s'installe.

 rapberry connected

 

 

Installation et configuration de la console putty

 

Nous avons besoin d'une console SSH pour nous connecter à notre Raspberry, rendons sur le site officiel Putty pour télécharger le logiciel puis l'installer.

 

Il faut que nous trouvions le raspberry sur le réseau. Pour cela assurez vous d'être connecté sur le même réseaux. Le groupe de travail du raspberry est par défaut le même que celui de windows (WORKGROUP), le host name du Raspberry est raspberrypi. Si vous êtes sur le même réseau il vous sera facile de vérifier sa présence en ouvrant l'invite de commande  de Windows ( cmd dans le menu )  en envoyant un "ping raspberrypi" , il devrait vous retourner son adresse IP. Si vous rencontrez des difficultés, vous pouvez télécharger des scanners réseaux comme le macscanner de colasoft.

 

ping raspberry

 

Maintenant ouvrons le logiciel Putty. Pour ne pas perdre vos habitudes de frappes, je vous propose de configurer la touche "del" de l'interface. Dans le cas contraire il vous faudra utiliser Ctrl-H pour effacer.

Del putty

 

Ceci fait configurons la connexion dans l'onglet "Session". Vous pouvez enregistrer ces informations grâce au bouton "Save".  Si votre nom d'hôte ne fonctionne pas vous pouvez le remplacer par son adresse ip 192.168.XXX.XXX.

choice partition

 

Cliquer sur Open pour ouvrir la session, une fenêtre vous avertie de la création d'une clé de cryptage, valider la demande.

Le PC est prêt, attaquons nous à la configuration du Raspberry.

 

 

 

 Connexion  au Raspberry

 

L'invite de commande du Raspberry nous demande de nous logger. Pour cela nous allons utiliser l'utilisateur par défaut "pi". Son mot de passe par défaut est raspberry. Connectons-nous en informant ces deux informations.


acceuil software

 

Nous sommes maintenant connectés avec l'utilisateur pi de la machine Raspberrypi. Par mesure de sécurité nous allons immédiatement changer le mots de pass de l'utilisateur pi, pour cela taper ce qui suit, un nouveau mot de passe vous sera demandé. Pour coller les textes il suffit de les copier (ctrl-c) puis de faire un click droit dans la console pour les coller.

sudo passwd pi

 sudo : permet de passer en mode super utilisateur afin d'avoir les droits pour changer le mot de passe, il sera souvant utilisé  par la suite.

 passwd:  est une commande qui permet de changer le mot de passe d'un utilisateur, ici pi.  

Second point important avant de commencer notre configuration, nous allons mettre à jour notre raspberry. Contrairement à windows tous les logiciels ce trouvent dans des depots qui sont consultables sur internet. Cette mise à jour ce fait en deux étapes. La première consiste à mettre à jour le cache (un fichier) des paquets installés grace la commande apt-get update. Je rappelle que les commandes sont les mêmes sur tous les systèmes Debian (Ubuntu,..).

sudo apt-get update

Puis de mettre à jour le raspberry, cela prendra quelques minutes.

sudo apt-get upgrade

 Astuce: Avec la touche tabulation vous pouvez activer l'auto-complémentation. Cela permet de compléter automatiquement la frappe en cours en appuyant sur la touche tabulation. Cela fonctionne aussi bien pour les commandes que pour les noms de fichiers et de répertoires. 

Cela fait nous allons configurer notre raspberry,  un utilitaire propre au Raspberry permet de nous aider.

sudo raspi-config

raspi config

 

 L'utilitaire va nous permettre de régler notre raspberry, notamment le fuseau horaire.

time zone

 

 

 Maintenant tous nos outils de travail sont prêts à être utilisés.

 

 

 

Installation du serveur web Nginx et de PHP

 

 

II existe plusieurs serveurs Web/html, open source. Vous avez certainement entendu parler d' Apache. Notre objectif étant d'optimiser les ressources, nous allons en utiliser un autre, il s'agit de Nginx, il est lui aussi largement utilisé et a l'avantage de consommer moins de ressources. En contrepartie certaines fonctionnalités tel que .httacces de apache ne seront pas disponibles. De plus nous allons utiliser une version alléger de PHP, celle-ci ce nomme php-fpm.

Pour installer Nginx et PHP  je me suis largement inspiré de ce tuto. Nous allons une nouvelle fois utiliser la commande apt-get  suivit de install , il est possible d'installer plusieurs packages en une seule commande.

sudo apt-get install nginx php-fpm

 Note: Il est possible d'afficher une aide pour chaque commande, pour cela il  faut d'utiliser la synthase man suivit de la commande.

exemple: man apt-get

Voilà on ne peut pas faire plus simple, Nginx est maintenant installé, il ne nous reste plus qu'à le configurer. Pour cela nous allons utiliser un éditeur de texte. Il s'appelle nano. Pour nous aider à l'utiliser nous allons commencer par changer un peu sa configuration. Mais d'abord un peu de formations sur des commandes qui vont nous permettre de naviguer.

Lors de l'installation de l'OS, plusieurs répertoires ont été créés, chaque répertoire à une fonction bien définit.

home->fichiers utilisateur,

etc->fichiers de configuration,

bin->fichiers programme, 

var->variables...

Lorsque vous vous connectez à un utilisateur vous êtes automatiquement diriger vers votre répertoire personnel soit /home/pi, noté aussi ~,  sur l'invite de commande . La commande "ls" vous permet de lister les fichiers et dossiers qui sont présents sous le dossiers où vous êtes. Pour naviguer dans les répertoires vous pourrez utiliser la commande cd. 

cd utilisé seul vous dirige vers votre répertoire utilisateur /home/utilisateur

cd nom_repertoire vous dirige sur le répertoire nommé (déplacement relatif)

cd .. revient sur le répertoire précédent

cd /home/pi     l'écriture du chemin complet vous dirige vers celui-ci (déplacement absolu)

Si vous voulez en connaître plus et être à l'aise avec Lunix  en particulier les distributions Debian, je vous conseille vivement ce cours d'openclassrooms. 

Maintenant que nous avons intégré le fonctionnement de ces outils de base nous allons pouvoir facilement ouvrir le fichier de configuration de nano grâce à cette commande. 

sudo nano /etc/nanorc

 Note: ce pas une étape obligatoire, elle permet juste d'améliorer l'interface de l'éditeur nano


nanorc

Le symbole # permet de commenter une ligne pour quelle ne soit pas prise en compte par le système.  En nous déplaçant avec l'aide des flèches de notre clavier nous allons supprimer ce symbole pour activer des fonctionnalités bien pratiques.

set mouse        : qui permet d'activer la souris

set autoindent  : qui permet une indentation automatique, bien pratique lorsque l'on modifie du code.

set smarthome : qui permet de mettre le curseur en début de ligne

Vous les trouverez facilement car elles sont rangées par ordre alphabétique. Une fois modifié , la commande ctrl x nous permet de sortir, l'éditeur nous propose d'enregistrer tapez Y pour valider. Au besoin l'éditeur nano affiche une aide en bas de l'écran.  

Maintenant notre éditeur est configuré........Ha oui !configurons  notre serveur web Nginx. Pour cela nous allons utiliser notre éditeur customisé. Comme vous pouvez le remarquer le fichier de configuration se trouve sous le répertoire /etc ce sera le cas de la plupart des fichiers de configuration.

sudo nano /etc/nginx/sites-available/default

Si vous avez configurer votre éditeur il vous est maintenant possible de vous positionnez avec la souris.

Nous allons activer la possibilité d'utiliser un index PHP en modifiant la ligne: 

index index.html index.htm index.neginx-debian.html;

par:

index index.html index.htm index.php;

Puis nous allons activer PHP en remplaçant ces lignes:

#location ~ \.php$ {
 # include snippets/fastcgi-php.conf;
 #
 # # With php5-cgi alone:
 # fastcgi_pass 127.0.0.1:9000;
 # # With php5-fpm:
 # fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 #}

 par, prêtez attention à la version de php, ici php7.3-fpm:

 location ~ \.php$ {
 include snippets/fastcgi-php.conf;
 fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
 }

Après enregistrement  (CtrlX puis Y+ Entré) il faut redémarrer le service Nginx pour que la configuration soit prise en compte. Il existe plusieurs méthodes. En voici une.

sudo /etc/init.d/nginx restart

Maintenant nous allons modifier les droits du dossier web afin de pouvoir le modifier depuis l'utilisateur pi. Pour cela nous mettons le dossier accessible au groupe pi (appartient à pi).

 sudo chown -R www-data:pi /var/www/html/
 sudo chmod -R 770 /var/www/html/

chown: attribue l'appartenance du fichier  ( www-data propriaitaire pi groupe).

chmod: permet d'attribuer les droits (user, group, guest) sur un dossier ou un fichier.

Nous allons ajouter un fichier sous la racine /var/www/html pour tester si l'installation de PHP fonctionne bien.

sudo echo "<?php phpinfo(); ?>" > /var/www/html/index.php

echo permet d'écrire <?php phpinfo(); ?> dans le fichier index.php qui sera automatiquement créé.

Maintenant notre serveur web est prêt si nous tapons sur notre navigateur ce lien  vous devriez avoir ce message.

php setup

 

 

 

 

Installation de Mysql et Adminer

 

 

La base de données Mysql n'est plus libre. Elle est souvant remplacée par Mariadb qui est une base de données open source et compatible Mysql. Nous allons l'installer avec un utilitaire qui permet d'avoir une interface graphique pour faciliter sa gestion. Il s'agit d' Adminer, il permet à l'instar de Phpmyadmin de gérer des bases de données. J'ai choisi Adminer car son installation est plus simple et plus fiable que celle de Phpmyadmin. Cependant, si vous le souhaitez,  à la fin de l'article il y a un tuto pour l'installation de PhpMyAdmin.

Revenons à nos moutons, comme tout à l'heure nous allons installer Mariadb et un pluging php avec la commande apt-get.  

sudo apt-get install mariadb-server php-mysql

Puis l'utilitaire de gestion Adminer. 

sudo apt-get install adminer

Adminer s'installe sur /usr/share/adminer il vous faudra donc créer un lien symbolique pour y accéder depuis votre site. Pour cela nous allons utiliser la commande ln qui crée un lien (un raccourci) symbolique (-s) qui nous permettra d'accéder au dossier depuis le dossier web.

sudo ln -s /usr/share/adminer/adminer /var/www/html/adminer

Maintenant nous sommes en mesure de nous connecter à l'interface de Adminer par cette adresse

home adminer

Si vous essayez de vous connecter avec l'utilisateur root vous observerez qu'il n'est pas possible de ce connecter sans mots de passe. Nous allons donc créer un mot de passe pour l'utilisateur root de la base de données.

Pour cela nous nous connectons à la base de données.

sudo mysql --user=root

Dans un premier temps nous effaçons l'utilisateur root pour ensuite le créer avec un mot de passe et lui donner des droits de super utilisateur. Finissez avec la commande exit pour sortir.  Attention de ne pas sortir avant d'avoir créé un utilisateur. ;-) vous ne pourriez plus vous connectez à votre base de données.

DROP USER 'root'@'localhost';
CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;

 Note vous pouvez créer d' autres utilisateurs.

 DROP permet de supprimer un utilisateur

 CREATE USER créer un utilisateur avec ou sans mot de passe.

 GRANT attribue les droits d'utilisation

 

 

Partager le dossier www

 

Pour créer notre site nous aurons besoin de modifier régulièrement les fichiers de celui-ci. Nous pourrions les administrer via la console et les éditeurs disponibles sur la console, tel que Vim. Mais personnellement je ne trouve pas cela super confortable, je préfère utiliser des éditeurs comme sublimText.  La manière la plus simple et la plus transparente est de partager le dossier www sur le réseau afin d'y accéder facilement depuis un PC. J'en profiterai ensuite pour passer Adminer en mode dark en remplaçant son fichier CSS.

Dans un premier temps nous allons créer un nouvel utilisateur qui pourra accéder au répertoire du site web. Pour cela nous allons utiliser la commande adduser suivit de l'identifiant. Ensuite le système demandera un mot de passe et des informations complémentaires. Un dossier sous /home/utilisateur est automatiquement créé. 

sudo adduser fabrice

Nous plaçons l'utilisateur dans un groupe que nous créons au préalable. cela permettra de déployer les mêmes droits pour plusieurs utilisateurs.

sudo addgroup webmaster
sudo usermod -g webmaster fabrice

Maintenant nous allons confirmer www-data (nginx) propriétaire de /var/www/  et attribuer le groupe webmaster à ce même répertoire ainsi qu'aux sous-répertoires (-R).

sudo chown -R www-data:webmaster /var/www/

Nous appliquons des droits d'accès au répertoire  grâce à la commande chmod  7 (4+2+1 , écriture, lecture, exécuter) pour le propriétaire, 7 pour les groupes et 0 pour les invités. 

sudo chmod -R 770 /var/www/

Pour partager le dossier sur le réseau nous allons utiliser l'outil samba. Pour cela il faut l'installer. Durant l'installation il demandera si nous voulons utiliser la résolution WINS, nous répondrons oui.

sudo apt-get install samba

Il est nécessaire de configurer des utilisateurs de Samba, il doivent t'être les mêmes que ceux de l'OS, avec les mêmes mots de passe. Malheureusement ils ne sont pas synchronisés entre eux.  Il faudra les mettre à jour  manuellement. Créons l'utilisateur fabrice, le même que celui de l'OS.

sudo smbpasswd -a fabrice

Nous allons maintenant configurer samba, pour cela il faut ouvrir le fichier de configuration. Là encore il ce trouve sous /etc/

sudo nano /etc/samba/smb.conf

Dans la rubrique #Authentification#  ajouter la ligne pour définir la méthode d'identification.

security = user

Puis informer à la fin du fichier les informations du dossier que l'on souhaite partagé. [nom du partage]

[innogreentech]
     path = /var/www
     available = yes
     read only = no
     writable = yes
     browseable = yes
     valid users = fabrice

Pour nous connecter il nous suffira de créer une connexion réseau à l'adresse \\raspberrypi\innogreentech avec comme utilisateur fabrice. Cela permettra de travailler sur le site comme si les fichiers étaient installés sur le PC. 

Nous allons pouvoir passer Adminer en mode sombre ( j'aime beaucoup les dark mode (-; ) en copiant le fichier de ce lien sous www puis en exécutant cette commande qui déplacera ce fichier ver le dossier d'Adminer.

sudo mv /var/www/adminer.css /usr/share/adminer/adminer/adminer.css

dark adminer

 

Activation du ssl

 

Le ssl va permettre de sécuriser la communication entre le client web et le server. L'échange des données sera crypté grâce à une clé privée de chiffrement.

Pour cela nous allons installer le packet Openssl qui va nous permettre de générer la clé.

sudo apt-get install openssl

Rendons nous dans le répertoire de configuration du ssl. (he oui toujour sous /etc/)

cd /etc/ssl

Grâce à openssl nous allons générer une clé  de 2048 bytes dans le fichier server. key.

sudo openssl genrsa -out server.key 2048

Maintenant il nous faut créer un certificat pour notre clé. Ce certificat est autogénéré, il ne sera donc pas reconnu fiable par les navigateurs. Cependant la communication sera tout de même sécurisé. Une fois validé nous informerons les renseignements qui nous sont demandés.

sudo openssl req -nodes -new -key server.key -out server.csr

Nous venons donc de créer notre certificat dans le fichier server.csr, Nous avons maintenant besoin de le signer, toujours avec l'aide de openssl:

sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

La clé privée est  maintenant certifiée et signée pour 365 jours. Pour finaliser la démarche reprenons la configuration de notre site pour changer les règles d'accès à celui-ci.

sudo nano /etc/nginx/sites-enabled/default

Dans un premier temps nous désactivons l'accès au site via le port 80 en commentant les lignes suivantes.

        #listen 80 default_server;
        #listen [::]:80 default_server;

Puis nous activons la connexion ssl en décommentant ces lignes, et en informant le lien vers la clé et la certification que nous avons créé.

        listen 443 ssl default_server;
        listen [::]:443 default_server;
        ssl_certificate /etc/ssl/server.crt;
        ssl_certificate_key /etc/ssl/server.key;

Pour finir nous allons rediriger les requêtes du port 80 vers le port https. Pour cela nous créons un nouveau serveur à la fin du fichier qui redirige les demandes vers le lien https.

Server{
	listen 80 default_server;
        listen [::]:80 default_server;
        return 301 https://$host$request_uri;
}

Une fois enregistré nous devons relancer le service nginx pour que ces modifications soient prises en compte. Nouvelle méthode  plus simple pour relancer un service ;-). 

sudo service nginx restart

Nous pouvons maintenant accéder à notre site en https.  Le navigateur nous informera que le site n'est pas sûr car le certificat n'est pas reconnu. Nous devons faire confiance au site  pour pouvoir naviguer. Il est possible d'enregistrer  cette préférence dans les paramètres du navigateur. Comme la procédure est différente pour chaque navigateur, je ne développerai donc pas de méthodes dans ce tuto.

 

Monter un disque dur externe

 

Le sytème d'exploitation est installé sur une carte micro SD. Malheureusement ce type de cartes a un nombre d'écritures limité (10 000 environ), ce qui induit une durée de vie limitée. C'est pour cela que je vous invite à installer rapidement un disque dur externe pour pouvoir effectuer des sauvegardes et y enregistrer les process qui demandent beaucoup d'écritures.  

Connectons notre disque dur et retrouvons le grâce à la commande fdisk, elle liste les partitions. Pour ma part il ce trouve   en /dev/sda 

sudo fdisk -l

Dans un premier temps, nous allons le formater au format linux ext4.

sudo mkfs.ext4 /dev/sda  

Maintenant nous devons partitionner le disque en une ou plusieurs partitions. Pour cela lancer fdisk, puis  il suffit d'envoyer les commandes qui nous permettrons de créer une nouvelle partition.

m: pour avoir de l'aide sur les différentes commande

n: pour informer que l'on veut créer une partition

|__ p: pour créer des partitions primaires

       |___ Validez les choix par défaut pour créer la partition.

w: Ecrire la table des partitions, faire cette commande avant de sortir pour enregistrer votre travail.

q: permet de sortir de la commande

sudo fdisk /dev/sda

Notre disque est prêt à être exploité. Nous n'en avons pas encore parlé mais il y a un point important à comprendre sur Linux. Le positionnement des répertoires n'est pas lié au support d'enregistrement. Il est donc possible de trouver plusieurs disques sous une même racine, l'arborescence des dossiers est donc virtuelle. 

Commençons par créer un dossier de sauvegarde. Je vais le positionner sous la racine média.

sudo mkdir /media/backup_innogreentech

Nous allons monter le disque vers ce répertoire. Physiquement tout ce qui sera sur le répertoire /media/backup_innogreentech sera  sur le disque dur externe. Pour monter le disque il faut que le répertoire soit vide.

sudo mount /dev/sda   /media/backup_innogreentech

Malheureusement ce montage n'est pas permanent, si le Raspberry redémarre le montage sera perdu. Pour le rendre persistant il nous faut enregistrer ce montage dans le fichier fstab (files system table). Il sera lu au démarrage de notre Raspberry. 

Récupérons l' UUID de notre disque afin qu'il soit reconnu quelque soit la prise USB utilisée, UUID ne changera pas contrairement à son nom matériel (/dev/std). Pour cela nous utilisons la commande blkid.

blkid

Vous trouverez l'UUID facilement: celui de mon disque est UUID="26b9f305-f2aa-4321-bfc2-6531689df2ae "

Nous pouvons maintenant faire le montage du disque dans le fichier fstab.

sudo nano /etc/fstab

Ajoutons cette ligne pour monter notre disque dur définitivement.

UUID=26b9f305-f2aa-4321-bfc2-6531689df2ae  /media/backup_innogreentech ext4 defaults 0 0

Une fois enregistré, nous pouvons tester notre montage avec la commande suivante, en cas d'erreur vous en serez informés.

sudo mount -a

Tout c'est bien passé? Vous pouvez naviguer sur votre disque dur via le dossier que nous avons créé.

cd /media/backup_innogreentech

Notre raspberry est prêt à être utilisé comme serveur web.  

 

 Installer PhpMyAdmin

 

Précédemment nous avons installé Adminer pour avoir une interface graphique permettant de manager notre base de données. Cependant PhpMyAdmin est souvant utilisé pour faire cela et il est vrai qu'il a des fonctionnalités que n'a pas Adminer. Malheureusement je ne suis pas arrivé à l'installer via le depot du raspberry. J'ai donc employé une autre méthode dont je vous faits part ici. Elle est un peu plus compliquée, mais après ce que l'on vient de faire plus rien ne peut nous arrêter ;-).

Tout d'abord nous devons télécharger le fichier compresser de Phpmyadmin depuis leur site officiel. Avant cela nous allons nous positionner sur la racine de l'utilisateur  puis lancer le téléchargement du fichier, de la dernière version avant  la 5.

cd
sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.9.7/phpMyAdmin-4.9.7-all-languages.tar.gz

wget permet de transférer des fichiers depuis ou vers une adresse réseaux.

Une fois le téléchargement terminer, nous décompressons le dossier grâce à la commande tar, l'archive est enregistrée dans le dossier phpMyAdmin-4.9.7-all-languages

sudo tar xvf phpMyAdmin-4.9.7-all-languages.tar.gz

Avec la commande mv nous allons déplacer et renommer le dossier vers le dossier d'exploitation de l'application.

sudo mv phpMyAdmin-4.9.7-all-languages/ /usr/share/phpmyadmin

Tout comme pour adminer il nous faut créer un lien symbolique vers le répertoire web.

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

 Il nous faut configurer Phpmyadmin, pour cela nous allons copier et renommer un fichier exemple de configuration avec l'aide de la commande cp. Ce nouveau fichier contiendra notre configuration.

sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Editons le fichier créé.

sudo nano /usr/share/phpmyadmin/config.inc.php

Dans le paramètre Blowfish_secret, nous devons informer une phrase de 32 caractères qui permettra de crypter les cookies d'authentification. 

$cfg['blowfish_secret'] = 'innogreentechentreprisedepartage'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Informer un utilisateur de la base de données avec suffisamment de droits pour modifier celle-ci. Précédemment nous avons attribué un mot de passe a root, vous pouvez informer cet utilisateur.

$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = 'password';

Nous devons maintenant décommenter les lignes suivantes pour activer Phpmyadmin. 

/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

 Nous avons finit la première partie de la configuration, Phpmyadmin est maintenant opérationnel. Vous pouvez le tester à cette adresse. Nous pouvons nous connecter avec n'importe quel utilisateur informé dans la base de donnée. Comme notre œil est aussi vif que notre esprit nous remarquons cette alerte.

error temp

 Bon c'est certainement vrai sur la plupart des installations. Mais notre mémoire tout aussi vive que notre esprit nous rappelle que nous devons préserver notre carte micro SD des écritures. C'est pour cela que nous allons créer un dossier temporaire sur notre disque dur afin de préserver notre carte SD.

 Pour cela dans un premier temps nous allons  créer un dossier sur le montage que nous avons fait précédemment. Maintenant vous savez faire: 

 

Nan! je vous donne un petit coup de main, créons dans un premier temps un dossier grâce à la commande mkdir dans lequel nous allons accueillir le cache.

 sudo mkdir -p /media/backup_innogreentech/phpmyadmin_cache

Ensuite ouvrons de nouveau le fichier de configuration.

sudo nano /usr/share/phpmyadmin/config.inc.php

Puis nous ajoutons à la fin du fichier l'adresse du fichier temporaire.

$cfg[‘TempDir’] = ‘/media/backup_innogreentech/phpmyadmin_cache’;

Dernière étape nous donnons les droits au service web d'accéder au répertoire que nous venons de créer en le rendant propiétaire.

sudo chown -R www-data:fabrice /media/backup_innogreentech/phpmyadmin_cache

Une fois fermé et enregistré vous pouvez accéder à votre interface PHP l'erreur disparaît. Honnêtement le transfert du cache sur le disque externe ralenti un peu la navigation. Mais ici j'utilise un disque qui date et qui utilise le protocole USB2, je pense que nous pouvons faire mieux.

jPhpMyAdmin vous demandera de créer une base de données PhpMyAdmin. Faites le pour profiter pleinement de ses fonctionnalités.

Good way, keep contact like and share.

 

Commentaires  

# Fabrice Baudin 04-01-2021 20:36
N'hésitez à faire votre commentaire

Veuillez vous connecter ou créer un compte pour pouvoir poster un commentaire.