LEMP (Linux, Nginx, MySQL, PHP7) Déploiement d'images Docker Stack

LEMP (Linux, Nginx, MySQL, PHP7) Déploiement d'images Docker Stack

À propos

Le docker de construction automatisé Lemp image linuxconfig / lemp-php7 peut être utilisé comme test et aussi comme environnement de production pour une application dynamique PHP. Il comprend Debian GNU / Linux, un serveur Web Nginx léger et encore puissant, un système de gestion de base de données relationnel MySQL et un langage de script PHP.

Au moment de la rédaction du présent. À partir de cette raison, PHP 7 a été compilé à partir du code source lors de la construction d'image Docker en utilisant compiler-php-debian script situé à https: // github.com / linuxconfig / compile-php-debian.

De plus, tous les modules PHP tiers ne sont pas actuellement pris en charge sur PHP 7.

Déploiement

La section suivante décrit le déploiement de linuxconfig / lemp-php7 docker sur votre hôte docker. Laissez commencer par créer un exemple de site Web PHP avec une poignée de connexion MySQL. Ajouter également phpinfo (); dans le mix pour afficher la page d'informations PHP actuelle:

 

Enregistrer le code ci-dessus dans indice.php fichier et dans un nouveau html annuaire. Alternativement,html Le répertoire peut contenir votre application PHP souhaitée:

$ mkdir html $ vi html / index.php $ ls html / index.php 

À ce stade, nous sommes prêts à déployer linuxconfig / lemp-php7 Image Docker:

# docker run --name = lemp -dp -v $ pwd / html: / var / www / html linuxconfig / lemp-php7 8306ab0e404e5e5ce4f17731f88a610f7f8bc939289c0746b875716355df0b1aaaa 

En exécutant la commande ci-dessus, nous avons créé et lancé un nouveau conteneur Docker lemp. En même temps, nous avons également monté notre répertoire de développement de sites Web html Comme le répertoire racine de Nginx. Les ports MySQL et Nginx sont désormais liés au port aléatoire d'un système hôte.

Les deux ports locaux peuvent désormais être utilisés pour accéder aux services MySQL et Nginx:

# Docker Port Lemp 3306 / TCP -> 0.0.0.0: 32772 80 / TCP -> 0.0.0.0: 32773 

Accès nginx

À ce stade $ sudo docker port lemp commande. Utilisez la ligne de commande ou votre navigateur pour naviguer vers http: // localhost: 32773 URL:

# curl -i http: // localhost: 32773 http / 1.1 200 OK Server: Nginx / 1.6.2 Date: Sun, 01 janvier 2017 22:51:58 GMT Content-Type: Text / HTML; Charset = UTF-8 Encodage de transfert: Connexion Chunked: Keep-Alive X-alimented-By: PHP / 7.1.0 Succès: une connexion appropriée à MySQL a été établie! Informations sur l'hôte: 127.0.0.1 via TCP / IP 

Accès mysql

La base de données MySQL est accessible via administrer Utilisateur et mot de passe par défaut passer. Comme précédemment, nous devons d'abord obtenir le numéro de port du système hôte lié à la base de données MySQL dans une image Docker en utilisant $ sudo docker port lemp commande. Ensuite, nous pouvons nous connecter à la base de données:

$ mysql -uadmin -ppass -h 127.0.0.1 -P32772 Bienvenue dans le moniteur MySQL. Les commandes se terminent avec; ou \ g. Votre ID de connexion MySQL est 15 Version du serveur: 5.5.53-0 + Deb8u1 (Debian) Copyright (C) 2000, 2016, Oracle et / ou ses affiliés. Tous les droits sont réservés. Oracle est une marque déposée d'Oracle Corporation et / ou de ses affiliés. D'autres noms peuvent être les marques de leurs propriétaires respectifs. Type 'help;' ou '\ h' pour obtenir de l'aide. Tapez '\ c' pour effacer l'instruction de saisie actuelle. mysql> 

Php 7

Comme déjà mentionné ci-dessus, PHP 7 a été compilé à partir d'une branche PHP 7 à bord saignant. L'installation entière a été effectuée dans / usr / local / php-version / annuaire. À partir de cette raison pour accéder à la ligne de commande php Binaire vous l'exécutez avec un chemin complet:

# docker exec -it lemp / usr / local / php-7.1.0 / bac / php -v php 7.1.0 (CLI) (Construit: 1er janvier 2017 21:33:40) (NTS) Copyright (C) 1997-2016 The PHP Group Zend Engine V3.1.0-DEV, Copyright (C) 1998-2016 Zend Technologies avec Zend Opcache V7.1.0, Copyright (C) 1999-2016, par Zend Technologies 

ou inclure / usr / local / php-7.1.0 / bin / Dans le cadre de votre CHEMIN variable environnementale.

Informations Complémentaires

Obtenez une liste des modules PHP 7 activés

# docker exec -it lemp / usr / local / php-7.1.0 / bin / php -m [modules PHP] bcmath bz2 calendrier core ctype curl date dba dom ex exif fileinfo filter ftp gd gettex Sockets Spl Sqlite3 standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zend opcache zip zlib [modules zend] zend opcache 

Accès aux conteneurs

Pendant que votre lemp Le conteneur est en cours d'exécution, il peut être accès par:

$ sudo docker exec -it lemp / bin / bash root @ 8306ab0e404e: / # 

Réinitialiser le mot de passe utilisateur MySQL

La commande ci-dessous définira un nouveau mot de passe 123pour leadministrer utilisateur :

# mysql mysql> Définir le mot de passe pour 'admin' @ '%' = mot de passe ('123'); 

Redémarrer la pile de lemp

$ sudo docker exec lemp superviseur redémarrer 

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Ubuntu 20.04: WordPress avec l'installation de Nginx
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Comment installer la pile LEMP sur Almalinux
  • Installez MySQL sur Ubuntu 20.04 LTS Linux
  • Boucles imbriquées dans les scripts bash
  • Comment installer MySQL sur Almalinux
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • Liste des meilleurs outils Kali Linux pour les tests de pénétration et…