共计 1018 个字符,预计需要花费 3 分钟才能阅读完成。
逛 github 的时候,时常会遇到喜欢的 php 项目。想要尝试搭建一下,但如果没有现成的 php 环境,临时搭建一个又太麻烦。
之前有一种方案是搭建宝塔环境,比如阿蛮君的这篇文章 Docker 搭建宝塔面板快速搭建网站运行环境,
接下来这种方案对于临时测试的 php 其实更方便,不过如果想要长期运行,建议还是不要用这种方式。
1. nginx-php
这个容器不包含数据库,但是提供了 php 常用的 7.4 版本和 8.0 版本,另外 7.2 和 7.3 版本也是有的。
临时搭建教程如下:
1.需要先下载源码,将源码放在某个目录
2.进入源码的根目录,执行如下代码
docker run -d \
-p 30080:80 \
-v $PWD:/data/wwwroot \
--name test \
-u root \
hausen1012/nginx-php:7.4
因为该容器的 php 根目录是 /data/wwwroot
,所以需要将项目的根目录映射为 wwwroot。
3.如果报错提示权限不够,执行如下命令
docker exec -it test chown www:www /data/wwwroot
2. nginx-php-mysql
这种是对于需要数据库的 php 项目,并且本地连 mysql 都没有的情况。这里提供的 php 版本是 7.4,mysql 数据库为 5.x 和 8.x。
这里的步骤和上面一样,也要将源码放在某个目录,进入后执行。
# mysql 5.7
docker run -d \
--name test \
-p 3306:3306 \
-v $PWD:/data/wwwroot/ \
-v $PWD/init/:/init/ \
-v /mysql5:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=1234 \
-e MYSQL_DATABASE=mytest \
hausen1012/nginx-php-mysql:7.4-5.7
# mysql 8.0
docker run -d \
--name test \
-p 3306:3306 \
-v $PWD:/data/wwwroot/ \
-v $PWD/init/:/init/ \
-v /mysql8:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=1234 \
-e MYSQL_DATABASE=mytest \
hausen1012/nginx-php-mysql:7.4-8.0
其他的就不做过多解释了,映射 init
目录的目的是,有些 php 项目会带初始化 sql 脚本,通过这种方式可以直接创建数据库。
提醒:本文发布于489天前,文中所关联的信息可能已发生改变,请知悉!
AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完