Installer un serveur Web avec Nginx & PHP 7.0 sur un Raspberry Pi

Avatar de Yubigeek
Installer un serveur Web avec Nginx & PHP 7.0 sur un Raspberry Pi

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 –versionPHP 7.0.9-1 (cli) ( NTS ) Copyright © 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright © 1998-2016 Zend Technologies with Zend OPcache v7.0.9-1, Copyright © 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

Total
0
Shares
Laisser un commentaire
Previous Post
Le Galaxy Note 7, le smartphone au scanner d’iris !

Le Galaxy Note 7, le smartphone au scanner d’iris !

Next Post
Installer un serveur MySQL avec MariaDB sur un Raspberry Pi

Installer un serveur MySQL avec MariaDB sur un Raspberry Pi

Related Posts