
Comment héberger un site web avec Raspberry Pi – Bien choisir son serveur d impression

Ne sous-estimez jamais la minuscule, Raspberry Pi à 35 €. Bien qu’elle soit commercialisée comme une machine expérimentale destinée à vous aider à apprendre à coder, ses capacités ne sont en aucun cas une entrée de gamme.
À la rigueur, vous pouvez même utiliser votre Raspberry Pi en tant que serveur Web. Vous pouvez héberger un site simple ou stocker des fichiers dans le cloud afin d'y accéder à tout moment, sans frais d'hébergement mensuels, ni modèles limités, ni autres obstacles à votre créativité.
Voir également: 12 projets sympas pour votre Raspberry Pi
Pourquoi avez-vous besoin d'un serveur? La tendance a été de ne pas utiliser votre propre matériel mais de stocker des fichiers et des programmes dans ce que l’on appelle le «nuage» – certains serveurs auxquels vous vous connectez via Internet.
Mais un serveur est un serveur, que ce soit sur votre bureau ou dans un centre de données. Au niveau le plus élémentaire, un serveur est une combinaison de logiciel et de matériel qui répond aux demandes sur un réseau informatique afin de fournir des services. Le réseau informatique peut être aussi petit que votre réseau domestique ou aussi grand que le World Wide Web.
Dans le cas d'un serveur Web, le Raspberry Pi répond aux demandes de servir des pages Web, qu'il s'agisse de simples HTML ou d'applications Web sophistiquées.
Parce qu’il nécessite peu d’électricité et que vous pouvez le laisser fonctionner indéfiniment, un Pi constitue un excellent serveur. Chez moi, mes deux Raspberry Pis fonctionnent tous deux en tant que serveurs. L'un est un serveur d'impression et exécute également mon réseau privé virtuel, ou VPN; l'autre est un serveur Web. Les pis sont doués pour le multitaking: j'ai utilisé un de mes serveurs pour câbler mon aquarium afin que mon poisson puisse m'envoyer des SMS.
Cette solution est-elle adaptée à la création d’un site e-commerce ?
Chaque année en France, de plus en plus d’entreprises décident de se lancer dans l’aventure du e-commerce en installant une boutique en ligne. Depuis la dernière crise sanitaire que nous avons connu notamment, certains professionnels qui n’accordaient que peu d’importance au commerce en ligne ont depuis bien changé leur fusil d’épaule. Ils sont désormais convaincus que le commerce en ligne fait partie du futur de leur business et ils sont conscients qu’ils ne pourront pas continuer leur activité professionnelle sans créer de site internet qui permette de vendre leurs produits, qu’il s’agisse par ailleurs de B2C pour des particuliers ou de B2B pour des professionnels.
Pour réaliser un site e-commerce, de nombreuses solutions clés en main (CMS) existent comme Prestashop, Shopify, ou encore le géant américain Magento racheté par Adobe récemment. Contrairement à d’autres cas de figures, nous ne recommandons pas d’héberger votre site de vente en ligne sur un Rasperry Pi. Vous devriez en effet choisir un professionel pour l’hébergement et la création site e-commerce à La Roche sur Yon, Paris, ou Lyon. Partout en France, vous trouverez des agences qui sont spécialisées dans la création de site de vente en ligne sur Prestashop notamment, et ces derniers vous proposeront toutes les fonctionnalités qui sont nécessaires à la vente en ligne :
- création de vos catégories de produits
- administration des fiches produits
- gestion de tout le tunnel d’achat, en incluant les services de livraison et de paiement
- et bien d’autres fonctionnalités que seules les agences spécialisées dans l’e-commerce sauront vous conseiller
En effet, bien que l’on puisse être tenté de vouloir copier les plus grands sites e-commerce dans le monde, ce n’est pas toujours une bonne idée et vous devriez plutôt vous concentrer sur les besoins de vos utilisateurs précis, notamment en réalisant des ateliers de buyer persona !
Dos et pas de serveur Pi
Le serveur Web My Pi héberge une seule page Web qui se connecte à une base de données MySQL, qui tire ensuite ses données d'un programme Python, lequel récupère à son tour les données d'un thermomètre intelligent – et tout cela est hébergé sur le Pi. Cela semble compliqué, mais la configuration montre que vous pouvez sérieusement faire beaucoup avec quelque chose d'aussi petit qu'un Pi.
Voir également: Construire un VPN Raspberry Pi Première partie: Comment et pourquoi construire un serveur
Ce projet est un bon candidat pour un serveur Web Pi car le trafic est très faible. J’héberge une ressource que j’ai l’intention de vérifier de temps en temps, mais qui ne sera pas très utile à d’autres personnes.
Je ne saurais trop le souligner: un serveur Web Raspberry Pi n’est pas une solution professionnelle. Il existe différentes raisons pour lesquelles vous ne souhaitez pas héberger un site à forte fréquentation.
La première raison est que Raspberry Pi n'est toujours pas aussi puissant que votre PC domestique standard. Si je partageais un lien vers mon propre serveur Web Pi dans cet article pour que les lecteurs de ReadWrite puissent le visualiser, il se bloquerait probablement. Et, comme il est connecté à mon propre réseau domestique, il est possible que je ne puisse pas accéder moi-même à Internet à cause du trafic!
La deuxième raison est que, principalement pour le scénario décrit ci-dessus, votre fournisseur de services Internet ne l’autorisera probablement pas. Mon fournisseur d’accès Internet, Verizon, a même une section où il est mentionné l’hébergement de votre propre serveur:
«Le Service est un service destiné aux consommateurs et n'est pas conçu pour être utilisé à des fins commerciales. Par exemple, vous ne pouvez pas fournir d'accès Internet à des tiers via une connexion filaire ou sans fil, ni utiliser le Service pour faciliter l'accès public à Internet. (par exemple via un point d'accès Wi-Fi), utilisez-le à des fins de volume élevé ou exercez-vous des activités similaires qui constituent un tel usage (commercial ou non commercial)… Vous ne pouvez pas non plus dépasser les limites d'utilisation de la bande passante que Verizon peut établir de temps à autre. temps pour le service, ou utiliser le service pour héberger tout type de serveur. "
J’ai certainement contourné les règles en hébergeant trois serveurs différents avec mon réseau sans fil, mais le fait qu’ils soient tous destinés à un usage personnel et non commercial est probablement la raison pour laquelle Verizon a fermé les yeux. La même réponse a été exprimée par un ami possédant un serveur hébergé sur Verizon: «Ils ne m'ont envoyé un avertissement que lorsque je configurais un serveur de messagerie, car [Verizon] pensait pouvoir être utilisé pour envoyer du spam. "
Donc, l'hébergement d'un site commercial ou d'entreprise est hors de question. Cela laisse encore des ressources personnelles ouvertes; sites et espaces de stockage conçus pour votre propre usage. Comme mon serveur Web, qui me permet de surveiller l’activité de mon aquarium à la maison même lorsque je n’y suis pas.
Pour ce didacticiel, oublions les bases de données et les capteurs (vous pouvez en savoir plus sur la façon dont j'ai traité ceux de mon article précédent), et tout sauf le HTML. Je vais vous montrer comment créer rapidement et facilement une maison sur le Web, hébergée sur Raspberry Pi.
Mise en place du pi
Votre Pi n’est pas prêt à héberger un site Web tout de suite. Premièrement, il a besoin de trois choses de votre part:
Voir également: Comment configurer Raspberry Pi pour la première fois
- Un routeur et modem. Cela peut sembler évident, mais vous aurez besoin d’un routeur et d’un modem de votre fournisseur de services Internet. Même si vous n’avez pas à payer pour l’hébergement Web, vous devez quand même payer pour votre connexion Internet. Vous n’avez peut-être reçu qu’une boîte de votre FAI, mais c’est généralement un routeur et modem intégré dans un seul appareil. Un routeur séparé vous donnera plus de flexibilité pour connecter plusieurs périphériques.
- Un câble Ethernet. Ou, moins recommandé, un adaptateur USB sans fil. De toute façon, vous aurez besoin du Pi pour avoir une connexion Internet permanente.
- Un système d'exploitation. Je recommande Raspbian. Pour configurer un système d'exploitation sur votre Pi pour la première fois, consultez mon tutoriel.
- Accès SSH (Secure Shell). Un serveur Web n’a pas besoin d’un clavier, d’un moniteur ou d’une souris. Au lieu de cela, vous accéderez au Pi à distance via votre ordinateur portable ou un autre appareil équipé de ces fonctions. Voici mon tutoriel sur la configuration de SSH pour la première fois.
La configuration d’un accès Internet, d’un système d’exploitation et de SSH est une première étape indispensable dans de nombreux projets Raspberry Pi. C’est une bonne idée de vous habituer à faire ces trois choses chaque fois que vous déballez un nouveau Raspberry Pi.
Enfin, assurons-nous que tout est à jour:
sudo apt-get update
sudo apt-get upgrade
Ceci rafraîchira la connaissance du Pi sur ses paquets et leurs dépendances. Si vous essayez d’installer un paquet (comme Apache, comme nous le ferons dans une minute), cela empêchera le Pi d’être frustré de ne pas être en mesure de localiser la dernière version du paquet stockée en ligne.
Installer Apache
Comment transformer un Pi en une machine capable d'héberger des sites Web? Vous faites ce que d’autres mainteneurs de serveur font depuis les premiers jours du Web: vous installez le logiciel de serveur Web Apache.
Quand je dis que Apache est un serveur Web, je veux dire qu’il s’agit d’un programme qui écoute les demandes d’accès au serveur des navigateurs Internet et les accorde si cela est autorisé. Donc, si vous souhaitez que quiconque puisse accéder à un site Web sur votre Raspberry Pi, y compris vous-même, vous devez installer un serveur Web.
Le nom est un jeu de "patchy", puisque ses créateurs ont toujours corrigé le logiciel pour résoudre les problèmes. C’est devenu beaucoup mieux depuis ces débuts. Apache est une application de serveur Web HTTP open source gratuite (Hypertext Transfer Protocol). Lorsque vous tapez une URL dans votre navigateur Web, un serveur Web répond quelque part en servant une page Web. Apache est populaire à ces fins: Environ 50% des sites sont hébergés par des serveurs exécutant Apache.
Heureusement, il s’agit d’un processus en une étape. Aller à la ligne de commande et tapez:
sudo apt-get install apache2 php5 libapache2-mod-php5
Cette invite accomplit plusieurs choses en même temps. Il installe la dernière version d'Apache, le serveur que nous devons utiliser. Il installe également deux autres packages: PHP et une bibliothèque qui aide Apache à collaborer avec PHP.
Pour un site HTML de base qui reste statique et qui n’a pas beaucoup de fonctionnalités en dehors du texte, vous n’avez pas besoin de PHP. Mais si vous souhaitez que votre site se connecte à une base de données, vous aurez besoin d’un framework Web. PHP est un framework Web qui ajoute plus de fonctionnalités aux sites Web HTML de base.
Par exemple, si vous souhaitez installer WordPress sur votre site hébergé Raspberry Pi, vous devez vous assurer que vous pouvez installer au moins une base de données.
Une fois Apache terminé, redémarrez-le avec cette commande pour activer le programme:
sudo service apache2 redémarrer
Faire un site Web de base
Dès que le Raspberry Pi a fini de traiter la commande ci-dessus, il génère instantanément un site Web de base fonctionnel.
Allez dans votre navigateur Web et tapez l’adresse locale de votre Pi. Cela ressemblera à 192.168.X.X. (Si vous n'avez pas déjà obtenu cette adresse, reportez-vous à mes instructions d'utilisation de la commande sudo ifconfig pour l'obtenir.) Un site très basique devrait apparaître, intitulé "Ça marche!". Cette simple page index.html est préinstallée. avec Apache.

Voulez-vous le modifier? Visitez la page index.html sur votre Pi:
cd / var / www /
sudo nano index.html
Essayez de changer les mots, de sauvegarder le fichier et de revenir à l’adresse locale du Pi pour voir vos modifications prendre forme.
Mise en ligne
Vous pouvez accéder à votre site Web et l’éditer, mais il n’est visible que sur votre réseau local. C’est une bonne chose. Vous ne voulez pas que ce soit aussi facile pour les gens d’accéder à Internet chez vous!
Voir également: 5 pointeurs pour surcharger vos projets Raspberry Pi
Alors, comment obtenez-vous votre serveur Web sur le Web lui-même et pas seulement sur votre réseau local? Pensez à la manière dont Internet entre chez vous. Votre FAI vous a fourni une boîte servant de routeur. Lorsque vous accédez à Internet, votre demande passe par votre routeur à Internet, puis revient par le routeur à votre ordinateur.
Plus techniquement, le fournisseur de services Internet renvoie la demande au port 80, le port par défaut pour les demandes HTTP. Ou comme nous les connaissons, les demandes de navigation sur le Web.
Notre objectif est que les requêtes proviennent d'Internet et passent par le routeur de notre routeur Pi.
Le problème? À la maison, nous avons beaucoup d’appareils (ordinateurs, tablettes, téléphones portables, par exemple), à part le Raspberry Pi. Vouloir diriger le trafic vers le Raspberry Pi uniquement, à partir de tous vos appareils du réseau, reviendrait à envoyer une lettre à une personne habitant dans un immeuble sans préciser le numéro de l'appartement. Le courrier serait renvoyé à son expéditeur.

Et ce n’est pas le seul problème. Nous devons tenir compte du fait que dans de nombreux cas, le routeur est équipé d’un pare-feu intégré, un système de sécurité qui contrôle le trafic entrant et sortant. Généralement, l'objectif est de ne pas laisser les personnes d'Internet accéder à votre réseau domestique. Mais cette fois, nous voulons percer un trou en forme de Raspberry-Pi dans le pare-feu pour que le trafic puisse passer.
Heureusement, il existe une solution aux deux problèmes: nous transmettons le port 80 à un autre. Si nous disons que le Raspberry Pi est, par exemple, sur le port 8080, le routeur transmettra le trafic à cet endroit.

Dans mes exemples, les chiffres 2.1.1.1 ne font que simuler le modèle numérique des demandes d’URL. Généralement, vous demandez une URL en saisissant un nom de domaine. C’est comme cela que l’ordinateur le lit. Nous allons procéder à la conversion de nos adresses IP en noms de domaine lisibles par l’homme en quelques étapes supplémentaires.
Une commande de transfert pour votre Pi
Cette étape dépendra du type de routeur que vous possédez et peut varier en fonction du logiciel de ce routeur.
Voici quelques tutoriels sur la redirection de port pour les principaux fabricants de routeurs:
C’est la partie la plus indépendante du didacticiel. Vous pouvez donc vous demander: «Que se passe-t-il si je saute ceci et attribue simplement un nom de domaine à l’adresse IP de Raspberry Pi?».
J’ai essayé cela et c’est possible. Mais ne vous attendez pas à ce que votre FAI l’autorise très longtemps.
Juste pour le plaisir, j’ai essayé d’ignorer le port et d’appliquer un nom de domaine à l’adresse IP de mon Raspberry Pi. Étant donné que je pouvais identifier son adresse IP comme étant unique parmi les autres périphériques de mon réseau, il ne devrait y avoir aucun problème, non?
Faux. Mon fournisseur d’accès Internet, Verizon, a bloqué l’accès en moins de 60 secondes. C’est probablement parce qu’il a jugé que je faisais quelque chose de mal avisé. Je vous avais déjà dit que votre FAI interdirait les activités qui, à son avis, vont à l'encontre de ses conditions de service.
Lorsque des robots malveillants explorent le Web, ils effectuent parfois un ping sur le port 80 par défaut, simplement pour voir s’ils peuvent obtenir un accès. En réponse, certains FAI vont bloquer le trafic entrant sur le port 80 par défaut. Verizon ne voulait pas que je rende un site Web accessible sur le port 80, car c’est la norme. Lorsque vous utilisez un autre port, cependant, Verizon ne m’a pas posé de problème.
Obtenir un nom de domaine
Désormais, les internautes peuvent accéder à votre site depuis n’importe où, s’ils connaissent l’adresse IP externe de votre Raspberry Pi. Mais la plupart des gens sont habitués à écrire une demande de nom de domaine en termes réels.
Heureusement, il existe des services gratuits que vous pouvez utiliser pour traduire votre adresse IP en un nom de domaine. J'utilise DNSdynamic le plus souvent, mes instructions refléteront donc ce service.
Inscrivez-vous à DNSdynamic et sécurisez un domaine disponible qui ressemblera à «Exemple.dnsdynamic.com».

DNSdynamic vous indiquera utilement votre adresse IP externe actuelle. J'ai brouillé le mien pour la sécurité; vous ne voulez pas partager cela avec les gens. Mais au lieu de votre propre adresse IP, vous voudrez renseigner l’adresse IP externe de Raspberry Pi, que vous aurez sécurisée après le transfert du port.

Vous avez maintenant un nom de domaine lisible par l’homme qui est transféré vers l’adresse IP du Pi.
Et tu as fini! Partagez votre nom de domaine avec vos amis, votre famille ou toute autre personne avec laquelle vous souhaitez pouvoir accéder à votre site. Ne devenez pas trop populaire, car si votre Pi reçoit trop de trafic, vous devrez en expliquer quelques-uns à votre FAI.
Commentaires
Laisser un commentaire