摘要:日志日志是我們用得最多的日志,所以我們多帶帶放在根目錄下。會目錄映射容器的目錄,所以在配置文件中,需要輸出的位置,我們需要配置到目錄,如日志因為容器中的使用的是用戶啟動,它無法自行在下的增加日志文件。
DNMP PLUS
dnmp = Docker + Nginx + MySQL + PHP + Redis + MongDB
plus = xhgui + xhprof + tideways
dnmp-plus = PHPer 的一鍵安裝開發環境 + PHP 非侵入式監控平臺(優化系統性能、定位 Bug 的神器)
DNMP PLUS 項目特點,在 yeszao 的 DNMP 項目基礎上新增:
PHP xhprof 擴展 - Facebook 開發的 PHP 性能追蹤及分析工具
PHP tideways 擴展 - xhprof 的分支,支持 PHP7
PHP mongodb 擴展
MongoDB 服務
Mongo Express - MongoDB 服務管理系統
xhgui - XHProf 分析數據數據的 GUI 系統
推薦閱讀dnmp-plus PHPer 的一鍵安裝式終極 debug 開發環境
dnmp-plus 一鍵安裝式環境詳細安裝與使用
超全的設計模式簡介(45種)
design-patterns-for-humans 中文版
MongoDB 資源、庫、工具、應用程序精選列表中文版
有哪些鮮為人知,但是很有意思的網站?
一份攻城獅筆記
每天搜集 Github 上優秀的項目
一些有趣的民間故事
超好用的谷歌瀏覽器、Sublime Text、Phpstorm、油猴插件合集
目錄結構├── .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
快速使用$ 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 $ docker-compose up -d
默認 web 根目錄 www/localhost/,瀏覽器訪問 http://localhost
基本使用lnmp-plus 自帶 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/... 安裝
$ cd www/xhgui-branch $ composer install修改 xhgui-branch 配置文件 www/xhgui-branch/config/config.default.php
true, // 改為true,便于調試 "mode" => "development", ... "extension" => "tideways", // 改為支持 PHP7 的 tideways ... "save.handler" => "mongodb", "db.host" => "mongodb://mongo:27017", // 127.0.0.1 改為 mongo ... );hosts 文件中增加
127.0.0.1 xhgui.test瀏覽器訪問 http://xhgui.test 在要分析項目 nginx 配置文件中修改,以默認的 localhost 配置 conf/conf.d/localhost.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
$ docker-compose restart nginx瀏覽器訪問 http://localhost,再訪問 http://xhgui.test,此時已經有了內容,愉快的查看項目的性能追蹤及分析吧 PHP 和擴展 切換 Nginx 使用的 PHP 版本
默認同時創建 PHP5.6 和 PHP7.2 2 個 PHP 版本的容器,切換 PHP 僅需修改相應站點 Nginx 配置的 fastcgi_pass 選項,例如,示例的 http://localhost 用的是 PHP7.2,Nginx 配置:
fastcgi_pass php72:9000;
要改用 PHP5.6,修改為:
fastcgi_pass php56:9000;
重啟 Nginx 生效
$ docker-compose restart nginx安裝 PHP 擴展
PHP 的很多功能都是通過擴展實現,而安裝擴展是一個略費時間的過程,
所以,除 PHP 內置擴展外,在 env.sample 文件中我們僅默認安裝少量擴展,
如果要安裝更多擴展,請打開你的 .env 文件修改如下的 PHP 配置,
增加需要的 PHP 擴展:
PHP72_EXTENSIONS=pdo_mysql,opcache,redis,xdebug,mongodb,tideways PHP56_EXTENSIONS=opcache,redis,xdebug,mongodb,xhprof
然后重新構建 PHP 鏡像
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 目錄,如:
error_log /var/log/nginx/nginx.localhost.error.log warn;MySQL 日志
因為 MySQL 容器中的 MySQL 使用的是 mysql 用戶啟動,它無法自行在 /var/log 下的增加日志文件。所以,我們把 MySQL 的日志放在與 data 一樣的目錄,即項目的mysql目錄下,對應容器中的 /var/lib/mysql/ 目錄。
mysql.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,yeszao
https://github.com/laynefyc/xhgui-branch/,laynefyc
LicenseMIT
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31802.html
摘要:的一鍵安裝開發環境非侵入式監控平臺優化系統性能定位的神器之前在用做本地開發環境,因為沒有這些對程序性能追蹤及分析的工具,所以索性基于的編排了一套自己使用。 DNMP PLUS dnmp = Docker + Nginx + MySQL + PHP + Redis + MongDB plus = xhgui + xhprof + tideways dnmp-plus = PHPer 的一...
摘要:參考配置添加,告訴程序在執行前要調用的服務或者也可以在修改配置文件,告訴程序在執行前要調用的服務參考鏈接 showImg(https://segmentfault.com/img/bVbt7t1?w=2880&h=2608); 推薦閱讀 Tideways、xhprof 和 xhgui 打造 PHP 非侵入式監控平臺 超全的設計模式簡介(45種) design-patterns-for...
摘要:參考配置添加,告訴程序在執行前要調用的服務或者也可以在修改配置文件,告訴程序在執行前要調用的服務參考鏈接 showImg(https://segmentfault.com/img/bVbt7t1?w=2880&h=2608); 推薦閱讀 Tideways、xhprof 和 xhgui 打造 PHP 非侵入式監控平臺 超全的設計模式簡介(45種) design-patterns-for...
閱讀 920·2021-11-16 11:45
閱讀 2126·2021-10-09 09:44
閱讀 1340·2019-08-30 14:03
閱讀 1126·2019-08-26 18:28
閱讀 3327·2019-08-26 13:50
閱讀 1715·2019-08-23 18:38
閱讀 3450·2019-08-23 18:22
閱讀 3588·2019-08-23 15:27