授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道
在当今的软件开发领域,Docker已经成为了一种非常流行的容器化技术,通过Docker来开发和部署已经是常见的做法了,Docker可以消除因环境差异导致的问题,确保每个环境中都运行着相同的PHP版本和配置。
还记得有次项目就是因为本地与线上PHP版本不一致,导致bug产生!!!
PHP 作为吃饭的工具,自然是必不可少的。所以今天就来分享一下如何在Linux服务器上通过 Docker 来搭建 PHP 环境的。
服务器准备
因为AWS新用户可以免费1年使用,能白嫖肯定不能放过,所以服务器使用AWS
-
创建实例
登录进AWS
控制台 > 计算 > EC2- 选择实例的地区,点击启动新实例
- 选择实例系统,配置秘钥,配置存储
秘钥文件要保存好,登录需要!!!
信息填写完成后,点击启动即可
- 修改卷大小
如果刚才配置的时候没有修改,默认大小是8G,但是免费套餐中每个月可以使用30G。
要是没有修改的,可以调整下卷的大小到30G
点击实例,点击实例ID
这样我们就可以得到30G的存储了
- 选择实例的地区,点击启动新实例
-
连接实例
我们使用 EC2 Instance Connect 进行连接
这样就连接成功了。
Dockerfile PHP环境搭建
首先要确定安装了docker,我们可以使用以下命令来检查是否已安装Docker:
docker -v
该命令会显示已安装的Docker版本,如果未安装Docker,则会提示找不到该命令。
如果没有安装docker,则先安装下docker环境
sudo yum install docker
步骤一:创建一个Dockerfile
Dockerfile是由一行行指令语句构成的一个创建docker镜像的配置文件。
Dockerfile是由三个部分组成:基础镜像(必须的)、运行指令、容器默认执行命令
我们创建一个目录/www/php作为项目根目录并在项目的根目录中创建一个名为Dockerfile的文件。Dockerfile是用来定义Docker镜像中的环境的。
mkdir -p /www/php
cd /www/php
touch dockerfile
步骤二:定义基础镜像
编写Dockerfile内容:在Dockerfile中,可以使用FROM指令指定基础镜像,比如使用官方的PHP镜像。然后使用RUN指令安装所需的PHP扩展、工具和依赖。
FROM php:7.4-apache
RUN apt-get update \
&& apt-get install -y \
git \
zip \
unzip \
&& docker-php-ext-install mysqli pdo_mysql
在上面的文件中我们使用了官方的PHP 7.4-apache镜像作为基础镜像,并且通过apt-get命令安装所需的依赖,并使用docker-php-ext-install命令安装PHP的扩展。
步骤三:构建镜像
在项目的根目录中,运行以下命令构建docker镜像
docker build -t my-php .
注: 最后的 . 代表本次执行的上下文路径。
这个命令会根据Dockerfile文件构建一个名为my-php的镜像。
可以运行 docker images 查看我们创建的镜像
步骤四:创建容器
使用以下命令创建一个容器,并将你的项目代码挂载到容器中:
docker run -d -p 80:80 -v /www/php:/var/www/html my-php
我们可以使用docker ps 查看下我们的创建的容器
我们测试下环境是否可以正常访问
在项目的根目录下创建index.php文件
vim /www/php/index.php
# 写入以下内容
<?php
echo phpinfo();
访问我们的服务器的80端口显示以下内容,说明环境可以正常访问没有问题
这样我们就创建了一个php7.4环境