serveur WEB APACHE sur RPI

créer un serveur WEB avec votre raspberry PI c’est possible , nous allons voir comment faire tout cela.

MISE A JOUR DU PI:

comme toujours avant toute manip d’installation , faire une mise a jour de votre systeme:

sudo apt update
sudo apt upgrade 

INSTALLER APACHE :

nous allons commencer par installer la couche logicielle du serveur WEB , à savoir APACHE2 . rien de plus facile , taper:

sudo apt install apache2

TESTER L’INSTALLATION:

une fois l’installation faite , pour vérifier que tout fonctionne, essayer une connexion sur votre RPI via un PC lui aussi connecté sur votre réseau domestique . tout d’abord , récupérer l’adresse IP de votre RPI. pour cela positionner le pointeur de votre souris sur l’icône de connexion réseau dans la barre de menu du RPI ( en haut ou en bas a droite suivant le type d’affichage choisis).

vous devriez voir apparaitre quelque chose du genre:

eth0: Configured 193.168.1.17

c’est l’adresse IP de votre RPI sur votre reseau domestique.

ouvrez votre navigateur WEB et taper dans la barre de navigation l’adresse IP trouvée avec devant “http://” :

http://193.168.1.17

si tout est OK vous devriez voir apparaitre une page de ce type signe que tout fonctionne:

APACHE est donc installé et il utilise le répertoire /var/www/html comme racine pour le site.

l’installation a déposé dans le repertoire /var/www/html un fichier Index.html qui est la page d’exemple qui s’affiche .

quand on contact l’adresse IP du RPI , on se connecte sur le port 80 du RPI (commande http://…) et apache va cherche dans le repertoire /var/www/html/.

par exemple , si vous tappez : http:// 193.168.1.17/monsite apache cherchera automatiquement le fichier “monsite” dans le repertoire /var/www/html/ et si on ne rajoute pas de nom de fichier et juste la commande: http:// 193.168.1.17/ , apache va chercher le fichier index.html comme tout appel classique a un site internet .

INSTALLER PHP:

pour pouvoir faire fonctionner votre serveur et par exemple installer un site internet , il faudra pour interpréter des commandes PHP. pour cela nous allons devoir installer l’interpréteur PHP qui exécutera ces commandes PHP.

pour installer PHP sur votre RPI, taper:

sudo apt install php 

TESTER PHP:

avant de continuer plus loin, comme pour apache, nous allons tester le fonctionnement de PHP. pour cela avec l’explorateur du RPI ou en ligne de commande , aller supprimer le fichier Index.html qui est dans le répertoire /var/www/html/ puis créer un fichier index.php avec un editeur de texte et mettez y la commande simple suivante:

<?php echo "Coucou, comment allez vous"; ?>

USB HAT

pas asses de port USB sur votre raspberry PI , rassurez vous il existe des USB HAT pour étendre la capacité .

il en existe autant de modèles que de type de RPI et de type de port USB ( USB 2 ou USB 3).

voici quelques photos d’un HAT ( chapeau en anglais) avec port USB 3 pour raspberry PI 4B:

il se monte sur le RPI via des colonnettes et est fourni avec une petite platine de raccordement pour le port USB3 du RPI ( a droite sur la photo ci dessous)

il n’est pas obligatoire de le monter par dessus , le RPI , il peut etre connecté via un cordon USB classique ( prendre le cordon adapté au type d’USB).

voici une configuration sur SSD BOARD avec le RPI sur un ecran HDMI 7″ touschscreen 1024 x 600:

RPI 4B – Boot sur disque SSD USB

Rasbian installé sur carte SD montre vite ses limites . voyons ici comment booter le RPI 4 sur DD SSD USB3 .

il est possible de brancher un Disque Dur SSD sur port USB3 du RPI 4B via un cordon, mais pour garder la compacité et l’homogénéité de l’ensemble , je recommande l’investissement dans une carte SSD Board telle que celle ci dessous ( Geekworm Raspberry Pi 4 SATA X825 V2.0 , 38€ sur Amazone en mai 2021)

le disque dur ce fixe en partie inférieur de la carte et une petite platine USB assure la liaison USB3 entre platine et RPI4.

ci dessous photo d’une configuration RPI 4B+ 4Go sur SSD BOARD avec SSD 120 Go , USB HAT avec port USB3, ecran HDMI 7″ Tactile 1024×600

voyons maintenant les étapes d’installations du systeme .

NOTA: on suppose que RASBIAN est déjà installé sur carte SD introduite dans le RPI => : lien

ETAPE 1: Mise à jour de votre Raspberry Pi 4

faire une mise a jour complete de votre systeme , en envoyant successivement les commandes SHELL ci dessous ( procedure d’environ 20 minutes) . ne pas oublier d’activer la connexion internet pour toutes les opérations de mise a jour (Etape 1 et 2)

sudo apt update
sudo apt full-upgrade
sudo rpi-update

une fois les mises a jours faites , il faut redémarrer le RPI 4 pour appliquer toutes les MAJ.

ETAPE 2: Installation du dernier Bootloader

pour cela taper la commande shell suivante:

sudo rpi-eeprom-update -d -a

si votre RPI4B est recent , il ne se passera peut etre pas grand chose et vous aurez un message du genre “BOOTLOADER : up to date”

dans le cas contraire le shell fera la mise a jour

ETAPE 3: Configuration du Boot USB

taper la commande shell suivante:

sudo raspi-config

vous arrivez dans le menu de configuration, On se rend dans la ligne 6 “Advanced Options” , on fait “entrée”

puis on selectionne la ligne A7 “Bootloader Version“:

et la on valide l’option E1 ” select latest or default boot ROM software”.

attention, dans l’ecran suivant , le pointeur se place automatiquement sur “Yes” , il faut choisir “No”, sinon les paramètres seront remis a défaut .

Une fois enregistré, l’écran vous confirme la réinitialisation des paramètres.

dans l’écran “Advanced Options“, on sélectionne maintenant “A6 Boot Order“:

Puis“B2 USB Boot“, pour donner la priorité a l’Usb, par rapport a la micro SD.

L’écran suivant confirme que l’Usb est devenu le boot par défaut.

l’écran suivant, propose de redémarrer le RPI .

ce n’est pas nécessaire , nous allons choisir “No” puis ressortir du menu de config et arreter le RPI en tapant la commande shell:

sudo halt

ETAPE 4: installation de Rasbian sur le SSD

la procédure est la même que pour l’installation sur carte micro SD=> : lien

ici , avec l’imager on va juste préciser que l’os est a installer sur le SSD:

pour l’installation, il faudra connecter le disque Dur SSD au PC Windows via un cordon dédié type SATA vers USB.

une fois l’installation de Debian sur le SSD faite, il ne reste plus qu’a monter le SSD sur la carte SSD board , tout raccorder (alimentation, ecran,etc..) et rebooter le RPI en prenant soin d’enlever la carte micro SD devenue inutile ( on peut la garder en securité si pbme avec le SSD).

les modèles de RASPBERRY PI

comme pour la gamme ARDUINO, il n’y a pas un, mais plusieurs modèles de raspberry PI.

ces différents modèles, sont nés de l’évolution constante du produit au fil du temps en terme de capacité et de performances. du premier modèle sorti en 2012 au derniers modèles; le Raspberry PI 400 sorti fin 2020 et le PI pico sorti en janvier 2021 , vous avez l’embarras du choix pour repondre à vos projets . ceci dit , attention, certain modèles du début ne sont plus disponibles a la vente.

début 2021 , les 2 modèles les plus utilisés restent le PI3B+ et le PI 4B qui est lui même décliné en 4 sous-modèles suivant la mémoire embarquée ( 1Go-2Go -4Go-8go ).

plutôt qu’un long discours , pour plus d’infos sur la config, les capacités et les prix indicatifs de chaque type , voir le site ci dessous qui résume dans un excellent tableau de synthèse toutes les caractéristiques des modèles de la gamme .

https://socialcompare.com/fr/comparison/raspberrypi-models-comparison

Pack Boitier / mini écran /mini claviers

un des énormes avantage de la gamme RPI est sa transportabilité liée a sa compacité. pour améliorer encore cela il existe des pack boitier que l’on peut associer a des écran HDMI de petite tailles et des claviers ultra compacts .

concernant les boitiers tout en un , voici l’un des plus remarquables que l’on trouve en achat en ligne pour environ 18 euros ( tarif janvier 2021) :

il est conçu pour recevoir un ecran 7″ raspberry officiel ( environ 75€ en janvier 2021) qui a une définition de 800×480 pixels et cerise sur le gateau est un ecran tactile prévu de base pour fonctionner en tactile sur le RPI.

voici les composants une fois déballé , l’écran se connecte sur un slot dédié sur le PCB du RPI.

une fois l’ensemble assemblé et l’OS DEBIAN installé sur la carte SD ( voir rubrique spécifique) puis l’ecran et le RPI mis sous tension, on obtient ceci :

pour alimenter tout cela sans passer par une prise secteur , il est possible d’utiliser une power bank 5V comme ci dessous:

et ainsi concerver l’aspect nomade de l’ensemble, l’alimentation via USB est commune pour ecran t RPI :

a cet ensemble on peut également associé de sympathiques mini claviers wifi/usb tels que les 2 ci dessous ( envrion 15 € en achat internet), qui sont les deux muni d’un track pad remplaçant avantageusement une souris:

voici le resultat avec la deuxieme version de clavier

Installation de DEBIAN (OS linux)

l’opération va consister a faire une image systeme sur carte SD et ensuite mettre cette carte SD dans le RPI.

l’OS linux et son installeur ( imager) est disponible ci dessous pour l’installation.

https://www.raspberrypi.org/software/

les etapes pour l’installation

ETAPE 1:

telecharger l’imager raspberry PI sur votre PC

la fenetre de telechargement s’ouvre , pour ceux pas familiarises avec les telechargement , voici la methode pour recuperer le fichier

coller l’imager dans un répertoire dédié aux installations Raspberry PI. et lancer l’installation de l’imager en cliquant sur le fichier que vous venez de télécharger .

l’imager est normalement installé sur le disque dur dans le répertoire “Programmes(x86)”, a priori l’icône de lancement n’est pas créée automatiquement sur le bureau , il faut donc aller dans le répertoire d’installation pointer le fichier exe de lancement et créer un icone sur le bureau .

ETAPE 2

démarrer l’imager, une fenêtre telle que ci dessous s’ouvre cliquer dans la premiere fenetre ” CHOISISSEZ L’OS”

dans l’ecran suivant choisissez le systeme d’exploitation ( pour la version avec bureau et logiciels conseillés , prendre l’option ” Raspberry PI OS (other)”

Sélectionner la version ( ici full avec desktop et applications recommandées) :

Selectionner le stockage de destination

une fenetre s’ouvre et propose les unitées disponibles , ici une micro SD 62 Go

ne reste plus qu’a lancer l’ecriture sur la micro SD

l’imager lance l’ecriture de l’OS surla microSD

une fois terminé, il ne reste plus qu’a sortir la carte SD du PC et l’introduire dans le logement du raspberry PI et de mettre le RPI sous tension.

SHELL- BASH : la ligne de commande

LINUX est un systeme d’exploitation au meme titre que WINDOW et IOS (apple). Il est similaire a UNIX est a été inventé en 1991 par Linus TORVALD.

A la différence de WINDOW et IOS , c’est un système OPEN SOURCE ( licence libre => gratuit et code source accessible).

BASH est le SHELL utilisé par LINUX . un SHELL est une interface de commande en ligne de type script qui permet d’exécuter des actions sur les fichiers d’ un ordinateur .

BASH = Bourne Again Shell

Exemple de SHELL : au début  des PC sous windows , le SHELL était MS-DOS . ce shell est toujours disponible sous WINDOWS via le menu « Accessoires » commande prompt :

A l’opposé du Shell , on trouve une interface Graphique permettant de lancer des actions via des icônes ou des menus => exemple le Bureau de Window.

De la même façon sous Linux  , on trouve une Interface Graphique ( un bureau) et une interface de commande en Ligne ( BASH) que l’on peut démarrer depuis le Bureau de LINUX.

Structure de Linux :

Contrairement à Window  qui manipule des fichiers et des unités de stockage( C : D : E : ) , Linux est un peu déroutant au début car il ne manipule que des Fichiers qui sont tous structurés au sein de répertoires, sous Linux , une unité de stockage est donc considérée comme un fichier dans un répertoire :

Parmi ces répertoires, plusieurs sont importants, on peut en citer :

Quelques  commandes de Base :

Les utilisateurs et les droits

Nano : editeur de texte basique

Nano est un editeur de texte brut tres simple ( pas un traitement de texte)

Pour le demarrer il suffit de tapper nano dans la console.

Un caractere # en debut de ligne permet d’ecrire une ligne de commentaires

On peut donner un nom au fichier dès l’ouverture :  exemple :  nano toto.txt

Installer des programmes avec apt-get

man : afficher le manuel d’une commande

Mémento SHELL – commandes de base

ci dessous, vous trouverez un résumé des commandes Shell les plus utiles pour l’utilisation d’un RPI en lignes de commandes..

Commandes d’informations systèmes

  • df / :Indique la quantité d’espace disque disponible.
  • df -h : Affiche des informations sur l’espace disque disponible.
  • free : Indique la quantité de mémoire libre disponible.
  • hostname -I : Affiche l’adresse IP de votre Raspberry Pi.
  • lsusb : Liste tous les périphériques USB connectés à votre Raspberry Pi.
  • vcgencmd measure_temp :Affiche la température de la CPU.
  • vcgencmd get_mem arm && vcgencmd get_mem gpu : Affiche la mémoire divisée entre le processeur et le GPU.

Commandes générales

  • Touche HAUT :  la touche HAUT, répète la dernière commande entrée dans l’invite de commande. C’est un moyen de corriger les erreurs de commandes sans tout retaper .
  • apt-get update : Met à jour votre version de Raspbian.
  • apt-get upgrade : Met à niveau tous les logiciels que vous avez installés.
  • clear : Efface l’écran du terminal des commandes et du texte précédemment exécutés.
  • date : Affiche la date actuelle.
  • find / -name exemple.txt : Rrecherche dans le système entier le fichier exemple.txt et génère une liste de tous les répertoires qui contiennent le fichier.
  • nano example.txt : Ouvre le fichier example.txt dans “Nano”, l’éditeur de texte de linux.
  • poweroff : Arrêt immédiat du raspberry PI.
  • raspi-config : Ouvre le menu des paramètres de configuration.
  • reboot : Pour rebooter immédiatement le Raspberry PI.
  • shutdown -h now : Pour éteindre immédiatement le Raspberry PI.
  • shutdown -h 01:22 : Pour éteindre le Raspberry PI à 1:22 AM.
  • startx : Ouvrir l’interface graphique GUI (Graphical User Interface).

Commandes sur les fichiers et répertoires

  • cat exemple.txt : Affiche le contenu du fichier exemple.txt.
  • cd /abc/xyz : Change de répertoire courant pour le répertoire /abc/xyz.
  • cp XXX : Copie le fichier ou le répertoire XXX et le colle à un emplacement spécifique. Par exemple: cp exemplefile.txt /home/pi/office/ copie exemplefile.txt du répertoire courant et le colle dans le répertoire /home/pi/ directory. Si le fichier n’est pas présent dans le répertoire courant, vous pouvez ajouter son chemin en préfixe (par exemple : cp /home/pi/documents/examplefile.txt /home/pi/office/ copie le fichier du répertoire documents dans le répertoire office).
  • ls -l : Liste tous les fichiers du répertoire en cours, ainsi que la taille du fichier, la date de modification et les autorisations.
  • mkdir exemple_directory : Créer dans le répertoire courant un nouveau répertoire exemple_directory.
  • mv XXX : Déplace un fichier ou un répertoire nomé XXX à un emplacement spécifique.Par exemple, mv exemplefile.txt /home/pi/office/ déplace exemplefile.txt dans le répertoire /home/pi/office. Si le fichier n’est pas présent dans le répertoire courant, vous pouvez ajouter son chemin en préfixe (par exemple :. cp /home/pi/documents/exemplefile.txt /home/pi/office/ déplace le fichier du répertoire documents dans le répertoire office). Cette commande peut aussi être utilisé pour renommer des fichier (mais seulement dans le même répertoire). par exemple, mv examplefile.txt newfile.txt renomme examplefile.txt en newfile.txt, et conserve le fichier dans le même répertoire.
  • rm example.txt : Effacer le fichier example.txt.
  • rmdir example_directory : Effacer le répertoire example_directory (seulement si il est vide).
  • scp user@10.0.0.32 :/some/path/file.txt : Copier un fichier à travers SSH. Peut être utilisé pour télécharger un fichier à partir d’un ordinateur de bureau / ordinateur portable sur le Raspberry Pi. user@10.0.0.32 est le nom d’ utilisateur et l’adresse IP locale du bureau / ordinateur portable et /some/path/file.txt est le chemin d’accès et le nom du fichier sur le bureau / ordinateur portable.
  • touch :Crée un nouveau fichier vide dans le répertoire courant.

Commandes Réseau et Internet

  • ifconfig :Pour vérifier l’état de la connexion réseau que vous utilisez (pour voir si wlan0 dispose d’ une adresse IP par exemple).
  • iwconfig : Pour vérifier quel réseau l’adaptateur sans fil utilise par exemple.
  • iwlist wlan0 scan : Affiche une liste des réseaux sans fil actuellement disponibles sur wlan0.
  • iwlist wlan0 scan | grep ESSID : Utilisez grep avec le nom d’un champ pour répertorier uniquement les champs dont vous avez besoin (par exemple, pour lister les ESSID uniquement).
  • nmap : Analyse votre réseau et répertorie les périphériques connectés, le numéro de port, le protocole, le système d’exploitation, l’état (ouvert ou fermé), les adresses MAC et d’autres informations.
  • ping : Teste la connectivité entre deux périphériques connectés sur un réseau. Par exemple, ping 10.0.0.32 envoie un paquet à l’appareil à IP 10.0.0.32 et attend une réponse. Il fonctionne également avec les adresses de sites Web.
  • wget http://www.website.com/example.txt : Télécharge le fichier example.txt depuis le Web et l’enregistre dans le répertoire courant.

RASPBERRY – VNC

VNC alias Virtual Network Computing est un moyen simple de prendre le contrôle a distance sur un raspberry Pi . c’est un système de partage via internet qui permet de prendre le contrôle d’un Raspberry en émulant le comportement écran/clavier via le PC distant connecté au net. bien entendu , pour fonctionner , cela nécessite un Raspberry PI connecté a son propre écran et connecté a internet .

voyons comment installer/activer tout ça:

ETAPE 1 : activer VNC sur le RPI

aller dans le menu Préférences/Configuration :

puis dans la fenêtre “configuration” choisir l’onglet “Interface” et activer l’option VNC

une fois la manip faite et la fenêtre refermée , redémarrer le RPI , une fois le bureau affiché , si votre barre de menu est en haut , vous devez voir a droite l’icône de VNC affichée :

ETAPE2 : installer VNV viewer sur le PC distant

pour pouvoir émuler la connexion sur le terminal distant , il va falloir installer une application compatible. la plus connue est VNC Viewer. on peu la télécharger ici:

https://www.realvnc.com/fr/connect/download/viewer/

elle est disponible sur tous les OS connus y compris en version Smartphone .

une fois l’installation faite , il faut se créer un compte VNC via le lien ci dessous:

https://www.realvnc.com/fr/raspberrypi/#sign-up

il est possible de créer un compte Gratuit

une fois le compte créé , ne reste plus qu’a lancer VNC Viewer , tapper l’adresse IP du RPI dans la barre du haut puis saisir identifiant et mot de passe : attention , ici il s’agis de l’identifiant et du mot de passe d’ouverture du compte du Raspberry PI , en general quelque chose du genre “pi” + mot de passe…

une fois la connexion distante etablie , l’ecran de votre PI s’affiche comme si vous etiez devant le RPI. toutes les manipulation sur le PC ( frappe clavier/ souris) sont prise en compte comme si vous étiez devant votre clavier et votre raspberry PI. dans la vue ci dessous, l’écran de ligne de commande BASH ainsi que Thonny Python sont actif et l’un comme l’autre sont utilisable a distance . de la meme façon tout programme installé sur le RPI peut etre lancé a distance via la barre de commande du haut ou par click souris sur une icone du bureau ou via des commandes sous bash …

RPI GPIO – PINOUT

le port GPO du RPI comporte 40 broches alignées en 2 rangés sur un meme connecteur plastique . voyons le brochage de cette interface plus en détail:

chaque broche peut etre utilisé de façon logicielle comme entrée ou sortie. la numerotation des broches (Pin) n’est pas dans l’ordre physique du bornier . les broches O et 1 ( broches physiques 27 et 28) sont reservées pour des utilisations avancées.

voici un petit schema qui recapitule la numerotation des broches vis a vis de la position physique. certaines broches ont des fonctions spécifiques (couleur rouge , orange ou verte) et certaines des fonctions alternatives ( voir colonne Alternate Function en gris ci dessous). il est a noter que contrairement a l’ARDUINO , il n’y pas de broche Analogiques, RPI n’utilise que des entrées/sorties digitales (niveau haut ou bas). derniere particularité, pour l’alimentation PWR= Power) ) , les broches physiques 2 et 4 generent du 5V et les broches physiques 1 et 17 du 3,3V.

ATTENTION: contrairement a l’ARDUINO qui utilise des tension TTL de 5V le niveau haut des broche GPIO est a 3,3V

Gestion PWM: le Pulse Width Modulation peut etre generé de façon logicielle sur toutes les broches GPIO.

Gestion SPI : possible sur les broches Function alternative couleur ROSE

I2C: broche SDA = GPIO2 et SCL = GPIO 3 en bleu ci dessous

SERIAL: TX sur broche physique 8 (GPIO14) et RX sur broche Physique 10 (GPIO15) . en vert ci dessous.

brochage du GPIO : ci dessous fichier format JPG a imprimé pour penses bete GPIO

si besoin , le pinout ( sans les fonctions alternatives) est disponible en ligne de commande et en tapant dans BASH la commande ci dessous:

pinout

pour finir et pour vos montage a base de RPI , il existe en vente en ligne plétore de cables en nappe et connecteurs pour les réalisations, voici 2 exemples parmis tant d’autres:

connecteur a plugger sur la barette GPIO du RPI:

nappe avec connecteur et PCB pour proto board :