Solve the problem “proc_open(): unable to create pipe Too many open files” while using phar

I feel quite confident in altering phar.c - I shall do so as soon as my new laptop arrives, the old and faithful one having given up the ghost some days ago - but I think the problem lies rather in compiling (and distributing) the resulting phar.so module, which must match the existing PHP installation.For me on OpenSuSE for example the easiest option seems to be to download the php5-phar SRPM and... Read More

Git之替换代码库HTTP(s)地址路径成Git协议路径

当使用glide install安装go的依赖包时,会提示[INFO] --> Fetching github.com/xxx/yyUsername for 'https://github.com'此时,可以使用git config --add参数进行地址替换,具体命令如下git config --global --add url."git@github.com:".insteadOf "https://github.com/"之后,再使用glide install安装依赖包时,会使用如下形式的命令进行下载代码git clone git@github.com:xxx/yyy.gi文章来源:胡小旭 => Git之替换代码库HTTP(s)地址路径成Git协议路径 Read More

Mac(Linux)下解压(Unzip)文件时出现乱码解决方案

由于zip格式中并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。Python方案这个方案很简单,因为如果你是*nix系统,那么python环境很有可能已经装好了。如果没有安装的话,可以到下面地址下载对应的安装包https://wiki.python.org/moin/BeginnersGuide/Downloa然后,创建python脚本文件myunzip.py,并写入如下内容[code lang="python"#作者:Latm Ak#链接:https://www.zhihu.com/question/20523036/answer/3522592#来源:知乎#著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。#!/usr/bin/env pytho... Read More

工作效率之动态 IP 域名化篇

在公司里,RD们不免会使用一些代理服务来进行抓包操作。那么就需要获取代理服务器(一般为自己的电脑)的内网IP。然而,这个内网IP并不是固定不变的。所以,每次配置代理IP时就略显麻烦。那么,下面就来聊聊如何解决这个尴尬,提升效率。方案将非固定IP实时解析到域名中。利用阿里云的域名解析开发者API进行定时的更新。其中的定时用本机(Mac)的Launchd实现(类似Linux下的Crontab)。原材料Mac(或者Windows 但本文仅谈及Mac配置方法)域名(如 ihuxu.com如果没有域名可以到freenom.com中注册一个免费域名,然后将其DNS切到阿里云免费的DNS云解析服务中即可。阿里云账号利用阿里云提供开发者的DNS管理相关的AP步骤下载阿里云SDK & 编写代码库:https://github.com/aliyun/aliyun-openapi-php-sdk.g... Read More

小型网站架构降低 Apache 与 MySQL 内存占用比率

前言这是一篇极其没有营养的文章,那么请问“什么还要写?”,正所谓“不积跬步无以至千里,不积小流无以成江海”,难得学习与总结。而且,并不一定每篇文章都需要长篇大论、“看似高深”,最后网友看后毫无感觉。这篇文章以我的阿里云服务器为例(你眼前的博客正是搭在这个服务器上),阐述下小型网站(Linux+Apache+MySQL+PHP)对于内存利用率提升的配置方法的一个点。正文我的服务器是阿里云的,在一年前由于数据库(MySQL)频繁内存不足宕机就“潇洒”地升级了配置到2G内存。所以,目前机器的配置如下CPU: 1核内存: 2048 M操作系统: CentOS 6.5 32位公网IP: 115.28.36.1带宽计费方式: 按固定带宽当前使用带宽: 1Mbp同时,正常使用情况下的内存使用情况如下图中显示MySQL占用440m,Apache占用44m。当然,这是MySQL服务和Apache服... Read More

在 Linux 下通过 strace 与 lsof 命令排查 PHP 异常进程

在有些时候,会遇到PHP进程异常卡死的情况。面对这种情况,首先考虑到的就是分析代码进行优化改进,或者重启进程。但是,这种方式来排查不一定能找到根本原因。因为有些时候异常PHP进程卡死的原因可能是非常奇葩的问题,比如外部资源异常如DB、Redis与第三方API等。上一次关于超级话题签到提醒定时任务PHP进程异常的处理,问题竟然出现在外部的DB的链接上。由于网络原因导致读取DB没有响应卡死。这一次情况比较严重,超级话题积分系统的计算有一部分是通过Trigger(类似队列)接受全站数据进行积分计算与入库。由于用户反馈问题,来到队列机查看进程情况。如下$ ps -ef | grep Trigger | grep Commenwww 10693 1 7 16:06 ? 00:04:09 /usr/local/bin/php /path/cli.php request_uri=/Cli/Trigg... Read More

自从有了她,再也不怕断签了:超级话题签到提醒

前言在解决了上一次关于超级话题积分bug后,又接到超级话题签到提醒的产品需求。这是一篇偏于技术实现的文章,讲述的比较笼统,业务围绕超级话题的签到提醒进行展开。如果,您对超级话题签到提醒的技术背景与实现感兴趣,那么这篇文章希望对你有帮助。当然,如果你是某个超级话题的超级粉丝,比如鹿晗,张艺兴,但是发现断签了。那么我非常替你感到“痛心”,因为目前超级话题没有补签功能。当然,如果你觉得是因为系统问题导致没有连续签到,那么你可以通过超级话题的官方反馈方式进行反馈来解决问题。当然,我劝你这么做之前一定要三思。因为,通过我排查的经验而言,基本山是由于你们(用户)把时间搞错了,而导致没有续签。而且,目前的签到提醒功能会在每天晚上提醒你签到的哦产品最近,在忙活超级话题的签到提醒产品的开发。首先,这是第一次比较热切的关注用户反应的产品。虽然说,对于产品的参与和认知并没有多么深入的理解,但是愈发的觉得这件事... Read More

powerline 插件安装之 vim 篇(Mac)

powerline是vim的状态栏插件,同时也提供状态栏和提示窗口功能给其他一些应用,包括zsh,bash,tmux,IPython,Awesome,i3 和 Qtile。这篇文字只谈vim上的安装。环境与工具系统:OS X EI Capitan version 10.11.终端:terminavim :v7.4.191xcode: 7.3.1(xcode的版本过低会影响一些依赖库的安装,我在6.5的情况下安装一些软件会出些问题,避免麻烦升级下。python:3.5.源码python: https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xvim: https://github.com/vim/vim/archive/v7.4.1949.tar.g安装pytho./configure  --prefix=/us... Read More