文章列表

Nginx 黑魔法:使用 NGX-PHP 模块低成本实现高性能应用

, , , ,
本篇文章分享一个和 Nginx 以及 PHP 有关的“黑魔法”:NGX-PHP 模块。通过这个方式,我们可以低成本的实现高性能应用,以及适合在服务器资源有限的情况下,同时体验到 Nginx 的高效以及 PHP 的灵活。如果你对 PHP 的印象还停留在“慢”,那么或许这篇文章可以帮助你打开新世界。 阅读全文

重定向的九种方案及性能比较

, , , , , , , , , ,
说到重定向,大家必然不会陌生,最常见的场景之一便是各种文章、社交媒体上的短链接。最近计划对于之前的短链接服务进行升级改造。在改造前,对于常见 Web 语言,如 Java、PHP、Python、Node、Ruby、Go和服务工具 Nginx、Caddy、Traefik 做了简单的对比分析。希望这篇文章能够帮你在这个技术场景下,更立体的了解到各种语言/工具的基础性能差异。 阅读全文

使用 Docker 和 Traefik v2 搭建 Flarum 轻论坛应用

, , ,
距离写完[《使用 Docker 和 Traefik 搭建 Flarum 轻论坛应用》]已经过去了十个月。在上一篇搭建教程中,我描述过这个应用的优劣势,因为缺乏开发者,所以时隔近一年的时间里,软件除了能够保持缓慢前行外,并没有实质的变化。国内相关社区同样因为缺少活力,依旧还在使用陈旧的迭代方案,短期来看,应该不会有太多惊喜出现,不过作为一款轻量社区来讲,flarum 是合格的。本文将介绍如何使用 Docker 来对 Flarum 最新版 v0.1.0-beta.12 进行容器封装,以及如何搭配 traefik v2 一起使用。 阅读全文

如何搭配 CI 系统使用 Composer

, , , , ,
上一篇文章讲了如何搭建[高性能的 Composer] 服务,本篇来聊聊如何搭配 CI 进行使用,让研发效率有一定的保障。 阅读全文

搭建高性能的私有 Composer 镜像服务

, , , ,
最近在完善一个基于 Composer 管理的开源软件:Flarum 。Flarum 是一款可以说是完全基于插件构成的社区系统,在需要对其频繁修改更新的开发过程中,我们需要频繁修改 composer 配置文件,在不断 composer install 的情况下,较慢的依赖下载会严重影响开发调试效率。你可能会说,使用有良好网络质量的服务器进行初始化、或者使用企业商业网络高速网络通道、或者阿里云之类的公网镜像不就好了。然而这样做也仅仅只能保障分钟级别的部署安装。并且非常不利于多人多环境部署调试。本文将试着提出一个更简单的解决方案,来解决这个问题。 阅读全文

使用 Docker 和 Traefik 搭建 Flarum 轻论坛应用

, , ,
使用 Docker 和 Traefik 搭建 Flarum 轻论坛应用 最近在做社区类型的项目,出于后续从市场招人成本的考虑,不得不优选市场招聘培养难度较低的 PHP,再三挑选,选择了这款 阅读全文

使用 WordPress 快速打造个人 Wiki

, , ,
今年年初的时候,我曾经写过接近十篇博客,介绍如何[“从零到一搭建Wiki”],聊过了 MediaWiki、Doku、Confluence、Tiddly、MoinMoin 等系统,但是这里涉及的许多系统的写作体验都不是很好。在之后,我也写过几篇 [“如何使用容器技术搭建 WordPress”] 的文章,据官方数据称 WordPress 目前已经占据了互联网 34% 的应用,写作体验和插件生态其实还是很棒的,那么我们为何不使用 WordPress 来搭建 Wiki 呢?在使用了4个月之后,体验下来问题不大,我决定把方法分享出来,希望能帮到更多的人。如果你熟悉 WordPress 的搭建,本篇将文章两三分钟内就能够搞定啦。 阅读全文

加速你的 Gavatar

, , , ,
写了一个简单的小插件,用来加速Gravatar,稍加改写,可以加速其他家的头像。 阅读全文

PHP 带超时功能的 get_headers

, , ,
代码比较多,但是比较简单,一眼就看明白的,so,文字尽量少写了。因为众所周知的网络原因,gavatar也开始越来越慢,写了一个小东西来解决这个问题,过程中遇到了get_headers这个函数,甚是忧伤,记录下来,以免后来人踩坑。 更新记录,函数稍微改了一下,返回值基本和之前序列化后的结果一致,暂时没考虑支持子项也支持数组等(考虑细节性能,还想把没用的http头砍掉....)需求很简单:获取图片的head信息。调试程序的时候发现这个函数的调用很缓慢,即使绑定ip,有时候都能蹦到20多秒。 阅读全文

WordPress 简单提权工具

团队里管理淘宝团队技术博客的大神只给了我一个可怜巴巴的发布权限。最近在做 D2 的票务相关的事情,缺少系统支撑和服务器资源。于是,考虑借用“淘宝技术博客”的机器来解决问题。我机器用户账号得到了 sudo 权限,可能是出于技术博客对淘宝团队还挺重要的考虑,给我创建的 WordPress 系统里的用户权限只有最低的发布权限。为了解决上面提到的 D2 报名和签到的问题,我写了一个 WordPress 插件。然而因为“淘宝技术博客”使用了一个奇葩的 WordPress 版本,插件激活启用,必须要管理员访问 WordPress 的插件管理页面手动激活,哪怕是通过 mu-plugins 的方式想自动激活都不行。而且每更新一次插件,也都必须“重启”插件才能“刷掉”插件的缓存。因为时间比较赶,这个事情只能等到下班后再做。等我发现这个问题之后,大半夜的,也实在不好意思喊大神起来帮我手动做这个事情,尤其这个事情不能一次性解决。那么,就只好进行一次手动的用户提权啦。 阅读全文