Docker 临时运行 php 项目解决办法

215次阅读
没有评论

共计 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 脚本,通过这种方式可以直接创建数据库。

提醒:本文发布于355天前,文中所关联的信息可能已发生改变,请知悉!

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 
阿蛮君
版权声明:本站原创文章,由 阿蛮君 2023-08-02发表,共计1018字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2022-2024 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 蓝易云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock