Jadual Kandungan
docker php 本地开发环境
前言
mysql安装正文
php安装正文
1.准备工作
2.开始
3.测试:
4.安装扩展
1.进入容器里面安装扩展
2.外部安装拓展
Rumah pembangunan bahagian belakang tutorial php PHP本地开发环境docker安装

PHP本地开发环境docker安装

May 09, 2018 am 10:14 AM
docker php Pasang

这篇文章主要介绍了关于PHP本地开发环境docker安装,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

docker php 本地开发环境

鲁迅:不想打产品的程序员,不是好销售

前言

很多人在配置docker的时候,会因为不了解他里面的目录结构,配置问题,从而会导致很多不明白的地方。

但是,小伙子,你看这篇文章,你就看对了。我会用“短小精悍”的语言快速的带你入docker 坑。可能文章里面,写的有什么跟你的价值观不对的地方,请用你的小拳拳砸你的ctrl+F4 。我是一个经不起骂的人,如果你骂我  (我会给你机会骂我?先打死再说)(手动滑稽)。

强烈建议 csdn 加入emoji表情。

mysql安装正文

mysql 安装相对来说简单很多

[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 帐号设置密码
没了。
Salin selepas log masuk

但是,我们安装 需要先安装mysql 再安装php 因为 容器之间,需要–link 来使两个容器之间有交互通讯。否则。嘿嘿,你懂的。php 里面连接不了mysql 。命令解释,下文全部会有。。

php安装正文

1.准备工作

因为题主的电脑是ubuntu 系统,所以该篇的一些命令,统一为ubuntu 除了安装之外,貌似也没啥不兼容其他系统的了。
docker安装,
windows安装
linux
mac

1、docker环境
2、php:7.2.4-fpm镜像(这个要针对你项目的环境)官方镜像
3、MySql 官方镜像(看你自己心情装不装)

(滑稽) 有些读者可能会问,为什么不要nginx|apache ,因为简化你的操作。让你更快的入门安装,还有就是让你更快的写代码。

当你下载好了docker ,开启docker

版本信息
当docker开启后,docker version打印Server信息,没有开启则不打印。
请开启docker

2.开始

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
Salin selepas log masuk

3.测试:

我们在app目录下新建一个index.php

<?php 
phpinfo();
Salin selepas log masuk

打开127.0.0.1:8080 即可看到我们熟悉的phpinfo

4.安装扩展

如果不需要安装扩展,请看注意!!!

这里我们讲解2种方式安装拓展

1.进入容器里面安装扩展

一、查看docker容器名

[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
Salin selepas log masuk

我们在这里看到了 docker 名字为 naughty_fermi
二、进入容器

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 这样就开启了这个扩展
Salin selepas log masuk

这样我们的扩展就已经安装好了

注意:有一些扩展是需要一些依赖的,在我们安装一些拓展,前面或许需要一部分依赖。php代码里面连接,mysql host 就不能用127.0.0.1 或者localhost 了。把链接换为 mysql_server mysql 的容器名字。

2.外部安装拓展

1. [root@test app]
#  docker exec -d naughty_fermi docker-php-ext-install opcache#这里我们用opcache 为例
docker exec 不用解释了吧。上面有
# -d 后台默认
# 容器名 后面是在容器里面运行的 命令
2.重复内部安装的 4操作 就可以了cli-server 和php-fpm 类似,每次新增扩展 都需要重新启动一下。
Salin selepas log masuk

当我们第一次配置好了之后,后面就需要docker start 容器名来开启,这里来讲解几个命令

1、docker start 容器名 开启容器
2、docker stop 容器名 停止容器
3、docker kill   容器名 杀死容器

在docker run 里面 可以指定- -name 容器名字 来 给容器取名字 例如

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  
这样,我们容器名字 就可以自己定义了

其他的,有什么问题,发邮件给我吧。我的邮件是

uyy2244@gmail.com

记得请详细说明问题哦。否则 不予理睬。。

谨记:此文章只适用于本地开发环境。

以上就是本篇文章的全部内容了,更多相关内容请关注PHP中文网。

相关推荐:

php本地开发环境搭建最好用的6个开发环境推荐


Atas ialah kandungan terperinci PHP本地开发环境docker安装. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Tarikh dan Masa CakePHP

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Muat naik Fail CakePHP

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Konfigurasi Projek CakePHP

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Penghalaan CakePHP

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

Bincangkan CakePHP

Cara Memasang DeepSeek Cara Memasang DeepSeek Feb 19, 2025 pm 05:48 PM

Cara Memasang DeepSeek

PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi? PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi? Mar 05, 2025 pm 05:57 PM

PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi?

See all articles