docker安装php,PHP本地开发环境docker安装

这篇文章主要介绍了关于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 帐号设置密码

没了。

但是,我们安装 需要先安装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

98423133773161a6bf86198d56c29f5e.png

当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

3.测试:

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

phpinfo();

打开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

我们在这里看到了 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 这样就开启了这个扩展

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

注意:有一些扩展是需要一些依赖的,在我们安装一些拓展,前面或许需要一部分依赖。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 类似,每次新增扩展 都需要重新启动一下。

当我们第一次配置好了之后,后面就需要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中文网。

相关推荐:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值