Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
tutoriel:reseau:http:serveur:lemp:start [2024/09/21 10:24] – ↷ Page déplacée de tutoriel:reseau:web:serveur:lemp:start à tutoriel:reseau:http:serveur:lemp:start admin | tutoriel:reseau:http:serveur:lemp:start [2024/09/21 22:29] (Version actuelle) – [Mise en place de PHP] admin |
---|
| |
**LEMP** ((**L**inux, NGINX (**e**ngine X), **M**ySQL/MariaDB, **P**HP/**P**erl/**P**ython)) est un serveur HTTP composé de : | **LEMP** ((**L**inux, NGINX (**e**ngine X), **M**ySQL/MariaDB, **P**HP/**P**erl/**P**ython)) est un serveur HTTP composé de : |
* **[[logiciel:reseau:web:serveur:nginx:start|]]** | * **[[logiciel:reseau:http:serveur:nginx:start]]** |
* **PHP**, ou plutôt le packet **php-fpm**, interface pour communiquer avec le serveur NGINX et PHP. | * **PHP**, ou plutôt le packet **php-fpm**, interface pour communiquer avec le serveur NGINX et PHP. |
* **[[logiciel:reseau:serveur:bdd:sql:mariadb:start|]]** | * **[[logiciel:reseau:bdd:sql:mariadb:start]]** |
* **[[logiciel:reseau:serveur:bdd:adminer:start|]]** | * **[[logiciel:reseau:bdd:adminer:start]]** |
| |
===== Pré-requis ===== | ===== Pré-requis ===== |
<subnumberlist> | <subnumberlist> |
- **Installez [[apt>nginx,php-fpm,php-gd,php-curl,php-intl,php-xmlrpc,php-mbstring,php-mysql,php-xml,php-zip]]** <cli prompt='$ '>USER@MACHINE:~$ sudo apt install {nginx php-{fpm,gd,curl,intl,xmlrpc,mbstring,mysql,xml,zip}}</cli>Pour gérer les fichiers PHP avec Nginx, nous utilisons **php-fpm** (une version plus rapide de PHP) plutôt que PHP. Cette installation a créé le répertoire **/var/www/html** pour la racine des sites. | - **Installez [[apt>nginx,php-fpm,php-gd,php-curl,php-intl,php-xmlrpc,php-mbstring,php-mysql,php-xml,php-zip]]** <cli prompt='$ '>USER@MACHINE:~$ sudo apt install {nginx php-{fpm,gd,curl,intl,xmlrpc,mbstring,mysql,xml,zip}}</cli>Pour gérer les fichiers PHP avec Nginx, nous utilisons **php-fpm** (une version plus rapide de PHP) plutôt que PHP. Cette installation a créé le répertoire **/var/www/html** pour la racine des sites. |
- **Vérifiez que NGINX est bien démarré** : sur un PC du réseau, ouvrez dans un navigateur l'adresse IP du serveur [[http://<AdresseIpDeVotreServeur>]]. Si tout va bien, il s'affiche :{{ :tutoriel:reseau:web:serveur:lemp:lemp_001.png?400 |}}Vous pouvez aussi vérifier que le service NGINX est bien démarré :<cli prompt='$ '>USER@MACHINE:~$ sudo systemctl is-active nginx | - **Vérifiez que NGINX est bien démarré** : sur un PC du réseau, ouvrez dans un navigateur l'adresse IP du serveur [[http://<AdresseIpDeVotreServeur>]]. Si tout va bien, il s'affiche :{{ tutoriel:reseau:http:serveur:lemp:lemp_001.png?400 |}}Vous pouvez aussi vérifier que le service NGINX est bien démarré :<cli prompt='$ '>USER@MACHINE:~$ sudo systemctl is-active nginx |
active</cli> | active</cli> |
- **Sauvegardez les fichiers de configuration** :<cli prompt='$ '>USER@MACHINE:~$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.dist</cli> | - **Sauvegardez les fichiers de configuration** :<cli prompt='$ '>USER@MACHINE:~$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.dist</cli> |
| |
<subnumberlist> | <subnumberlist> |
- **[[tutoriel:reseau:web:serveur:racine:start|]]** | - **[[tutoriel:reseau:http:serveur:racine:start]]** |
- **Sauvegardez /etc/nginx/sites-available/default** :<cli prompt='$ '>USER@MACHINE:~$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.dist</cli> | - **Sauvegardez /etc/nginx/sites-available/default** :<cli prompt='$ '>USER@MACHINE:~$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.dist</cli> |
- **Éditez avec les droits d'administration le fichier /etc/nginx/sites-available/default** : | - **Éditez avec les droits d'administration le fichier /etc/nginx/sites-available/default** : |
...</cli> | ...</cli> |
- **Sur un PC du réseau, ouvrez en http l'adresse IP du serveur** [[http://<AdresseIpDeVotreServeur>]]. Si tout va bien, une page affiche les informations de PHP. | - **Sur un PC du réseau, ouvrez en http l'adresse IP du serveur** [[http://<AdresseIpDeVotreServeur>]]. Si tout va bien, une page affiche les informations de PHP. |
- **Installez [[logiciel:reseau:serveur:bdd:sql:mariadb:start|]]** | - **Installez [[logiciel:reseau:bdd:sql:mariadb:start]]** |
- **Installez [[logiciel:reseau:transfert:serveur:vsftpd:start|]]** | - **Installez [[logiciel:reseau:ftp:serveur:vsftpd:start]]** |
- **Installez [[logiciel:reseau:serveur:bdd:adminer:start|]]** | - **Installez [[logiciel:reseau:bdd:adminer:start]]** |
- **Sécurisez Nginx** : | - **Sécurisez Nginx** : |
* **[[tutoriel:reseau:web:serveur:nginx:ssl:autosigne:raspi:start|]]** | * **[[tutoriel:reseau:http:serveur:nginx:ssl:autosigne:raspi:start]]** |
* **[[tutoriel:reseau:web:serveur:nginx:ssl:letsencrypt:start|]]** | * **[[tutoriel:reseau:http:serveur:nginx:ssl:letsencrypt:start]]** |
</subnumberlist> | </subnumberlist> |
| |
- Pour vérifier que Nginx exécute PHP, créez le fichier **/var/www/html/index.php** :<code - > | - Pour vérifier que Nginx exécute PHP, créez le fichier **/var/www/html/index.php** :<code - > |
<?php | <?php |
phpinfo();</code>Dans votre navigateur, allez à [[http://<adresse_ip_de_votre_serveur>]] :{{ :tutoriel:reseau:web:serveur:lemp:lemp_002.png?400 |}} | phpinfo();</code>Dans votre navigateur, allez à [[http://<adresse_ip_de_votre_serveur>]] :{{ tutoriel:reseau:http:serveur:lemp:lemp_002.png?400 |}} |
</subnumberlist> | </subnumberlist> |
| |
- **Installez les modules de php** (remplacez **php7.3** par la version trouvée ci-dessus) :<cli prompt='$ '>USER@MACHINE:~$ sudo apt install php7.3-{fpm}</cli> | - **Installez les modules de php** (remplacez **php7.3** par la version trouvée ci-dessus) :<cli prompt='$ '>USER@MACHINE:~$ sudo apt install php7.3-{fpm}</cli> |
- Pour les installer :<cli prompt='$ '>USER@MACHINE:~$ sudo apt install php7.4-{fpm,cli,opcache,mbstring,curl,xml,gd,mysql,common,json,bcmath,bz2,intl,zip,pdo,imagick,tidy,xmlrpc,dev,imap,soap}</cli> FIXME php7.4-apc n'est pas retrouvé | - Pour les installer :<cli prompt='$ '>USER@MACHINE:~$ sudo apt install php7.4-{fpm,cli,opcache,mbstring,curl,xml,gd,mysql,common,json,bcmath,bz2,intl,zip,pdo,imagick,tidy,xmlrpc,dev,imap,soap}</cli> FIXME php7.4-apc n'est pas retrouvé |
- **Installez [[logiciel:devlogiciel:php:start]]** | - **Installez [[logiciel:developpement:langage:php:start|]]** |
- **[[logiciel:reseau:web:serveur:nginx:start|]]** | - **[[logiciel:reseau:http:serveur:nginx:start]]** |
- **Installez [[logiciel:reseau:web:serveur:nginx:raspi:start|]]** | - **Installez [[logiciel:reseau:http:serveur:nginx:raspi:start]]** |
- **Installez la base de données SQL**, selon le cas : | - **Installez la base de données SQL**, selon le cas : |
- **MariaDB** : définissez le mot de passe de l'utilisateur root de MariaDb :<cli prompt='$ '>USER@MACHINE:~$ sudo mysql_secure_installation</cli>Au début, répondre <key>Entrée</key> car il n'y a pas de mot de passe, puis en donner un). MariaDB est installé et prêt à l'emploi. | - **MariaDB** : définissez le mot de passe de l'utilisateur root de MariaDb :<cli prompt='$ '>USER@MACHINE:~$ sudo mysql_secure_installation</cli>Au début, répondre <key>Entrée</key> car il n'y a pas de mot de passe, puis en donner un). MariaDB est installé et prêt à l'emploi. |