Recherche de site Web

Installation de LEMP (Nginx, PHP, MySQL avec le moteur MariaDB et PhpMyAdmin) dans Arch Linux


En raison de son modèle Rolling Release qui inclut des logiciels de dernière génération, Arch Linux n'a pas été conçu et développé pour fonctionner comme un serveur afin de fournir des services réseau fiables, car il nécessite plus de temps pour la maintenance, les mises à niveau constantes et les configurations de fichiers sensibles.

Mais néanmoins, étant donné que Arch Linux est livré avec une installation de base sur CD avec un minimum de logiciels préinstallés, il peut représenter une base de départ solide pour installer la plupart des services réseau populaires de nos jours, y compris < b>LEMP ou LAMP, serveur Web Apache, Nginx, PHP, bases de données SQL, Samba, serveurs FTP, BIND et autres, dont beaucoup sont fournis par Arch Dépôts officiels Linux et autres de AUR.

Ce didacticiel vous guidera dans l'installation et la configuration de la pile LEMP (Nginx, PHP, MySQL avec le moteur MariaDB et PhpMyAdmin) à distance en utilisant SSH, ce qui peut fournir une base solide pour créer des applications de serveur Web.

Exigences

Guide d'installation d'Arch Linux précédent, à l'exception de la dernière partie sur la mise en réseau avec DHCP.

Étape 1 : attribuer une adresse IP statique sur l'interface réseau

1. Après une installation minimale du noyau Arch Linux, redémarrez votre serveur, connectez-vous avec le compte root ou un compte sudo administratif équivalent et identifiez les noms de périphériques des cartes réseau de votre système à l'aide du lien IP<. commande.

ip link

2. Pour attribuer des configurations réseau statiques, nous allons utiliser le package Netctl pour gérer les connexions réseau. Après avoir identifié avec succès les noms de vos interfaces réseau, copiez le modèle de fichier ethernet-static dans le chemin système netctl et modifiez son nom en un schéma de dénomination descriptif ( essayez d'utiliser la chaîne « statique » combinée avec le nom de la carte réseau), en exécutant la commande suivante.

cp /etc/netctl/examples/ethenet-static  /etc/netctl/static.ens33

3. L'étape suivante consiste à modifier ce nouveau fichier modèle en modifiant les directives du fichier et en fournissant vos paramètres réseau réels (Interface, IP/Masque de réseau, Passerelle, Diffusion, DNS) comme dans l'extrait ci-dessous.

nano  /etc/netctl/static.ens33

Description='A basic static ethernet connection for ens33'
Interface=ens33
Connection=ethernet
IP=static
Address=('192.168.1.33/24')
Gateway='192.168.1.1'
Brodcast='192.168.1.255'
DNS=('192.168.1.1' '8.8.8.8')

4. L'étape suivante consiste à démarrer votre connexion réseau via l'outil système netctl et à vérifier la connectivité de votre système en exécutant les commandes suivantes.

netctl start static.ens33
netctl status static.ens33

5. Si vous obtenez un statut de sortie vert actif, vous avez configuré avec succès votre interface réseau et il est temps de l'activer automatiquement sur les services à l'échelle du système. Testez également votre réseau en exécutant une commande ping sur un nom de domaine et installez également le package net-tools (la fonctionnalité la plus connue de ce package est la commande ifconfig qu'Arch les développeurs l'ont considéré comme obsolète et l'ont remplacé par iproute2).

Activer les configurations de la carte réseau à l’échelle du système
netctl enable static.ens33
Installer le paquet net-tools
pacman -S net-tools

6. Vous pouvez maintenant exécuter la commande ifconfig pour vérifier vos paramètres Interfaces réseau et vérifier si tout s'affiche correctement, puis redémarrer votre système pour vous assurer que tout est en place et correctement configuré.

ping linux-console.net

Étape 2 : Installer le logiciel LEMP

Comme indiqué dans l'introduction de cet article, LEMP signifie Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB, qui est aujourd'hui l'une des plates-formes d'applications Web les plus répandues après LAMP (le même pile avec Apache dans l'équation).

7. Avant d'installer réellement la pile LEMP, nous devons mettre à jour le système, puis obtenir le contrôle à distance du serveur Arch Linux. Comme vous le savez probablement, OpenSSH est le principal candidat pour ce travail, alors installez-le, démarrez le démon SSH et activez-le à l'échelle du système.

sudo pacman -Syu
sudo pacman –S openssh

sudo systemctl start sshd
sudo systemctl status sshd
sudo systemctl enable sshd

Il est maintenant temps de procéder à l'installation de LEMP. Étant donné que ce didacticiel se veut un guide complet, je vais diviser l'installation de la pile LEMP en petits morceaux, étape par étape.

8. Installez d'abord le Serveur Web Nginx, puis démarrez-le et vérifiez son état en exécutant les commandes suivantes.

sudo pacman -S nginx
sudo systemctl start nginx
sudo systemctl status nginx

9. Le prochain service à installer est la base de données MySQL. Exécutez la commande suivante pour installer le serveur de base de données MySQL et choisissez le moteur MariaDB, puis démarrez et vérifiez l'état du démon.

sudo pacman -S mysql
sudo systemctl start mysqld
sudo systemctl status mysqld

10. L'étape suivante consiste à fournir un environnement hautement sécurisé pour les bases de données MySQL en fournissant un mot de passe pour le compte root MySQL, en supprimant le compte utilisateur anonyme, en supprimant la base de données de test et les comptes root accessibles depuis l'extérieur de l'hôte local. Exécutez la commande suivante pour améliorer la sécurité MySQL, appuyez sur [Entrée] pour le mot de passe actuel du compte root, puis répondez Oui à toutes les questions (configurez également le mot de passe de votre compte root).

sudo mysql_secure_installation

Remarque : Ne confondez en aucun cas le compte root MySQL avec le compte root du système Linux – ce sont deux choses différentes – pas si différentes mais elles fonctionnent à des niveaux différents.

Pour vérifier la connexion de sécurité MySQL à la base de données à l'aide de la syntaxe de commande mysql -u root -p, fournissez votre mot de passe root, puis quittez la base de données avec la commande exit;.

mysql -u root -p

11. Il est maintenant temps d'installer le langage de script PHP côté serveur pour pouvoir développer et exécuter des applications Web dynamiques complexes, et pas seulement servir du HTML/CSScode.

Parce que nous utilisons Nginx comme serveur Web, nous devons installer un module soutenu par PHP-FPM pour communiquer via Fast Common Gateway et modifier le contenu dynamique généré. par des scripts PHP.

Émettez la ligne de commande suivante pour installer le service PHP-FPM, puis démarrez le démon et vérifiez l'état.

sudo pacman –S php php-fpm
sudo systemctl start php-fpm
sudo systemctl status php-fpm

Pour répertorier tous les modules PHP disponibles, exécutez les commandes suivantes.

sudo pacman –S php[TAB]
sudo pacman –Ss | grep php

12. L'une des dernières étapes consiste à installer l'interface Web PhpMyAdmin pour la base de données MySQL. Exécutez la commande suivante pour installer PhpMyAdmin avec son module PHP nécessaire, puis créez un lien symbolique pour le chemin système PhpMyaAdmin vers le chemin racine par défaut de Nginx.

pacman -S phpmyadmin php-mcrypt
sudo ln -s /usr/share/webapps/phpMyAdmin   /usr/share/nginx/html

13. Configurez ensuite le fichier php.ini pour inclure les extensions nécessaires à l'application PhpMyAdmin.

sudo nano /etc/php/php.ini

Localisez avec les touches [CTRL+W] et décommentez (supprimez ; en début de ligne) les lignes suivantes.

extension=mysqli.so
extension=mysql.so
extension=mcrypt.so
mysqli.allow_local_infile = On

Sur le même fichier, localisez et modifiez la directive open_basedir pour qu'elle ressemble aux répertoires inclus suivants.

open_basedir= /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/

14. L'étape suivante consiste à activer PHP-FPM FastCGI sur la directive Nginx localhost. Exécutez la commande suivante pour sauvegarder la configuration du fichier du serveur Web nginx.conf, puis remplacez-la par le contenu suivant.

sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo nano /etc/nginx/nginx.conf

Ajoutez tout le contenu suivant sur nginx.conf.

#user html;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    gzip  on;

    server {
        listen       80;
        server_name  localhost;
            root   /usr/share/nginx/html;
        charset koi8-r;
        location / {
        index  index.php index.html index.htm;
                                autoindex on;
                                autoindex_exact_size off;
                                autoindex_localtime on;
        }

                                location /phpmyadmin {
        rewrite ^/* /phpMyAdmin last;
    }

 error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

        location ~ /\.ht {
            deny  all;
        }
    }         
}

15. Une fois toutes les configurations de fichiers effectuées, il vous suffit de redémarrer les services Nginx et PHP-FPM et de pointer votre navigateur vers http://localhost/phpmyadmin URL du nœud local ou http://arch_IP/phpmyadmin depuis un autre ordinateur.

sudo systemctl restart php-fpm
sudo systemctl restart nginx

16. Si tout fonctionne comme prévu, la dernière étape consiste à activer LEMP à l'échelle du système avec les commandes suivantes.

sudo systemctl enable php-fpm
sudo systemctl enable nginx
sudo systemctl enable mysqld

Félicitations ! Vous avez installé et configuré LEMP sur Arch Linux et vous disposez désormais d'une interface dynamique complète pour démarrer et développer des applications Web.

Bien que Arch Linux ne soit pas le système le mieux adapté pour fonctionner sur des serveurs de production en raison de son modèle de version continue orienté vers la communauté, il peut être une source très rapide et fiable pour les petits environnements de production non critiques.