Il y a quelques temps, on vous présentait le Raspberry Pi, le nano-ordinateur mono-carte à processeur ARM (Architecture ARM) conçu par le créateur de jeux vidéo David Braben. Cette fois-ci, on vous explique comment l’utiliser intelligemment en installant un serveur Web (avec Nginx) et PHP 7.0.

Pré-requis :

  • Posséder un Raspberry Pi (1, 2, 3, ou Zéro)
  • Avoir une connexion Internet (via Wi-Fi, ou Ethernet)
  • Un accès SSH ou un accès console via le Raspberry Pi

Mettre à jour votre Raspberry Pi

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get upgrade

L’option update met à jour la liste des fichiers disponibles dans les dépôts APT présents dans le fichier de configuration /etc/apt/sources.list. L’option upgrade met à jour tous les paquets installés sur le système vers les dernières versions (couramment utilisé). L’option dist-upgrade met à jour tous les paquets installés vers les dernières versions en installant de nouveaux paquets si nécessaire, par opposition à l’upgrade simple qui n’ajoute pas de nouveaux paquets. Exécuter ces commandes régulièrement est une bonne pratique, afin de maintenir à jour votre liste de paquets disponibles.

Désactiver le serveur Apache2

Si vous avez déjà installer un serveur Web avec Apache ou Apache2, il est très fortement conseillé de désactiver ces services afin de faire fonctionner Nginx correctement, le cas échéant, veuillez ignorer cette étape.

sudo service apache2 stop

Désormais, le serveur Apache2 ne tourne plus. Nous allons maintenant l’empêcher de se lancer automatiquement au démarrage de Raspbian comme il le fait pour le moment.

sudo systemctl disable apache2

Si vous le souhaitez, vous pouvez redémarrer votre Raspberry Pi avec la commande reboot.

Installer PHP 7.0

Raspbian étant basé sur Debian Jessie avec PHP 5.6 par défaut. Cela fonctionne très bien, mais il y a une meilleure alternative qui est PHP 7.0. Sorti en Décembre 2015, PHP 7.0 est un radical saut pour PHP en termes de performances, les fonctionnalités du langage et de la réduction de l’utilisation de la mémoire.

Pour installer cette nouvelle version de PHP, nous devons puiser dans la branche testing de Raspbian, communément connu sous le nom de code stretch. Nous devons modifier le sources.list (fichier utilisé par apt-get).

sudo vi /etc/apt/sources.list

Ajouter cette ligne à la fin du fichier :

deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi

En ajoutant ceci, toutes les installations ou les mises à jour utiliseront les nouvelles versions de fichiers disponibles dans le stretch qui ne sont pas considérés à 100% stable. La façon de contourner cela est d’épingler tous les paquets à utiliser le jessie version avec une priorité plus élevée par défaut. Pour ce faire, créer un fichier de préférences :

sudo vi /etc/apt/preferences

Et collez ceci dans le fichier :

Package: *
Pin: release n=jessie
Pin-Priority: 600

Enregistrez ce fichier et mettez à jour les dépôts :

sudo apt-get update

Maintenant, vous êtes prêt à installer PHP 7.0 à partir du stretch, y compris tous les paquets PHP communs :

sudo apt-get install -t stretch php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-mbstring php7.0-xml php7.0-zip

Une fois que tout ceci est installé, il faut vérifier que PHP est correctement installé en vérifiant sa version, pour cela, saisissez la commande :

php --version
PHP 7.0.9-1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.9-1, Copyright (c) 1999-2016, by Zend Technologies

Installer le serveur Nginx

Nginx (se prononce : engine x) est un logiciel libre de serveur Web (ou HTTP) ainsi qu’un proxy inverse écrit par Igor Sysoev, dont le développement a débuté en 2002 pour les besoins d’un site russe à très fort trafic (Rambler). Une partie de la documentation de Nginx a été traduite du russe vers l’anglais.

Nous allons utiliser le gestionnaire de paquet « apt-get » pour installer Nginx et php-fpm sur la Raspberry depuis les dépôts Raspbian.

sudo apt-get install -t stretch nginx

Une fois que Nginx est installé sur votre Raspberry Pi, il faut modifier quelques paramètres dans le fichier de configuration de Nginx.

sudo vi /etc/php/7.0/fpm/pool.d/www.conf

Il faut donner les permissions à Nginx pour utiliser l’utilisateur “pi” (utilisateur par défaut sur un Raspberry Pi) et le groupe “pi” :

user = pi
group = pi

Ajouter un site à Nginx

Pour ajouter un site à Nginx, il faut ajouter un fichier dans /etc/nginx/sites-available/ et y insérer le contenu ci-dessous :

server {
    listen 80;
    index index.html index.php;

    root /home/pi/www;
    server_name localhost;

    location / {
        try_files $uri $uri/ /index.html /index.php;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        # fastcgi_pass 127.0.0.1:9000;

        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    }

    location ~* /(.git|cache|bin|logs|backups|tests)/.*$ { return 403; }
    location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
    location ~* /user/.*\.(txt|md|yaml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
    location ~ /(LICENSE.txt|composer.lock|composer.json|nginx.conf|web.config|htaccess.txt|\.htaccess) { return 403; }
}

Vous pouvez modifier le répertoire de votre site (par défaut dans /home/pi/www) à la ligne “root”, ainsi que le nom de domaine à la ligne “server_name”.

Imaginons que vous possédiez deux sites Internet en local sur votre Raspberry Pi, vous pouvez utiliser ces deux configurations :

# Contenu du fichier de configuration Nginx pour notre blog WordPress
root /home/pi/www/wordpress;
server_name mon-blog.app;
# Contenu du fichier de configuration Nginx pour notre forum phpBB
root /home/pi/www/phpbb;
server_name mon-forum.app;

Pour activer un site Internet configuré avec Nginx, vous devez créer un lien symbolique à l’aide de ces commandes :

cd /etc/nginx/sites-enabled/
rm default
ln -s ../sites-available/nom-du-fichier-de-configuration

Ensuite, il suffit de redémarrer Nginx et php-fpm pour s’assurer que les nouveaux changements sont pris en charge :

sudo service nginx restart
sudo service php7.0-fpm restart

 

Installer un serveur Web avec Nginx & PHP 7.0 sur un Raspberry Pi
Voter pour cet article
4 commentaires
  1. Si vous utilisez MySql pour votre site, ne pas oublier la commande :
    sudo apt-get install -t stretch php7.0-mysql
    en plus, sinon vous n’avez plus accès à votre base de données.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Inscrivez vous à notre newsletter

Soyez informé des derniers articles sur YubiGeek. Saisissez votre adresse email et validez le formulaire. Un email de confirmation vous sera communiqué.

Vous devriez également aimer

Kalliope : un assistant vocal pour votre Raspberry Pi (installation)

Aujourd’hui, je vous propose de découvrir Kalliope, un assistant vocal développé par Nicolas…

Installer un serveur MySQL avec MariaDB sur un Raspberry Pi

MariaDB est un système de gestion de base de données édité sous…

Raspberry Pi : comment concevoir un bot qui dicte la météo chaque jour ?

Cette semaine a été remplie d’article pour votre Raspberry Pi, aujourd’hui on…

Raspberry Pi : un compteur d’abonné visuel pour les réseaux sociaux

Je fais suite au tutoriel sur la création d’un compteur d’abonné vocal…