# DNMP PLUS
**dnmp** = `Docker` + `Nginx` + `MySQL` + `PHP` + `Redis` + `MongDB`
**plus** = `xhgui` + `xhprof` + `tideways`
**dnmp-plus** = `PHPer 的一键安装开发环境` + `PHP 非侵入式监控平台(优化系统性能、定位 Bug 的神器)`
---
[![Build Status](https://app.travis-ci.com/guanguans/dnmp-plus.svg?branch=master)](https://app.travis-ci.com/guanguans/dnmp-plus)
简体中文 | [English](README-EN.md)
**[dnmp-plus](https://github.com/guanguans/dnmp-plus)** 在 [yeszao](https://github.com/yeszao) 的 [DNMP](https://github.com/yeszao/dnmp) 基础上新增:
* [PHP xhprof 扩展](https://github.com/phacility/xhprof) - Facebook 开发的 PHP 性能追踪及分析工具
* [PHP tideways 扩展](https://github.com/tideways/php-xhprof-extension) - xhprof 的分支,支持 PHP7
* PHP mongodb 扩展
* MongoDB 服务
* Mongo Express - MongoDB 服务管理系统
* [xhgui](https://github.com/laynefyc/xhgui-branch) - xhprof 分析数据数据的 GUI 系统
![](docs/dnmp-plus.png)
---
## 目录结构
``` bash
├── .github Github 配置目录
├── conf 配置文件目录
│ ├── conf.d Nginx 用户站点配置目录
│ ├── mysql.cnf MySQL 用户配置文件
│ ├── nginx.conf Nginx 默认配置文件
│ ├── php-fpm.conf PHP-FPM 配置文件
│ ├── php.ini PHP 配置文件
│ ├── redis.conf Redis 配置文件
├── docs 文档目录
├── extensions PHP 扩展源码包
├── log 日志目录
├── mongo MongoDB 数据目录
├── mysql MySQL 数据目录
├── www PHP 代码目录
├── Dockerfile PHP 镜像构建文件
├── docker-compose-sample.yml Docker 服务配置示例文件
├── env.smaple 环境配置示例文件
└── travis-build.sh Travis CI 构建脚本
```
## 环境要求
* Docker
* Docker-compose
* Git
## 快速使用
``` bash
$ git clone https://github.com/guanguans/dnmp-plus.git --recursive
$ cd dnmp-plus
$ cp env.sample .env
$ cp docker-compose-sample.yml docker-compose.yml
# 服务选项:nginx、php72、php56、mysql、mongo、redis、phpmyadmin、phpredisadmin、mongo-express
$ docker-compose up -d php72 nginx mysql mongo
```
OK,你现在已经拥有了一个 dnmp-plus 开发环境,默认 web 根目录 `www/localhost/`,浏览器访问 [http://localhost](http://localhost)
![](docs/localhost.png)
## 基本使用
``` bash
# 服务选项:nginx、php72、php56、mysql、mongo、redis、phpmyadmin、phpredisadmin、mongo-express
# 创建并且启动容器
$ docker-compose up 服务1 服务2 ...
# 创建并且启动所有容器
$ docker-compose up
# 创建并且已后台运行的方式启动容器
$ docker-compose up -d 服务1 服务2 ...
# 启动服务
$ docker-compose start 服务1 服务2 ...
# 停止服务
$ docker-compose stop 服务1 服务2 ...
# 重启服务
$ docker-compose restart 服务1 服务2 ...
# 构建或者重新构建服务
$ docker-compose build 服务1 服务2 ...
# 进入命令行容器
$ docker-compose exec 服务 bash
# 删除并且停止容器
$ docker-compose rm 服务1 服务2 ...
# 停止并删除容器,网络,图像和挂载卷
$ docker-compose down 服务1 服务2 ...
```
## xhgui 使用,可以参考 https://github.com/guanguans/guanguans.github.io/issues/9
### 安装
``` bash
$ cd www/xhgui-branch
# 注意如果宿主机 php 没有安 mogodb 扩展会报错
$ composer install
```
### 修改 xhgui-branch 配置文件 `www/xhgui-branch/config/config.default.php`
``` php
<?php
return array(
...
'debug' => true, // 改为true,便于调试
'mode' => 'development',
...
'extension' => 'tideways', // 改为支持 PHP7 的 tideways
...
'save.handler' => 'mongodb',
'db.host' => 'mongodb://mongo:27017', // 127.0.0.1 改为 mongo
...
);
```
### hosts 文件中增加
``` bash
127.0.0.1 xhgui.test
```
### 浏览器访问 http://xhgui.test
![](docs/xhgui1.png)
### 在要分析项目 nginx 配置文件中修改,以默认的 localhost 配置 `conf/conf.d/localhost.conf` 为例
``` conf
...
location ~ \.php$ {
fastcgi_pass php72:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# 在执行主程序之前运行我们指定的PHP脚本
fastcgi_param PHP_VALUE "auto_prepend_file=/var/www/html/xhgui-branch/external/header.php";
}
...
```
### 重启 nginx
``` bash
$ docker-compose restart nginx
```
### 浏览器访问 [http://localhost](http://localhost),再访问 [http://xhgui.test](http://xhgui.test),此时已经有了内容,愉快的查看项目的性能追踪及分析吧
![](docs/xhgui2.png)
![](docs/xhgui3.png)
## PHP 和扩展
### 切换 Nginx 使用的 PHP 版本
默认同时创建 `PHP5.6` 和 `PHP7.2` 2 个 PHP 版本的容器,切换 PHP 仅需修改相应站点 Nginx 配置的 `fastcgi_pass` 选项,例如,示例的 [http://localhost](http://localhost) 用的是 PHP7.2,Nginx 配置:
``` conf
fastcgi_pass php72:9000;
```
要改用 PHP5.6,修改为:
``` conf
fastcgi_pass php56:9000;
```
重启 Nginx 生效
``` bash
$ docker-compose restart nginx
```
### 安装 PHP 扩展
PHP 的很多功能都是通过扩展实现,而安装扩展是一个略费时间的过程,
所以,除 PHP 内置扩展外,在 `env.sample` 文件中我们仅默认安装少量扩展,
如果要安装更多扩展,请打开你的 `.env` 文件修改如下的 PHP 配置,
增加需要的 PHP 扩展:
``` bash
PHP72_EXTENSIONS=pdo_mysql,opcache,redis,xdebug,mongodb,tideways
PHP56_EXTENSIONS=opcache,redis,xdebug,mongodb,xhprof
```
然后重新构建 PHP 镜像
``` bash
docker-compose build php72
docker-compose up -d
```
## 使用 Log
Log 文件生成的位置依赖于 conf 下各 log 配置的值。
### Nginx 日志
Nginx 日志是我们用得最多的日志,所以我们单独放在根目录 `log` 下。`log` 会目录映射 Nginx 容器的 `/var/log/nginx` 目录,所以在 Nginx 配置文件中,需要输出 log 的位置,我们需要配置到 `/var/log/nginx` 目录,如:
``` conf
error_log /var/log/nginx/nginx.localhost.error.log warn;
```
### MySQL 日志
因为 MySQL 容器中的 MySQL 使用的是 `mysql` 用户启动,它无法自行在 `/var/log` 下的增加日志文件。所以,我们把 MySQL 的日志放在与 data 一样的目录,即项目的`mysql`目录下,对应容器中的 `/var/lib/mysql/` 目录。
mysql.conf 中的日志文件的配置:
``` conf
slow-query-log-file = /var/lib/mysql/mysql.slow.log
log-error = /var/lib/mysql/mysql.error.log
```
## 数据库管理
* 默认 phpMyAdmin 地址:http://localhost:8080
* 默认 phpRedisAdmin 地址:http://localhost:8081
* 默认 Mongo Express 地址:http://localhost:8082
## 参考链接
* [https://github.com/yeszao/dnmp](https://github.com/yeszao/dnmp),yeszao
## License
[MIT](LICENSE)
没有合适的资源?快使用搜索试试~ 我知道了~
Docker的LNMP一键安装开发环境 + PHP非侵入式监控平台xhgui(优化系统性能、定位Bug神器).zip
共52个文件
gitignore:7个
conf:6个
png:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 44 浏览量
2024-04-30
06:16:55
上传
评论
收藏 4.08MB ZIP 举报
温馨提示
docker安装 docker安装方法有多种,下面列举在Windows和Linux系统中的安装步骤:12 Windows系统中的安装方法: 对于Windows Server系统,可以使用Microsoft发布的PowerShell模块DockerMicrosoftProvider来安装。以管理员身份打开Windows PowerShell,运行相关命令安装包并重启计算机即可。 对于Windows 10系统,需要通过创建Docker账户来下载和安装Docker Desktop(Windows版)。在安装过程中,可以将默认容器类型设置为Windows容器,也可以在安装后更改类型。 Linux系统中的安装方法(以CentOS7为例): 更新系统软件包并安装必要的软件包,如yum-utils、device-mapper-persistent-data和lvm2等。 添加Docker的yum仓库,以便下载并安装Docker。可以通过访问Docker官网的CentOS下载地址获取帮助文档,按步骤进行安装。 安装Docker CE(Community Edition)
资源推荐
资源详情
资源评论
收起资源包目录
Docker的LNMP一键安装开发环境 + PHP非侵入式监控平台xhgui(优化系统性能、定位Bug神器).zip (52个子文件)
新建文本文档.txt 1KB
dnmp-plus-master
.editorconfig 196B
travis-build.sh 292B
.travis.yml 661B
_config.yml 26B
.github
ISSUE_TEMPLATE
feature_request.md 609B
bug_report.md 543B
FUNDING.yml 154B
.gitattributes 53B
LICENSE 1KB
README-EN.md 8KB
mysql
.gitignore 13B
docs
dnmp-plus.png 1006KB
xhgui3.png 170KB
localhost.png 242KB
xhgui2.png 92KB
xhgui1.png 130KB
Dockerfile 465B
docker-compose-sample.yml 3KB
.gitmodules 108B
extensions
xdebug-2.5.5.tgz 273KB
php72.sh 3KB
php56.sh 3KB
install.sh 7KB
tideways-4.1.7.tar.gz 60KB
xdebug-2.6.1.tgz 277KB
redis-4.1.1.tgz 216KB
swoole-2.0.11.tgz 751KB
swoole-4.2.1.tgz 984KB
.gitignore 86B
www
localhost
index.php 2KB
xhgui-branch
env.sample 2KB
conf
redis.conf 61KB
php.ini 70KB
conf.d
localhost_https.conf 2KB
certs
localhost
localhost.key 891B
gencert.sh 621B
localhost.csr 660B
localhost.origin.key 963B
localhost.crt 871B
laravel.conf.sample 1KB
xhgui.conf 1KB
.gitignore 126B
localhost.conf 1KB
mysql.cnf 712B
php-fpm.conf 18KB
nginx.conf 711B
README.md 7KB
log
nginx
.gitignore 14B
xhprof
.gitignore 14B
php
.gitignore 14B
mongo
.gitignore 13B
共 52 条
- 1
资源评论
野生的狒狒
- 粉丝: 2471
- 资源: 2131
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功