Mac OSX之Catalina 10.15中编译OpenJDK8

如果想深入学习JDK 内部的实现机制,最便捷的路径是自己手动编译一套JDK,通过阅读和跟踪debug JDK源码去深入了解Java技术体系的原理,结合各类书籍、文章和博客,对比理解,更容易让你了解JDK是怎么运作的,底层都做了什么。

本文基于目前最新的Mac操作系统Catalina 10.15.1 编译OpenJDK8,编译过程中遇到很多新问题,做个总结,为后来者提供方便。

继续阅读

MacOS编译NGINX1.17

使用Mac的开发者大多数的时候通过 brew 命令安装各类软件,比如 PHP、Python、Nodejs,Nginx 也不例外。

默认情况下Nginx安装在/usr/local/Cellar/nginx,通过brew link nginx加软连接到/usr/local/bin/nginx,虽然这样完全满足开发且符合 Mac 软件的管理,但是却不方便移植(比如想给不懂开发的用户一键部署部署的应用包,做私有化部署的同学应该对此不陌生)。

从源码编译 NGINX 程序比安装预编译的安装包要灵活很多,可以添加特定的模块(来自NGINX官方或者第三方的,比如给 Fastdfs 提供 HTTP 访问文件能力的 fastdfs-nginx 模块),当然自己编译源码拉取的可以是已修复 bug 和新增特性的最新分支。

继续阅读

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。

继续阅读