/var/tools/php-5.6.17/ext/iconv/iconv.c:2512: undefined reference to libiconv_open’ ext/xmlrpc/libxmlrpc/encodings.o: In functionconvert’: /var/tools/php-5.6.17/ext/xmlrpc/libxmlrpc/encodings.c:73: undefined reference to libiconv_open’ /var/tools/php-5.6.17/ext/xmlrpc/libxmlrpc/encodings.c:81: undefined reference tolibiconv’ /var/tools/php-5.6.17/ext/xmlrpc/libxmlrpc/encodings.c:101: undefined reference to `libiconv_close’ collect2: ld returned 1 exit status make: *** [sapi/cli/php] Error 1 在阿里云安装php时,make的时候,发生了libiconv错误,通过安装libiconv,指定with-iconv-dir也没解决。最终是在make时加了一个参数,然后顺利编译通过的。 make ZEND_EXTRA_LIBS=‘-liconv’
阅读全文

大家共用的开发机io不正常,磁盘空间总是被莫名其妙的占满,怀疑是某些东西在不断的生成日志,,想看下具体是那些进程在使用IO,需要安装一个iotop, 使用命令sudo yum install iotop,安装成功,但是运行iotop时提示 No module named iotop.ui To run an uninstalled copy of iotop, launch iotop.py in the top directory 开始还以为是没安装好,卸载了重新安装,问题依然存在。 后来仔细分析了提示信息:No mudule name xxx 应该是python的提示信息,由于服务器上默认的python版本2.4太低,我们自己安装了2.6的版本,并且把/usr/bin/python指向了2.6版本的python,而使用yum安装的库在python2.4的路径下,这就导致直接运行iotop时出现模块不存在的信息,之前yum也有同样的问题。 解决方法也很简单,只需要把安装的iotop -> /usr/bin/iotop第一行的python运行环境由#!/usr/bin/python改为#!/usr/bin/python2.4即可。
阅读全文

尝试用libmemcached的类库链接memcache的时候,报错:sasl/sasl.h: No such file or directory。

经查发现是没有安装sasl的开发库,所以需要安装下,stackoverflow上说安装一个libsasl2-dev,用yum没找到,然后使用sasl和dev关键字筛选了下,得到了一个libgsasl-devel,然后就装上试了试,就ok了。

sasl/sasl.h: No such file or directory

sasl/sasl.h: No such file or directory

install libgsasl-devel

install libgsasl-devel


阅读全文

今天同事越到一个奇怪的问题,在下载头中指定了文件名,但是在ie6下,下载时却无法按给定的文件名给出保存,保存文件的名字为站点名称,在查阅一些资料后,确认为是gzip的问题,ie6不支持gzip,所以出现这个问题,但是在想关闭gzip的时候,发现关闭nginx的gzip压缩后,还是会有压缩头输出,后来才发现是ThinkPHP3.1版本新带的功能,自带“页面压缩输出支持”。 使用一个配置变量可以手动关闭: ‘OUTPUT_ENCODE’=>false
阅读全文

今天在使用GoAgent时遇到了MultiplexConnection Cannot hosts错误,以前一直都没有问题的,下午突然开始犯病了。问了下同事,也不能用。 解决办法自然也是有的。 找到Goagent/local 目录下的proxy.ini 文件,打开,编辑[gae]选项卡下的profile = google_cn 选项,改为profile = google_hk。然后保存关闭。再重新打开GoAgent就可以啦。
阅读全文

在使用curl上传POST一段数据时,被提示413 Request Entity Too Large,应该是nginx限制了上传数据的大小。

解决方法就是

打开nginx主配置文件nginx.conf,一般在/usr/local/nginx/conf/nginx.conf这个位置,找到http{}段,修改或者添加

client_max_body_size 2m;

然后重启nginx,

sudo /etc/init.d/nginxd reload

即可。

要是以php运行的话,这个大小client_max_body_size要和php.ini中的如下值的最大值差不多或者稍大,这样就不会因为提交数据大小不一致出现错误。

post_max_size = 2M

upload_max_filesize = 2M


阅读全文

转自: NinGoo的博客

经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用

/tmp/test.sh > /tmp/test.log 2>&1

前半部分/tmp/test.sh > /tmp/test.log很容易理解,那么后面的2>&1是怎么回事呢?

要解释这个问题,还是得提到文件重定向。我们知道>和<是文件重定向符。那么1和2是什么?在shell中,每个进程都和三个系统文件相关联:标准输入stdin,标准输出stdout和标准错误stderr,三个系统文件的文件描述符分别为0,1和2。所以这里2>&1的意思就是将标准错误也输出到标准输出当中。

下面通过一个例子来展示2>&1有什么作用:

$ cat test.sh
t
date

test.sh中包含两个命令,其中t是一个不存在的命令,执行会报错,默认情况下,错误会输出到stderr。date则能正确执行,并且输出时间信息,默认输出到stdout

./test.sh > test1.log
./test.sh: line 1: t: command not found
$ cat test1.log
Tue Oct 9 20:51:50 CST 2007

可以看到,date的执行结果被重定向到log文件中了,而t无法执行的错误则只打印在屏幕上。

$ ./test.sh > test2.log 2>&1
$ cat test2.log
./test.sh: line 1: t: command not found
Tue Oct 9 20:53:44 CST 2007

这次,stderr和stdout的内容都被重定向到log文件中了。

实际上, > 就相当于 1> 也就是重定向标准输出,不包括标准错误。通过2>&1,就将标准错误重定向到标准输出了,那么再使用>重定向就会将标准输出和标准错误信息一同重定向了。如果只想重定向标准错误到文件中,则可以使用2> file。


阅读全文

作者的图片

DigDeeply

Technology Stack: PHP/Openresty/GoLang, and so on…

Web Develop Eneigneer

Beijing China