GNU/Linux >> Tutoriels Linux >  >> OpenSuse

Comment installer Nginx, PHP et MySQL (pile LEMP) sur OpenSUSE Leap 42.1

LEMP ou Linux, Engine-x, MySQL et PHP est un ensemble de logiciels installés sur le système d'exploitation Linux pour que vos applications Web basées sur PHP soient opérationnelles sur le serveur Web rapide Nginx. La pile LEMP fournit une base rapide et fiable pour l'hébergement d'applications Web. LEMP est une collection de logiciels open source qui dispose d'un ensemble de documentation complet afin que vous puissiez facilement en savoir plus sur les différentes applications et la façon dont elles s'intègrent.

Dans ce tutoriel, je vais vous montrer comment installer Nginx, MariaDB et PHP-FPM sur openSUSE leap 42.1. Ensuite, je vais configurer le pare-feu OpenSUSE avec SuSEfirewall2 pour autoriser l'accès au serveur Web Nginx et vous montrer comment vous pouvez ajouter une nouvelle configuration d'hôte virtuel sur le serveur Web Nginx.

Enfin, nous allons installer phpMyAdmin en tant qu'outil d'administration de base de données facile à utiliser et le sécuriser en modifiant le répertoire Web et en activant l'authentification HTTP pour le répertoire phpMyAdmin.

Prérequis

  • OpenSUSE Leap 42.1.
  • Privilèges racine.
  • Comprendre la commande zypper.

Étape 1 - Installer et configurer SuSEfirewall2

SuSEfirewall2 est un script qui génère des règles iptables basées sur le fichier de configuration "/etc/sysconfig/SuSEfirewall2". Nous allons l'installer et le configurer pour empêcher les attaques réseau sur le port du serveur.

Installez SuSEfirewall2 avec zypper :

zypper dans SuSEfirewall2

Lorsque l'installation est terminée, nous devons ouvrir certains ports pour les applications Web et SSH. Nous allons ouvrir le port 22 pour le service ssh et les ports 80 et 443 pour http et https. Allez dans le répertoire "/etc/sysconfig/" et éditez le fichier "SuSEfirewall2" :

cd /etc/sysconfig/
vim SuSEfirewall2

À la ligne 253, ajoutez les numéros de port des services, séparés par un espace :

FW_SERVICES_EXT_TCP="22 80 443"

Enregistrez le fichier et quittez.

Redémarrez SuSEfirewall2 et le service SSH, puis testez la configuration du port en vous connectant avec telnet au serveur.

Redémarrez SuSEfirewall2 et le service SSH :

/sbin/rcSuSEfirewall2 restart
systemctl restart sshd

Test de la connexion ssh avec telnet sur le port 22 :

telnet 192.168.1.101 22

Étape 2 - Installer et configurer Nginx

Nginx ou moteur x est un serveur HTTP et proxy hautes performances avec une faible consommation de mémoire. Il est utilisé par des sites Web à grande échelle comme Netflix, Pinterest, CloudFlare, Github, etc. Nginx a une syntaxe de configuration facile à apprendre et peut également agir comme un équilibreur de charge avec des vérifications de l'état et un proxy inverse avec des fonctionnalités de mise en cache.

Dans cette étape, nous allons installer nginx et l'ajouter pour démarrer au démarrage. Installez-le avec la commande "zypper in":

zypper dans nginx

Démarrez nginx et activez-le au démarrage :

systemctl démarrer nginx
systemctl activer nginx

Nginx est maintenant démarré, mais si vous essayez d'y accéder via le navigateur Web, vous obtiendrez une erreur interdite 403. Cette erreur se produit car il n'y a pas de document d'index standard dans le dossier racine Web. Pour résoudre ce problème, créez un nouvel index html dans le répertoire web racine "/srv/www/htdocs". Allez dans le répertoire et créez le fichier index.html :

cd /srv/www/htdocs/
echo "

Voici Nginx OpenSUSE Leap 42.1

"> index.html

Ouvrez votre navigateur Web et tapez l'adresse IP de votre serveur et vous obtiendrez la page d'index :

http://192.168.1.101/

Étape 3 - Installer et configurer MariaDB

MariaDB est un RDBMS (système de gestion de base de données relationnelle) open source dérivé de MySQL sous la licence GNU GPL. Dans ce didacticiel, nous allons installer MariaDB et configurer le mot de passe root pour le shell MariaDB.

Installez MariaDB avec la commande zypper :

zypper dans mariadb mariadb-client

Démarrez MariaDB/MySQL et ajoutez-le au démarrage avec la commande systemctl ci-dessous :

systemctl démarrer mysql
systemctl activer mysql

Ensuite, configurez le mot de passe administrateur pour MariaDBb/MySQL avec la commande mysqladmin. Une autre option que vous pouvez utiliser à cette fin est "mysql_secure_installation". Dans cette étape, je vais utiliser mysqladmin :

/usr/bin/mysqladmin -u mot de passe root 'aqwe123'

Remarque :

"aqwe123" est le nouveau mot de passe pour MariaDB/MySQL.

Connectez-vous ensuite au shell mysql avec l'utilisateur root et le mot de passe aqwe123 :

mysql -u root -p
TYPE PASSWORD 'aqwe123'

MariaDB/MySQL est maintenant installé et configuré avec notre nouveau mot de passe.

Étape 4 - Installer et configurer PHP-FPM

PHP-FPM ou FastCGI Process Manager est une alternative à l'ancien PHP FastCGI avec des fonctionnalités supplémentaires et des améliorations de vitesse. PHP-FPM est bien adapté aux petits et grands sites basés sur le langage de programmation PHP.

Dans cette étape, nous allons installer php5-fpm avec quelques extensions supplémentaires requises par phpMyAdmin. Installez php5-fom et les extensions avec zypper :

zypper dans php5 php5-mysql php5-fpm php5-gd php5-mbstring

Une fois l'installation terminée, allez dans le répertoire php5-fpm et copiez le fichier de configuration :

cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf

Modifiez la configuration avec la commande vim :

vim php-fpm.conf

Décommentez la ligne 32 pour activer le journal php-fpm, le préfixe par défaut est /var et si vous avez un problème avec php5-fpm, vous pouvez vérifier le fichier journal "/var/log/php-fpm.log".

error_log =log/php-fpm.log

À la ligne 148, nous allons configurer le propriétaire du processus nginx pour l'utilisateur Nginx. Remplacez l'utilisateur et le groupe de processus par nginx :

utilisateur =nginx
groupe =nginx

Ligne 159 :configurez php-fpm pour qu'il s'exécute sous un fichier de socket, et non sous le port. Modifiez cette ligne comme ceci :

écouter =/var/run/php-fpm.sock

Et à la ligne 170, modifiez les autorisations pour le socket unix en utilisateur et groupe nginx avec le mode 0660.

listen.owner =nginx
listen.group =nginx
listen.mode =0660

Enregistrez le fichier et quittez l'éditeur.

Ensuite, allez dans le répertoire PHP cli et éditez le fichier php.ini avec vim :

cd /etc/php5/cli/
vim php.ini

Modifiez la valeur de cgi.fix_pathinfo à zéro pour des raisons de sécurité. ligne 178 :

cgi.fix_pathinfo=0

enregistrer et quitter.

Copiez le php.ini dans le répertoire conf.d :

cp php.ini /etc/php5/conf.d/

La configuration PHP-FPM est faite à ce stade, mais nous devons encore configurer Nginx. Nous devons configurer Nginx pour qu'il fonctionne avec php-fpm.

Allez dans le répertoire de configuration nginx et faites une sauvegarde du fichier de configuration avec la commande cp :

cd /etc/nginx/
cp nginx.conf nginx.conf.backup

Modifiez nginx.conf avec vim :

vim nginx.conf

Ajoutez index.php à la ligne 48 :

index index.php index.html index.htm;

Ajoutez la nouvelle section de configuration php à la ligne 68, c'est la configuration pour gérer les demandes de fichiers .php.

       emplacement ~ \.php$ {
               root /srv/www/htdocs ;
                try_files $uri =404 ;
                inclure /etc/nginx/fastcgi_params ;
          :/var/run/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ;
       }

Enregistrez le fichier et quittez.

Ensuite, testez la syntaxe du fichier de configuration nginx pour vous assurer qu'il n'y a pas d'erreurs. Démarrez ensuite le démon php-fpm et redémarrez Nginx :

nginx -t
systemctl start php-fpm
systemctl restart nginx

Pour nous assurer que php-fpm et nginx fonctionnent correctement, nous allons ajouter un nouveau fichier de test php. Allez dans le répertoire DocumentRoot et créez un fichier phpinfo avec le nom info.php :

cd /srv/www/htdocs/
echo ""> info.php

Ouvrez votre navigateur Web, saisissez l'adresse IP de votre serveur :

http://192.168.1.101/info.php

Nginx et php-fpm fonctionnent maintenant.

Étape 5 - Configurer un hôte virtuel Nginx

Dans cette étape, je vais vous montrer comment ajouter une configuration d'hôte virtuel pour un site Web. Nous allons configurer un nouveau domaine "www.example.com" et le répertoire webroot dans "/srv/www/example/". Veuillez remplacer example et example.com par votre propre nom de domaine.

Répertoire GNginx nginx et créez un nouveau répertoire pour la configuration de l'hôte virtuel.

cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/

Ensuite, créez un nouveau fichier example.conf pour le nom de domaine "example.com" virtualhost.

exemple vim.conf

collez la configuration de l'hôte virtuel ci-dessous :

server {
    nom_serveur example.com ;
    return 301 $scheme://www.example.com$request_uri ;
}

server {
    écouter 80 ;

    root /srv/www/example;
    index index.php index.html index.htm;

    location / {
                fastcgi_pass unix :/var/run/php-fpm.sock ;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ;
       }


}

Enregistrez le fichier et quittez.

Créez maintenant le répertoire du site "example.com" dans le répertoire /srv/www/, et créez un nouveau fichier d'index.

mkdir -p /srv/www/example/
cd /srv/www/example/
echo "

Voici le site www.example.com.

"> index .html
echo ""> info.php

Ouvrez maintenant votre navigateur Web et visitez le domaine :

exemple.com

Vous allez être redirigé vers le domaine www, et accédez maintenant au fichier php :

http://www.exemple.com/info.php

Étape 6 - Installer et configurer phpMyAdmin

PhpMyAdmin est une application basée sur PHP pour gérer les bases de données MySQL ou MariaDB à partir d'un navigateur Web. Dans cette étape, je vais configurer phpMyAdmin pour qu'il s'exécute sous php-fpm, puis sécuriser PHPMyAdmin en restreignant l'accès à la page de connexion de phpMyAdmin.

Installez phpMyAdmin avec la commande zypper :

zypper dans phpMyAdmin

La commande installera tous les packages nécessaires à phpMyAdmin, y compris apache2-utils requis pour créer le fichier de mot de passe.

Nous avons maintenant phpMyAdmin installé sur le système. Ensuite, nous allons créer un nouveau fichier htpasswd avec la commande htpasswd.

créer le fichier de mot de passe htpasswd :

htpasswd -c /etc/nginx/htpasswd megumi
TAPEZ VOTRE MOT DE PASSE pour l'utilisateur megumi

Ensuite, nous devons configurer Nginx pour utiliser l'authentification de base HTTP pour le répertoire phpmyadmin. Nous restreindrons l'accès à la page de connexion de phpMyAdmin avec auth_basic, et seuls les utilisateurs qui se trouvent dans le fichier "htpasswd" peuvent se connecter à phpMyAdmin.

Accédez au répertoire de configuration de Nginx et modifiez le fichier nginx.conf :

cd /etc/nginx/
vim nginx.conf

Définissez le répertoire racine Web à l'intérieur de la section serveur en ajoutant une nouvelle ligne sous la ligne 40 (nom_serveur) :

        nom_serveur localhost ;
        racine /srv/www/htdocs ; #configuration de nouvelle ligne

Ajoutez ensuite la configuration phpMyAdmin pour nginx à la ligne 60 :

    emplacement ~ ^/phpMyAdmin/.*\.php$ {
        auth_basic "Accès restreint" ;
        auth_basic_user_file  /etc/nginx/htpasswd ;
        fastcgi_pass unix :/var/run/ php-fpm.sock ;
        fastcgi_index index.php ;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name ;
        inclure   fastcgi_params ;
    }

Enregistrez le fichier et quittez l'éditeur.

Testez la configuration de nginx et redémarrez nginx :

nginx -t
systemctl redémarre nginx

Ensuite, ouvrez votre navigateur Web et visitez l'URL phpMyAdmin, il vous sera demandé un nom d'utilisateur et un mot de passe pour la page de connexion.

http://192.168.1.101/phpMyAdmin/

Connectez-vous ensuite avec votre nom d'utilisateur et votre mot de passe MySQL.

phpMyAdmin a été installé avec succès et seul l'utilisateur du htpasswd peut se connecter.


OpenSuse
  1. Comment installer Mysql Server 8 sur OpenSUSE Leap 15.3

  2. Comment installer et configurer PHP et Apache (pile LAMP) sur OpenSUSE Leap 15.3

  3. Comment installer et configurer Nginx en tant que proxy OpenSUSE Leap 15.3

  4. Comment installer et configurer PHP et Nginx (LEMP) sur OpenSUSE Leap 15.3

  5. Comment installer la pile LEMP Nginx, MySQL, PHP sur Debian 11

Comment installer la pile LEMP sur Ubuntu 20.04

Comment installer Nginx, MySQL et PHP (LEMP) sur Ubuntu 20.04

Comment installer la pile LEMP (Nginx, MariaDB et PHP) sur AlmaLinux 8

Comment installer PHP 8.0 sur openSUSE 15 Leap

Comment installer Nginx, MySQL et PHP (LEMP) sur un serveur Ubuntu 15.04

Comment installer la pile Nginx, MySQL, PHP (LEMP) sur un serveur cloud Debian 8.3