Maison >développement back-end >tutoriel php >Installation du docker de l'environnement de développement local PHP

Installation du docker de l'environnement de développement local PHP

不言
不言original
2018-05-09 10:14:394589parcourir

Cet article présente principalement l'installation docker de l'environnement de développement local PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

environnement de développement local docker php

.

Lu Xun : Les programmeurs qui ne veulent pas créer de produits ne sont pas faciles à vendre

Avant-propos

Quand beaucoup de gens configurent Docker, ils ne comprennent pas la structure des répertoires à l'intérieur, des problèmes de configuration, ce qui entraînera beaucoup de confusion.

Mais, mon garçon, si tu lis cet article, tu as raison. J'utiliserai un langage « court et concis » pour vous conduire rapidement dans la fosse Docker. Il se peut que quelque chose d'écrit dans l'article ne corresponde pas à vos valeurs. Veuillez utiliser votre petit poing pour appuyer sur ctrl+F4. Je suis une personne qui ne supporte pas les réprimandes. Si vous me grondez (est-ce que je vous donnerai une chance de me gronder ? Battez-moi d'abord à mort) (manuel drôle).

Il est fortement recommandé au csdn d'ajouter des expressions emoji.

Texte d'installation de MySQL

L'installation de MySQL est relativement simple

[root@test app]#  docker pull mysql:5.7
[root@test app]#   docker run - -name mysql_server -p 3308:3308 -e MYSQL\_ROOT\_PASSWORD=123456 -d mysql:5.7
命令解释 

# -e 内置环境变量 这里是给ROOT 帐号设置密码
没了。

Cependant, nous devons d'abord installer MySQL, puis installer php car un lien – est requis entre les conteneurs. permettre une communication interactive entre les deux conteneurs. sinon. Héhé, tu sais. Mysql ne peut pas être connecté en php. L'explication de la commande est donnée ci-dessous. .

Texte d'installation de php

1. Travaux de préparation

Étant donné que l'ordinateur du sujet est un système Ubuntu, certaines des commandes de cet article sont unifiées pour Ubuntu en plus de l'installation. , il semble qu'il n'y ait rien d'incompatible avec d'autres systèmes.
installation de Docker,
installation de Windows
linux
mac

1. Environnement Docker
2. image php:7.2.4-fpm (cela doit être basé sur l'environnement. de votre projet ) Image officielle
3. Image officielle de MySql (cela dépend de votre humeur)

(drôle) Certains lecteurs peuvent se demander, pourquoi pas nginx|apache, car cela simplifie votre fonctionnement. Il vous permet de démarrer l'installation plus rapidement et vous permet également d'écrire du code plus rapidement.

Lorsque vous avez téléchargé Docker, démarrez Docker

Installation du docker de lenvironnement de développement local PHP
Lorsque Docker est activé, la version Docker imprime les informations du serveur. S'il n'est pas activé, il ne s'imprimera pas. .
Veuillez activer docker

2. Démarrer

1、[root@test app]# docker pull php:7.2.5-fpm              #docker pull 镜像,从docker镜像中拉取某个镜像 
2、[root@test app]# docker images                          #docker 当前所有的镜像名字 imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/php       7.2.5-fpm           e6970efc6d34        3 days ago          367 MB
3、[root@test app]# docker run -d -p 8080:8080 --link mysql_server:mysql_server -v ~/app:/app -w /app php:7.2.5-fpm php -S 0.0.0.0:8080 -t /app 
命令解释
# -d 后台默认启动
# -p 映射端口8080 映射到本机8080  使用方式 本地端口:容器端口
# -v 挂在目录 ~/app 挂载到容器里面 /app目录 
# -w 工作目录 /app目录 相当于cd (在这里,我们可以不用)
# --link  连接容器    容器名:内部使用的名字  
# php:7.2.5-fpm 镜像名
# php -S 0.0.0.0:8080 -t /app  php自带cli Server  用这个可以免除nginx|apache 安装,指定端口为8080 。
4、[root@test app]# docker ps   #查看正在运行的容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
9354f9338e29        php:7.2.5-fpm       "docker-php-entryp..."   4 minutes ago       Up 4 minutes        0.0.0.0:8080->8080/tcp, 9000/tcp   naughty_fermi

这里我们可以看出,NAMES 下是容器名,当我们没有指定的时候,docker 会自动创建一个容器名。
PORTS 端口,0.0.0.0:8080->8080/tcp 本机8080 映射到容器8080

3. Test :

Nous créons un nouvel index.php dans le répertoire de l'application

<?php 
phpinfo();
Ouvrez 127.0.0.1:8080 et vous verrez le phpinfo familier

4 Installez l'extension

Si vous n'avez pas besoin d'installer l'extension, veuillez consulter la note ! ! !

Nous expliquons ici 2 façons d'installer des extensions

1. Entrez le conteneur pour installer l'extension

1 Vérifiez le nom du conteneur Docker

Nous sommes là Ici nous voyons que le nom du docker est naughty_fermi
[root@test app]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
9354f9338e29        php:7.2.5-fpm       "docker-php-entryp..."   31 minutes ago      Up 31 minutes       0.0.0.0:8080->8080/tcp, 9000/tcp   naughty_fermi
2. Entrez le conteneur


Ensuite nos extensions ont été installées
1.进入容器
[root@test app]# docker exec -i -t naughty_fermi /bin/bash
root@9354f9338e29:/app# 
#这样子,看到我们就进入了正在运行的容器命令解释
# docker exec  进入正在使用的容器
# -i :即使没有附加也保持STDIN 打开 一般和-t合作使用
# -t :分配一个伪终端  一般和-i 合作使用  
# /bin/bash 打开交互式终端终端
2. [root@test app]# docker- 按两下tab 可以看到
docker-php-entrypoint     docker-php-ext-configure  docker-php-ext-enable     docker-php-ext-install    docker-php-source 

#docker 根据一些常用库 已经给我们写好了一些脚本 docker -php  github 地址[github]( 
3.安装扩展 
举例:sockets 
[root@test app]#  docker-php-ext-install sockets 
静静等待他编译安装
[root@test app]# php -m  # 就能够看到sockets库了。
4.退出容器 
退出容器的方法有点特殊,需要ctrl+p  再crtl + q 这样,才能在后台继续挂起

root@9354f9338e29:/app# [root@test app]# 
[root@test app]# 
4.我们需要重启一下我们cli server 
[root@test app]# ps -ef | grep php 
root     11840 11808  0 17:04 ?        00:00:00 php -S 0.0.0.0:8080 -t /app
root     14923  9900  0 17:54 pts/1    00:00:00 grep --color=auto php

找到我们的 php cli-server pid 为11840 docker 里面的这些进程,是在本机里面能够看到的。这里是解释 [解释](http://dockone.io/question/529)
我们回到了我们的本机上。
[root@test app]# kill -9 11840  # 杀死我们的进程
因为我们杀死了我们的进程,所以 php 也会自动关闭

我们从新开启这个 容器 

比如 上面可以看到 我们NAMES 为 naughty_fermi
[root@test app]# docker start naughty_fermi 这样就开启了这个扩展

Remarque : Certaines extensions nécessitent quelques dépendances Oui, avant d'installer certaines extensions, nous pourrions avoir besoin de certaines dépendances. Lors de la connexion dans le code php, l'hôte mysql ne peut pas utiliser 127.0.0.1 ou localhost. Remplacez le lien par le nom du conteneur mysql_server mysql.

2. Extension de l'installation externe

Après l'avoir configuré pour la première fois, nous avons besoin du nom du conteneur Docker Start pour l'ouvrir plus tard
1. [root@test app]
#  docker exec -d naughty_fermi docker-php-ext-install opcache#这里我们用opcache 为例
docker exec 不用解释了吧。上面有
# -d 后台默认
# 容器名 后面是在容器里面运行的 命令
2.重复内部安装的 4操作 就可以了cli-server 和php-fpm 类似,每次新增扩展 都需要重新启动一下。
1. docker start nom du conteneur pour ouvrir le conteneur

2. docker stop nom du conteneur pour arrêter le conteneur

3 docker kill nom du conteneur pour tuer le conteneur


peut être spécifié dans. docker run - - name Nom du conteneur pour nommer le conteneur, par exemple

docker run -d -p 8080:8080 - -name php_server -v ~/app:/app -w /app php:7.2.5 -fpm php -S 0.0.0.0:8080 -t /app

De cette façon, le nom de notre conteneur peut être défini par nous-mêmes

Si vous avez d'autres questions, n'hésitez pas à m'envoyer un email. Mon email est

uyy2244@gmail.com

N'oubliez pas d'expliquer le problème en détail. Sinon, ignorez-le. .

Rappelez-vous : cet article s'applique uniquement aux environnements de développement locaux.

Ce qui précède représente l'intégralité du contenu de cet article. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois.

Recommandations associées :

Les 6 recommandations d'environnement de développement les plus utiles pour créer un environnement de développement local PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn