GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installation et configuration de Php et Nginx sur Ubuntu 20.04

PHP est un langage de script à usage général. Il est surtout populaire pour le développement Web. Il peut être utilisé pour développer des sites Web dynamiques et interactifs. C'était l'un des premiers langages côté serveur pouvant être intégrés au HTML, ce qui facilitait l'ajout de fonctionnalités aux pages Web sans avoir besoin d'appeler des fichiers externes pour obtenir des données. PHP fait partie des langages de programmation les plus faciles à apprendre.

Il est intégré à un certain nombre de bases de données populaires, notamment MySQL, PostgreSQL, Oracle, Sybase, Informix et Microsoft SQL Server. De nombreux CMS et frameworks populaires tels que WordPress, Magento et Laravel sont écrits en PHP.

Au moment de la rédaction de cet article, les référentiels Ubuntu 20.04 par défaut incluent la version PHP 7.4.

Prérequis

Pour suivre ce guide, assurez-vous que vous disposez des éléments suivants :

  1. Serveur Ubuntu 20.04 mis à jour connecté à Internet
  2. Accès root au serveur ou utilisateur avec accès sudo
  3. Vous devez être à l'aise avec l'utilisation du terminal Linux pour exécuter des commandes.

Étapes pour installer et configurer PHP dans Ubuntu 20.04

  1. Assurez-vous que le serveur est à jour
  2. Installer php 7.4 sur le serveur
  3. Installer Nginx
  4. Configurer Nginx pour servir le fichier php

1. Assurez-vous que le serveur est à jour

Avant de continuer, assurons-nous que notre serveur est mis à jour. Utilisez ces commandes pour 1. Mettre à jour les référentiels du serveur, 2. Mettre à niveau les packages du serveur vers les dernières versions :

# Update repos
sudo apt update

# Upgrade packages
sudo apt -y upgrade

2. Installez php 7.4 sur le serveur

Comme les dépôts par défaut contiennent la version 7.4 de PHP, installons-la avec cette commande :

sudo apt install php -y

Confirmez la version installée avec la commande php -v :

~$ php -v
PHP 7.4.3 (cli) (built: Aug 13 2021 05:39:12) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

Dans cette configuration, nous avons l'intention de servir des fichiers php avec Nginx. Nginx n'a pas de support intégré pour le traitement des fichiers PHP. Nous utiliserons PHP-FPM ("gestionnaire de processus fastCGI") pour gérer les fichiers PHP.

Nginx ne fonctionnera pas si Apache est installé et en cours d'exécution. Puisque nous allons utiliser Nginx, utilisons cette commande pour supprimer apache s'il est installé dans notre système :

$ sudo apt remove apache2 -y

Installons maintenant php-fpm avec cette commande :

sudo apt install php-fpm -y

Une fois l'installation terminée, le service FPM démarre automatiquement. Le service est ajouté à systemd en tant que php7.4-fpm . Pour vérifier l'état du service, exécutez :

$ sudo systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-09-28 16:18:41 UTC; 3min 18s ago
       Docs: man:php-fpm7.4(8)
   Main PID: 56092 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 4710)
     Memory: 7.1M
     CGroup: /system.slice/php7.4-fpm.service
             ├─56092 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─56113 php-fpm: pool www
             └─56114 php-fpm: pool www

Sep 28 16:18:41 ip-172-26-11-229 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Sep 28 16:18:41 ip-172-26-11-229 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

Vous devriez voir une sortie comme ci-dessus.

3. Installation de Nginx

Maintenant que PHP et php-fpm sont installés dans le système, nous devons installer nginx. Nginx nous permettra de configurer un hôte virtuel que nous pourrons utiliser pour servir le trafic d'un domaine.

Installez nginx à l'aide de cette commande :

sudo apt install nginx -y

Une fois l'installation terminée, Nginx sera démarré par défaut. Confirmez qu'il fonctionne comme prévu en vérifiant son état. Vous devriez voir une sortie comme celle-ci :

$ sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-09-28 16:28:30 UTC; 1min 2s ago
       Docs: man:nginx(8)
   Main PID: 56990 (nginx)
      Tasks: 3 (limit: 4710)
     Memory: 3.7M
     CGroup: /system.slice/nginx.service
             ├─56990 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─56991 nginx: worker process
             └─56992 nginx: worker process

Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Starting A high performance web server and a reverse pr>
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Started A high performance web server and a reverse pro>

Pour confirmer que Nginx est réellement en cours d'exécution et accessible, utilisez cette commande :

curl http://server_ip/

server_ip est l'IP de votre serveur. Si, pour une raison quelconque, vous ne connaissez pas l'adresse IP publique de votre serveur, utilisez ceci pour vérifier :

curl -4 icanhazip.com

Vous devriez voir la page par défaut de Nginx.

4. Configurer Nginx pour servir le fichier php

Maintenant que nous avons configuré et exécuté Nginx sur notre serveur, faisons en sorte qu'il serve des fichiers php. Dans cet exemple, nous allons configurer Nginx pour servir la page d'informations php.

Pour ce faire, nous devons configurer un hôte virtuel dans Nginx servant le trafic pour un domaine spécifique (nous utiliserons example.citizix.com ). Pour que cela fonctionne, vous devez mettre à jour les enregistrements DNS de ce domaine dans votre hôte DNS pour avoir A les enregistrements pointent vers ce domaine ou sous-domaine. Consultez la documentation de votre fournisseur DNS pour savoir comment procéder.

Confirmez que le domaine peut être résolu correctement sur le serveur à l'aide de la commande dig :

❯ dig -t A example.citizix.com

; <<>> DiG 9.10.6 <<>> -t A example.citizix.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10212
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;example.citizix.com.       IN  A

;; ANSWER SECTION:
example.citizix.com.    300 IN  A   172.67.197.11

;; Query time: 828 msec
;; SERVER: 192.168.157.227#53(192.168.157.227)
;; WHEN: Tue Sep 28 20:42:05 EAT 2021
;; MSG SIZE  rcvd: 80

Nous devons maintenant suivre ces étapes pour que notre script simple fonctionne :

  1. Créez le répertoire pour stocker notre contenu statique (nous utiliserons /var/www/example.citizix.com )
    sudo mkdir -p /var/www/example.citizix.com
  2. Assurez-vous que le répertoire créé est accessible par l'utilisateur Nginx
    sudo chown -R www-data:www-data /var/www/example.citizix.com
    sudo chmod -R 755 /var/www/example.citizix.com
  3. Ajouter un fichier d'index /var/www/example.citizix.com/index.php avec un contenu pour afficher les informations php dans le répertoire (/var/www/example.citizix.com )
    Modifiez le fichier :

    sudo vim /var/www/example.citizix.com/index.php

    Ajoutez ce contenu :

    <?php
    phpinfo()
    ?>

    Enregistrez et fermez le fichier.

  4. Créer la configuration nginx dans le répertoire par défaut nginx /etc/nginx/conf.d . 1. Nous allons créer le fichier /etc/nginx/conf.d/example.citizix.com.conf avec le contenu requis.
    sudo vim /etc/nginx/conf.d/example.citizix.com.conf

Ajoutez ce contenu :

server {
    listen 80;
    server_name example.citizix.com;

    root /var/www/example.citizix.com;
    index index.php;

    location ~ \.php$ {
        fastcgi_intercept_errors on;
        include        fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
}

Confirmez que la configuration nginx est correcte avec cette commande :

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Vous devez maintenant redémarrer nginx et php-fpm en utilisant ces commandes :

sudo systemctl restart nginx
sudo systemctl restart php7.4-fpm

Confirmez que les services sont apparus :

sudo systemctl status nginx
sudo systemctl status php7.4-fpm

Vous devriez voir que les services ont redémarré avec succès !

Si tout se passe bien, vous devriez voir la page d'informations php comme indiqué dans la capture d'écran ci-dessous :

C'est tout! Jusqu'à présent, nous avons pu installer php 7.4 dans Ubuntu 20.04 et servir un fichier simple avec Nginx.


Ubuntu
  1. Configuration de base de PHP 7 et Nginx sur Ubuntu 16.04 Linux

  2. Configurer NTP sur Centos et Ubuntu

  3. Installer et configurer PHP OPcache sur Ubuntu 20.04

  4. Comment installer et configurer PHP et Nginx (LEMP) sur Ubuntu 20.04

  5. Erreur lors de l'installation de Nginx sur Ubuntu 16.04 ?

Installation de Nginx avec PHP5 (et PHP-FPM) et le support MySQL (LEMP) sur Ubuntu 13.04

Installation d'Apache2 avec prise en charge de PHP5 et MySQL sur Ubuntu 13.04 (LAMP)

Installation de Nginx avec prise en charge de PHP5 et MySQL sur Ubuntu 8.10

Installation de Lighttpd avec PHP (mode PHP-FPM) et MySQL ou MariaDB sur Ubuntu 15.04

Installation de Lighttpd avec PHP (mode PHP-FPM) et MySQL ou MariaDB sur Ubuntu 15.10

Installation et configuration de Plex Media Server sur Ubuntu