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

理解Linux系统/etc/init.d目录和/etc/rc.local脚本

当你查看/etc目录时,你会发现许多rc#.d 形式存在的目录(这里#代表一个指定的初始化级别,范围是0~6)。在这些目录之下,包含了许多对进程进行控制的脚本。这些脚本要么以"K"开头,要么以"S"开头。以K开头的脚本运行在以S开头的脚本之前。这些脚本放置的地方,将决定这些脚本什么时候开始运行。在这些目录之间,系统服务一起合作,就像运行状况良好的机器一样。然而,有时候你希望能在不使用kill 或killall 命令的情况下,能干净的启动或杀死一个进程。这就是/etc/init.d能够派上用场的地方了 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

Linux查看物理CPU个数、核数、逻辑CPU个数

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数# 查看物理CPU个数cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -# 查看每个物理CPU中core的个数(即核数cat /proc/cpuinfo| grep "cpu cores"| uni# 查看逻辑CPU的个数cat /proc/cpuinfo| grep "processor"| wc -查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -查看内 存信息
# cat /proc/meminf文章来源:http://www.cnblogs.com/emanlee/p/3587571.htm Read More

Linux常用命令

操作系统命令uname -a #查看内核/操作系统/CPU信息head -n 1 /etc/issue #查看操作系统版本cat /proc/cpuinfo #查看CPU信息hostname #查看计算机名lspci -tv #列出所有PCI设备lsusb -tv #列出所有USB设备lsmod #列出加载的内核模块env #查看环境变量文件/IO资源命令free -m #查看内存使用量和交换区使用量df -h #查看各分区使用情况du -sh <目录名> #查看grep MemTotal /proc/meminfo #查看内存总量grep MemFree /proc/meminfo #查看空闲内存量uptime #查看系统运行时间、用户数、负载cat /proc/loadavg #查看系统负载mount | column -t #查看挂接的分区状态fdisk -l #查看所有分区... 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

Linux删除指定日期之前的文件

两种方法1. 在一个目录中保留最近三个月的文件,三个月前的文件自动删除。find /email/v2_bak -mtime +92 -type f -name *.mail[12] -exec rm -rf {} ;/email/v1_bak --设置查找的目录;-mtime +92 --设置时间为91天前;-type f --设置查找的类型为文件;-name *.mail[12] --设置文件名称中包含mail1或者mail2;-exec rm -f --查找完毕后执行删除操作;将此命令写入crontab后即可自动完成查找并删除的工作了。2. 或者用:find . -ctime +40 -type f | xargs rm -r1、编写清理日志脚本clear.s   #!/bin/sfind /opt/bak -mtime +6 -name "*.log" -exec rm {}... 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

tmux安装、操作与配置

tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;当然其功能远不止于此。安装可以使用Ports安装tmux,位置在/usr/ports/sysutils/tmux/;tmux仅有一个依赖包libevent,位于/usr/ports/devel/libevent/。安装完成后输入命令tmux即可打开软件,界面十分简单,类似一个下方带有状态栏的终端控制台;但根据tmux的定义,在开启了tmux服务器后,会首先创建一个会话,而这个会话则会首先创建一个窗口,其中仅包含一个面板;也就是说,这里看到的所谓终端控制台应该称作tmux的一个面板,虽然其使用方法与终端控制台完全相同。tmux使用C/S模型构建,主要包括以下单元模块... Read More