Heim > Backend-Entwicklung > PHP-Tutorial > Docker-Installation der lokalen PHP-Entwicklungsumgebung

Docker-Installation der lokalen PHP-Entwicklungsumgebung

不言
Freigeben: 2023-03-25 17:16:02
Original
4589 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Docker-Installation der lokalen PHP-Entwicklungsumgebung vor. Er hat einen gewissen Referenzwert. Jetzt können Freunde, die ihn benötigen, darauf verweisen.

Lu Xun: Programmierer, die keine Produkte herstellen wollen, sind nicht leicht zu verkaufen

Vorwort

Wenn viele Leute Docker konfigurieren, verstehen sie es nicht Die darin enthaltene Verzeichnisstruktur führt zu Konfigurationsproblemen, die zu großer Verwirrung führen.

Aber Junge, wenn du diesen Artikel liest, hast du recht. Ich werde eine „kurze und prägnante“ Sprache verwenden, um Sie schnell in die Docker-Grube zu führen. Möglicherweise steht in dem Artikel etwas, das nicht mit Ihren Werten übereinstimmt. Drücken Sie bitte mit Ihrer kleinen Faust die Tastenkombination Strg+F4. Ich bin eine Person, die es nicht ertragen kann, mich zu beschimpfen (werde ich dir die Chance geben, mich zu beschimpfen? Schlage mich zuerst zu Tode) (Handbuch lustig).

Es wird dringend empfohlen, dass csdn Emoji-Ausdrücke hinzufügt.

MySQL-Installationstext

Die MySQL-Installation ist relativ einfach

[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 帐号设置密码
没了。
Nach dem Login kopieren

Wir müssen jedoch zuerst MySQL und dann PHP installieren, da ein -Link zwischen Containern erforderlich ist. Es ist interaktiv Kommunikation zwischen den beiden Containern. ansonsten. Hehe, wissen Sie. MySQL kann nicht in PHP verbunden werden. Die Befehlserklärung finden Sie unten. .

php-Installationstext

1. Vorbereitung

Da es sich bei dem betreffenden Computer um ein Ubuntu-System handelt, sind einige der Befehle in diesem Artikel zusätzlich zur Installation einheitlich. Es scheint, dass es nichts gibt, was mit anderen Systemen inkompatibel ist.

Docker-Installation,

Windows-Installation
Linux
Mac

1. php:7.2.4-fpm-Image (dies sollte auf der Umgebung basieren Ihres Projekts) Offizielles Bild

3. Offizielles MySql-Bild (es hängt von Ihrer Stimmung ab)


(lustig) Einige Leser fragen sich vielleicht, warum nicht nginx|apache, weil es Ihre Bedienung vereinfacht. Dadurch können Sie schneller mit der Installation beginnen und Code schneller schreiben.

Wenn Sie Docker heruntergeladen haben, starten Sie Docker

Wenn Docker aktiviert ist, druckt die Docker-Version die Serverinformationen. Wenn sie nicht aktiviert ist, werden sie nicht gedruckt .

Bitte Docker öffnenDocker-Installation der lokalen PHP-Entwicklungsumgebung
2. Start

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
Nach dem Login kopieren

3. Test:

Wir erstellen eine neue index.php im App-Verzeichnis

<?php 
phpinfo();
Nach dem Login kopieren

Öffnen Sie 127.0.0.1:8080. Sie können die bekannte PHP-Info sehen.

4. Installieren Sie die Erweiterung.

Wenn Sie die Erweiterung nicht installieren müssen, beachten Sie bitte den Hinweis! ! !

Hier erklären wir zwei Möglichkeiten, Erweiterungen zu installieren

1. Geben Sie den Container ein, um die Erweiterung zu installieren

Den Docker-Containernamen anzeigen

[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
Nach dem Login kopieren

Wir werde hier sehen. Wenn es um Docker geht, lautet der Name naughty_fermi

2. Geben Sie den Container ein

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 这样就开启了这个扩展
Nach dem Login kopieren

Auf diese Weise wurden unsere Erweiterungen installiert

Hinweis: Einige Erweiterungen erfordern einige In unserem Fall installieren Sie einige Erweiterungen, die möglicherweise einige Abhängigkeiten erfordern. Beim Herstellen einer Verbindung im PHP-Code kann der MySQL-Host weder 127.0.0.1 noch Localhost verwenden. Ersetzen Sie den Link durch den Containernamen mysql_server mysql.

2. Externe Installationserweiterung

1. [root@test app]
#  docker exec -d naughty_fermi docker-php-ext-install opcache#这里我们用opcache 为例
docker exec 不用解释了吧。上面有
# -d 后台默认
# 容器名 后面是在容器里面运行的 命令
2.重复内部安装的 4操作 就可以了cli-server 和php-fpm 类似,每次新增扩展 都需要重新启动一下。
Nach dem Login kopieren
Nachdem wir es zum ersten Mal konfiguriert haben, benötigen wir den Namen des Docker-Startcontainers, um ihn später zu öffnen

1. Docker-Startcontainername zum Starten des Containers

2. Docker-Stoppcontainername zum Stoppen des Containers

In Docker-Ausführung können Sie angeben - -name Container Name, um dem Container einen Namen zu geben, zum Beispiel

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

So kann unser Containername selbst definiert werden

Bei weiteren Fragen schreiben Sie mir bitte eine E-Mail. Meine E-Mail lautet


uyy2244@gmail.com

Denken Sie daran, das Problem im Detail zu erläutern. Andernfalls ignorieren Sie es. .

Denken Sie daran: Dieser Artikel gilt nur für lokale Entwicklungsumgebungen.

Das Obige ist der gesamte Inhalt dieses Artikels. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website. Verwandte Empfehlungen:

Die 6 besten Entwicklungsumgebungsempfehlungen für den Aufbau einer lokalen PHP-Entwicklungsumgebung

Das obige ist der detaillierte Inhalt vonDocker-Installation der lokalen PHP-Entwicklungsumgebung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage