当前位置: 首页 > 后端技术 > PHP

Docker的LNMP一键安装开发环境+PHP非侵入式监控平台xhgui(优化系统性能,定位bug)

时间:2023-03-29 15:24:20 PHP

DNMPPLUSdnmp=Docker+Nginx+MySQL+PHP+Redis+MongDBplus=xhgui+xhprof+tidewaysdnmp-plus=PHPer一键安装开发环境+PHP非侵入式监控平台(优化系统性能和定位bug的神器)DNMPPLUS项目特点,基于yeszao的DNMP项目:PHPxhprof扩展-PHP性能跟踪开发Facebook分析工具PHPtidewaysextension-xhprof的分支,支持PHP7PHPmongodbextensionMongoDB服务MongoExpress-MongoDB服务管理系统xhgui-XHProfdata数据分析GUI系统推荐阅读dnmp-plusPHPer的一键安装终极调试开发环境dnmp-plus一键安装环境安装使用详解超完备设计模式介绍(45种)design-patterns-for-humans中文版MongoDB资源、库、工具、应用选择列表有哪些鲜为人知但很有意思的中文网站?一个攻城狮笔记本每天收集Github上的优秀项目一些有趣的民间故事超好用的GoogleChrome、SublimeText、Phpstorm、GreasyMonkey插件合集目录结构├──.githubGithub配置目录├──conf配置文件目录│├──conf.dNginx用户站点配置目录│├──mysql.cnfMySQL用户配置文件│├──nginx.confNginx默认配置文件│├──php-fpm.confPHP-FPM配置文件│├──php.iniPHP配置文件│├──redis.confRedis配置文件├──docs目录├──extensionsPHP扩展源码包├──log日志目录├──mongoMongoDB数据目录├──mysqlMySQL数据目录├──wwwPHP代码目录├──DockerfilePHP镜像构建文件├──docker-compose-sample.ymlDocker服务配置样例文件├──env.smaple环境配置样例文件└──travis-build.shTravisCI构建文件环境需要DockerDocker-composeGit快速使用$gitclonehttps://github.com/guanguans/dnmp-plus.git--recursive$cddnmp-plus$cpenv.sample.env$cpdocker-compose-sample.ymldocker-compose.yml$docker-composeup-d的默认的web根目录是www/localhost/,浏览器访问http://localhost基本上都是用lnmp-plus配合nginx、php72、php56、mysql、mongo、redis、phpmyadmin、phpredisadmin、mongo-express这些镜像服务#创建并启动容器$docker-composeupservice1service2...#创建并启动所有容器$docker-composeup#创建并启动容器在后台运行$docker-composeup-dservice1service2...#启动服务$docker-composestartservice1service2...#停止服务$docker-ccomposestopservice1service2...#重启服务$docker-composerestartservice1service2...#构建或重建服务$docker-composebuildservice1service2...#进入命令行容器$docker-composeexecservicebash#删除并停止容器$docker-composermservice1service2...#停止并删除容器、网络、镜像和挂载卷$docker-composedownservice1service2...xhgui使用,可以参考https://github.com/guanguans/...安装$cdwww/xhgui-branch$composerinstall修改xhgui-branch配置文件www/xhgui-branch/config/config.default.phptrue,//更改为true以便于调试'mode'=>'development',...'extension'=>'tideways',//更改为支持PHP7的tideways...'save.handler'=>'mongodb','db.host'=>'mongodb://mongo:27017',//将127.0.0.1更改为mongo...);在hosts文件中添加127.0.0.1xhgui.test浏览器访问http://xhgui.test,在待分析项目的nginx配置文件中修改。以默认localhost配置conf/conf.d/localhost.conf为例...location~\.php${fastcgi_passphp72:9000;fastcgi_indexindex.php;包括fastcgi_params;fastcgi_参数PATH_INFO$fastcgi_path_info;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;#在执行主程序之前运行我们指定的PHP脚本fastcgi_paramPHP_VALUE"auto_prepend_file=/var/www/html/xhgui-branch/external/header.php";}...重启nginx$docker-compose重启nginx浏览器访问http://localhost,然后访问http://xhgui.test,现在有内容了,请愉快的查看项目的性能跟踪分析PHP和扩展切换Nginx使用PHP版本的PHP会默认创建PHP5.6和PHP7.2两个PHP版本。切换PHP只需要在相应站点的Nginx配置中修改fastcgi_pass选项即可。比如例子http://localhost使用的是PHP7.2,Nginx配置:fastcgi_passphp72:9000;切换到PHP5.6,修改为:fastcgi_passphp56:9000;重启Nginx生效$docker-composerestartnginx安装PHP扩展PHP的很多功能都是通过扩展来实现的,而安装扩展是一个简单的过程耗时的过程,所以,除了PHP内置的扩展,我们只安装一个env.sample文件中默认有少量扩展名。如果你想安装更多扩展,请打开你的.env文件并修改以下PHP配置以添加所需的PHP扩展:PHP72_EXTENSIONS=pdo_mysql,opcache,redis,xdebug,mongodb,tidewaysPHP56_EXTENSIONS=opcache,redis,xdebug,mongodb,xhprof然后重建PHP镜像docker-composebuildphp72docker-composeup-d使用LogLog文件生成的位置依赖conf各日志配置的值Nginx日志Nginx日志是我们使用最多的日志,所以单独放在根目录log中。日志目录映射到Nginx容器的/var/log/nginx目录,所以在Nginx的配置文件中,输出日志的位置需要配置到/var/log/nginx目录,如:error_log/var/log/nginx/nginx.localhost.error.log警告;MySQL日志因为MySQL容器中的MySQL是由mysql用户启动的,它不能自己在/var/log下添加日志文件。因此,我们将MySQL日志和data放在同一个目录下,即项目的mysql目录下,对应容器中的/var/lib/mysql/目录。mysql.conf中日志文件的配置:slow-query-log-file=/var/lib/mysql/mysql.slow.loglog-error=/var/lib/mysql/mysql.error.log数据库管理默认phpMyAdmin地址:http://localhost:8080默认phpRedisAdmin地址:http://localhost:8081默认MongoExpress地址:http://localhost:8082参考链接https://github.com/yeszao/dnmp,yeszaohttps://github.com/laynefyc/xhgui-branch/,laynefycLicense麻省理工学院