使用 Docker 部署 PHP 运行环境
当项目开发逐渐趋于完成时,需要准备大批量集群部署,重复的环境安装、配置和源码上传等工作,虽然没有难度,但繁琐无聊又低效,如果将项目发版版本打包成对应的 docker 镜像,我们只需在每台部署应用服务器上执行拉取镜像、创建容器、启动容器即可。DNMP 是基于 Docker 的 PHP 集成开发环境。
DNMP(Docker + Nginx + MySQL + PHP7/5 + Redis)是一款全功能的LNMP一键安装程序。
DNMP特点:
- 100% 遵循 Docker 标准
- 支持多版本 PHP 共存,可任意切换 (PHP5.6、PHP7.1、PHP7.3)
- 支持绑定任意多个域名
- 支持 HTTPS 和 HTTP/2
- PHP源代码、Mysql数据、配置文件、日志文件都可以在 Host 中直接修改查看
- 支持完整 PHP 扩展安装命令
- 默认支持 pdo_mysql、mysqli、mbstring、gd、curl、opcache 等常用扩展,可根据环境灵活配置
- 可一键选配常用服务:
- 多 PHP 版本: PHP5.6、PHP7.1-7.3
- Web 服务: Nginx 、Openresty
- 数据库: MySQL5、MySQL8 、Redis、memcached、MongoDB 、ElasticSearch
- 消息队列: RabbitMQ
- 辅助工具: Kibana、Logstash、phpMyAdmin、phpRedisAdmin、AdminMongo
- 实际项目中应用,确保100%可用
- 所有镜像基于 Docker 官方仓库,安全可靠
- 一次配置,Windows、Linux、MacOs皆可用
- 支持快速安装扩展命令
install-php-extensions acpu
快速部署
本地安装
- git
- Docker
- docker-compose
clone 项目
$ git clone https://github.com/yeszao/dnmp.git
如果不是 root 用户,需要将当前用户加入 docker 用户组
$ sudo gpasswd -a ${USER} docker
拷贝并命名配置文件,启动:
$ cd dnmp # 进入项目目录
$ cp env.sample .env # 复制环境变量文件
$ cp docker-compose.sample.yml docker-compose.yml # 复制 docker-compose 配置文件。默认启动3个服务:# Nginx、PHP7和MySQL8。要开启更多其他服务,如Redis、# PHP5.6、MongoDB,ElasticSearch等,请删 # 除服务块前的注释
$ docker-compose up # 启动
在浏览器访问
在浏览器中访问:http://localhost或https😕/localhost(自签名HTTPS演示)就能看到效果,PHP代码在文件./www/localhost/index.php。