Installation de LEMP (Linux, Nginx, MySQL / MARIADB, PHP / PHP-FPM et PHPMYADMIN) dans Gentoo Linux

Installation de LEMP (Linux, Nginx, MySQL / MARIADB, PHP / PHP-FPM et PHPMYADMIN) dans Gentoo Linux

Gentoo est l'une des distributions Linux la plus rapide en raison de sa construction à partir de l'orientation des sources et fournit par son programme de gestion des logiciels - Portage - Certains outils nécessaires pour créer une plate-forme de développeur Web complète qui agit et fonctionne très rapidement et, également, a un degré élevé de personnalisation.

Installez Nginx dans Gentoo Linux

Ce sujet vous mènera à travers un processus d'installation étape par étape pour créer une plate-forme d'environnement Web complète avec Lemp (Linux Nginx, MySQL / MARIADB, PHP-FPM / PHPMYADMIN), et avec l'aide sur Utiliser des drapeaux Fourni par Portage Package Management, qui propose un ensemble de fonctionnalités de package sur le processus de compilation - modules ou paramètres nécessaires à une plate-forme Web, modifiera fortement les configurations du serveur.

Exigences

  1. Installation de Gentoo avec un profil endurcis pour un serveur orienté Internet - Gente d'installation de Gentoo.
  2. Réseau configuré avec une adresse IP statique.

Étape 1: Installez le serveur Web Nginx

1. Avant d'essayer de procéder à l'installation de Nginx, assurez-vous que votre NIC a été configurée avec une adresse IP statique et assurez-vous que les sources de portage et votre système sont à jour.

$ sudo su - # émerge - sync # émerge - update --ep-wep --with-bdeps = y @world
Mettre à jour Gentoo Linux

2. Une fois les finitions du processus de mise à jour, procédez avec l'installation de Nginx en choisissant les paramètres et modules préférés en faisant écho Nginx utilise des drapeaux à Portage faire.confli déposer. Première liste des modules d'installation par défaut de nginx en exécutant la commande suivante.

# émerge -pv nginx

Pour des informations détaillées sur les modules (utilisez des drapeaux pour les packages) Utilisez equery commande.

# equery utilise nginx
Listez tous les modules de drapeau

Puis installez nginx avec la commande suivante.

# émerge --ask nginx
Installez le serveur Web Nginx

Si vous avez besoin de modules supplémentaires (webdav, sancyindex, geoip, etc.) en plus de ceux par défaut, avec lesquels Nginx se compilera, ajoutez-les tous sur une seule ligne sur Portage faire.confli déposer avec Nginx_modules_http directive, puis recompile nginx avec de nouveaux modules.

# echo 'nginx_modules_http = "dav auth_pam sancyindex geoip fastcgi uwsgi gzip rewrite"' >> / etc / portage / make.conf # émerge --ask nginx
Compiler nginx pour les nouveaux modules

3. Une fois Portage terminé Nginx émergeant, démarrez le démon HTTP et vérifiez-le en dirigeant votre navigateur vers http: // localhost.

Vérifiez le serveur Web Nginx

Étape 2: Installez PHP

4. Pour utiliser le langage de programmation Web dynamique PHP avec Nginx Server, installez PHP-FASTCGI Gestionnaire de processus (FPM) en ajoutant FPM et d'autres extensions de PHP importantes sur les indicateurs d'utilisation du portage et assurez-vous de supprimer l'extension Apache.

# émerge -pv php
Installer PHP dans Gentoo
# equery utilise PHP
Sélection d'extension PHP
# Echo "Dev-Lang / PHP FPM CGI CURL GD IMAP MYSQL MYSQLI PDO ZIP JSON XCACHE APC ZLIB ZIP TRUETYPE -APACHE2" >> / ETC / Portage / Package.Utiliser # Emerge --ask php

5. Avant de commencer PHP-FPM, certaines modifications doivent être appliquées au fichier de configuration du service. Ouvrir php-fpm Fichier de configuration et apporter les modifications suivantes.

# nano / etc / php / fpm-php5.5 / php-fpm.confli

Trouvez et décommentez les directives suivantes pour ressembler à ceci.

error_log = / var / log / php-fpm.LOG ÉCOUTER = 127.0.0.1: 9000 ## Ici, vous pouvez utiliser n'importe quelle prise HTTP (combinaison IP-Port) que vous voulez ## PM.start_servers = 20

6. Après le fichier de configuration PHP-FPM, il est modifié, modifiez les autorisations de fichiers journaux PHP-FPM et démarrez le service.

# CHMOD 755 / VAR / LOG / PHP-FPM.Journal # / etc / init.d / php-fpm start

Même si le service PHP-FPM est démarré, Nginx ne peut pas communiquer avec PHP Gateway, donc certaines modifications doivent être effectuées sur les fichiers de configuration Nginx.

Étape 3: Modifier les configurations de Nginx

7. Le fichier de configuration du modèle par défaut de Nginx fournit simplement une prise HTTP de base pour localhost uniquement. Pour changer ce comportement et activer les hôtes virtuels, ouvrez nginx.confli Fichier situé sur / etc / nginx / Chemin et effectuer les configurations suivantes.

# nano / etc / nginx / nginx.confli

Localiser le premier serveur bloc qui correspond à localhost et écoute 127.0.0.1 Adresse IP et recommandez toutes ses déclarations à ressembler dans la capture d'écran ci-dessous.

Désactiver la configuration HTTP de base

Ne fermez pas encore le fichier et passez en haut et ajoutez l'instruction suivante avant la dernière clôture des accolades bouclées "".

Include / etc / nginx / sites compatible / *.conf;
Activer l'hôte virtuel Nginx

8. Création suivante compatible avec les sites et les sites disponibles (pour les hôtes virtuels inutilisés) Répertoires Nginx et fichiers de configuration pour localhost sur les protocoles HTTP et HTTPS.

# mkdir / etc / nginx / sites disponible # mkdir / etc / nginx / sites compatible

Créez la configuration de fichier suivante pour localhost.

# nano / etc / nginx / sites-disponible / localhost.confli

Ajouter le contenu du fichier suivant.

Server écouter 80; server_name localhost; access_log / var / log / nginx / localhost_access_log main; error_log / var / log / nginx / localhost_error_log info; root / var / www / localhost / htdocs; Emplacement / Index Index.index html.index HTM.PHP; AutoIndex sur; autoIndex_Exact_Size OFF; autoIndex_Localtime sur;  Emplacement ~ \.php $ # test pour les scripts inexistants ou lancez une erreur 404 # sans cette ligne, Nginx enverra aveuglément une demande se terminant par .php à php-fpm try_files $ uri = 404; inclure / etc / nginx / fastcgi.conf; fastcgi_pass 127.0.0.1: 9000; ## Assurez-vous que le socket correspond au fichier PHP-FPM CFF
Créer une configuration de l'hôte virtuel Nginx

Pour localhost avec SSL, créez le fichier de configuration suivant.

# nano / etc / nginx / sites-disponible / localhost-ssl.confli

Ajouter le contenu du fichier suivant.

Server écouter 443 SSL; server_name localhost; ssl on; ssl_certificate / etc / ssl / nginx / nginx.pem; ssl_certificate_key / etc / ssl / nginx / nginx.clé; Access_log / var / log / nginx / localhost.ssl_access_log main; error_log / var / log / nginx / localhost.ssl_error_log info; root / var / www / localhost / htdocs; Emplacement / Index Index.index html.index HTM.PHP; AutoIndex sur; autoIndex_Exact_Size OFF; autoIndex_Localtime sur;  Emplacement ~ \.php $ # test pour les scripts inexistants ou lancez une erreur 404 # sans cette ligne, Nginx enverra aveuglément une demande se terminant par .php à php-fpm try_files $ uri = 404; inclure / etc / nginx / fastcgi.conf; fastcgi_pass 127.0.0.1: 9000; 
Créer un hôte virtuel SSL Nginx

9. Il est maintenant temps de créer deux scripts sur un chemin exécutable système ($ Path Shell Variable), qui agit comme des commandes pour activer ou désactiver les hôtes virtuels Nginx.

Créer le premier script bash nommé n2ensite qui permettra des fichiers de configuration des hôtes virtuels en créant un lien symbolique entre les hôtes spécifiés de les sites disponibles pour compatible avec les sites.

# nano / usr / local / bin / n2eniste

Ajouter le contenu du fichier suivant.

#!/ bin / bash si test -d / etc / nginx / sites-disponible && test -d / etc / nginx / sites compatible; Puis écho "----------------------------------------------- "Else mkdir / etc / nginx / sites-disponible mkdir / etc / nginx / sites compatible fi.Avo).confied = / etc / nginx / sites-compatible / site = "ls / etc / nginx / sites-disponible /" if ["$ #" != "1"]; puis écho "Utiliser le script: n2ensite virtual_site" echo -e "\ hosts virtuels navalables: \ n $ site" exit 0 else if test -e $ disponible; alors sudo ln -s $ disponible $ activé else echo -e "$ disponible hôte virtuel n'existe pas! Veuillez en créer un!\ n $ Site "Exit 0 fi si test -e $ activé / 1 $.conf; Puis écho "Succès!! Redémarrez maintenant le serveur Nginx: sudo / etc / init.d / nginx redémarrer "else echo -e" hôte virtuel $ disponible n'existe pas!\ nPlease Voir les hôtes virtuels disponibles: \ n $ Site "Exit 0 fi fi
Créer le script d'activation de l'hôte virtuel

dix. Créez ensuite le deuxième script appelé n2dissite, qui supprimera les hôtes virtuels actifs spécifiés de compatible avec les sites Chemin Nginx avec le contenu suivant.

# nano / usr / local / bin / n2dissite

Ajouter le contenu suivant.

#!/ bin / bash avail = / etc / nginx / sites compatible / 1 $.confied = / etc / nginx / sites compatible site = "ls / etc / nginx / sites-disponible /" if ["$ #" != "1"]; puis écho "Utiliser le script: n2dissite virtual_site" echo -e "\ hosts virtuels navalables: \ n $ site" exit 0 else if test -e $ disponible; alors sudo rm $ vase else echo -e "$ great virtuel hôte n'existe pas! Sortant!"Exit 0 fi si test -e $ activé / 1 $.conf; puis écho à "Erreur!! Impossible de supprimer un hôte virtuel $ disponible!Le succès "echo -e"! $ la disponibilité a été supprimée!\ nplease redémarrer nginx: sudo / etc / init.d / nginx redémarrer "exit 0 fi fi
Créer un script de désactivation de l'hôte virtuel

11. Après avoir terminé l'édition de scripts de bash, appelez les autorisations d'exécution et activez les hôtes virtuels locaux - utilisez le nom du fichier de configuration de l'hôte virtuel sans .confli Extension, puis redémarrez les services NGINX et PHP-FPM pour appliquer les modifications.

# chmod + x / usr / local / bin / n2dissite # chmod + x / usr / local / bin / n2ensite # n2ensite localhost # n2ensite localhost-ssl # service nginx redémarrage # service php-fpm redémarrage
Redémarrez Nginx et PHP-FPM

12. Pour tester les configurations, créer un fichier d'informations PHP sur le chemin racine par défaut localhost pour les fichiers Web (/ var / www / localhost / htdocs) et rediriger votre navigateur sur https: // localhost / info.php ou http: // localhost / info.php.

Echo "" / var / www / localhost / htdocs / info.php
Vérifiez la configuration de PHP

Utilisation des fichiers de configuration des hôtes virtuels locaux comme modèles et nginx n2enmod et n2dismod Vous pouvez facilement ajouter autant de sites Web que vous le souhaitez, mais assurez-vous que vous avez des pointeurs DNS valides pour un serveur Web orienté Internet ou utilisez des entrées localement sur le fichier d'hôtes système.

Étape 4: Installez MySQL / MARIADB + PHPMYADMIN

Pour installer la base de données MySQL et l'interface Web PhpMyAdmin pour MySQL, utilisez la même procédure présentée sur l'installation de la lampe sur Gentoo.

13. En retour, si vous souhaitez utiliser MARIADB, remplacement de MySQL, utilisez les commandes suivantes pour obtenir Utiliser des drapeaux et l'installer.

# émerge -pv mariaDB # émerge --ask mariadb
Installer la base de données MariAdb

Dans le cas où vous obtenez un conflit de colis avec MySQL, ajoutez les lignes suivantes à Portage emballer.accepter.mots clés.

# echo “= dev-db / mariaDB-5.5.37-R1 ~ AMD64 ”>> / etc / Portage / Package.accepter.Mots-clés # echo “= virtual / mysql-5.5 ~ amd64 ”>> / etc / portage / package.accepter.Mots-clés # émerge --ask mariaDB

14. Une fois la base de données MySQL mysql_secure_installation (Modifier le mot de passe racine, désactiver la connexion racine en dehors de la localhost, supprimer la base de données anonyme utilisateur / test).

# Service mysql start # mysql_secure_installation

15. Entrez la base de données MySQL en utilisant, mysql -u root -p commande de tester sa fonctionnalité et de le laisser avec sortie commande.

# mysql -u root -p mariaDB> Afficher les bases de données; Mariadb> sortie;
Vérifiez la connectivité MySQL

16. Si vous n'êtes pas trop bon avec la ligne de commande MySQL. Installez Frontend Web PhpMyAdmin en exécutant les commandes suivantes.

# Emerge -Pv Dev-DB / phpMyAdmin # Echo «Dev-DB / PhpMyAdmin Configuration Vhosts» >> / etc / Portage / Package.Utilisez # Emerge --ask Dev-DB / PhpMyAdmin
Installer phpmyadmin

17. Une fois PHPMyAdmin Terminé l'installation, créez un fichier de configuration basé sur un exemple de fichier de configuration, modifiez Blowfish_Secret Phrase de passe avec une chaîne aléatoire, puis créez un lien symbolique à partir de / usr / share / webapps / phpmyadmin / phpmyadmin_version_number / htdocs / Aux hôtes virtuels Document Root Path, vous souhaitez accéder à l'interface Web PhpMyAdmin.

# cd / usr / share / webapps / phpmyadmin / 4.2.2 / htdocs / # CP Config.goûter.Inc.PHP Config.Inc.php # nano config.Inc.php
Configurer phpmyadmin
# ln -s / usr / share / webapps / phpmyadmin / 4.2.2 / htdocs / / var / www / localhost / htdocs / phpmyadmin
Créer un lien symbolique phpmyadmin

18. Pour accéder à la base de données MySQL via l'interface Web PhpMyAdmin, ouvrez un navigateur et utilisez l'adresse URL suivante https: // localhost / phpmyadmin.

Vérifiez la connexion PhpMyAdmin

19. La dernière étape consiste à permettre aux services à l'échelle du système, de démarrer automatiquement après le redémarrage.

# rc-update Ajouter nginx par défaut # rc-update Ajouter php-fpm par défaut # rc-update add mysql par défaut
Activer le système de services à l'échelle

Maintenant, nous avons une configuration d'environnement minimale pour l'hébergement Web, et si vous n'utilisez que des pages générées HTML, JavaScript et PHP et vous n'avez pas besoin de sites Web SSL, la configuration ci-dessus devrait être satisfaisante pour vous.