Mac 下 Nginx、PHP、MySQL 和 PHP-fpm 的安装和配置

手动搭建nginx+php+mysql是phper的一件必备的技能,PHP界众所周知LAMP或者LNMP是Linux+Apache(Nginx)+Mysql+PHP的一套运行环境,而Linux和Mac有相似之处,其核心来源于Unix,所以Linux中的大部分命令在Mac中也是完美支持的,本文就MNMP环境的搭建做一个经验总结。

我们知道nodes与npm,java与maven(或者gradle),php与composer,Ubutun与apt-get,Centos与yum等等,均属于开发语言或操作系统与库或者安装包的依赖管理,而Mac上则常用的包管理器是homebrew。

继续阅读

SVN冲突解决方法

在ubuntu中,使用svn控制代码版本(其实个人喜欢GIT的,但是team使用的svn),出现冲突问题,做程序员就得上刀山下火海,不怕问题来找你,所以,本着职业的精神,好吧,解决吧。

第一次使用markdown写博客,写的时间有点久,语法不熟悉,看着语法手册一步一步创建的,大家凑合着看吧。

继续阅读

Nginx截断response的body

在前后端分离实践中,借助于nginx的反向代理,既能解决负载问题,也能解决跨域问题,是一个完美的实现方案。最近解决写了一个多级菜单列表的接口,数据大小有200k。通过ip访问,返回数据是完整的,但是通过代理域名访问,返回只有60-80k之间的数据。

查询Nginx的error.log日志,发现下面的错误:

2017/04/26 18:27:46 [crit] 19851#0: *867217 open() “/var/lib/nginx/proxy/6/68/0000001686” failed (13: Permission denied) while reading upstream, client: 10.71.253.194, server: admin-develop.xxx.cc, request: “GET /v2/menu/list HTTP/1.1”, upstream: “http://127.0.1.1:40212/router/menu/list”, host: “admin-develop.xxx.cc”

继续阅读

01-从0开始学习Docker

Docker is the world’s leading software containerization platform.

Docker是世界领先的软件容器化平台。

Docker公司开发,开源,托管在GitHub,开源部分现改名为Moby,docker由docker公司商业化。

优点:跨平台、支持Windows、MacOS、Linux。

继续阅读

Springboot启动时开启一个或多个线程

最近项目基于springboot做微信机器人,从网上看了一下,一般都是单个用户登录,然后一个线程死循环,类似监听器,如果有信息就处理信息。但是,我们的要求是需要可以多个用户登录,所以,每次登录一个用户,开启一个线程,用户意外退出或者接口响应错误的情况下,该线程回收。

继续阅读

Java日志Log4j或者Logback的NDC和MDC功能

Java中使用的日志的实现框架有很多种,常用的log4j和logback以及java.util.logging,而log4j是apache实现的一个开源日志组件(Wrapped implementations),logback是slf4j的原生实现(Native implementations)。需要说明的slf4j是Java简单日志的门面(The Simple Logging Facade for Java),如果使用slf4j日志门面,必须要用到slf4j-api,而logback是直接实现的,所以不需要其他额外的转换以及转换带来的消耗,而slf4j要调用log4j的实现,就需要一个适配层,将log4j的实现适配到slf4j-api可调用的模式。

说完基本的日志框架的区别之后,我们再看看NDC和MDC。

不管是log4j还是logback,打印的日志要能体现出问题的所在,能够快速的定位到问题的症结,就必须携带上下文信息(context information),那么其存储该信息的两个重要的类就是NDC(Nested Diagnostic Context)和MDC(Mapped Diagnositc Context)。

继续阅读