Don 发布的文章

记录安装PHP7 beta 和 PHP的mongodb扩展

2015年12月29日更新,PHP7正式版已经发布,也有PHP7可用的mongodb扩展了。

手动编译安装PHP7
手动编译PHP7的MongoDB扩展
PHP7下使用MongoDB API

下面的内容已过期,请参考上面的文章安装MongoDB的扩展。

服务器环境 Ubuntu 14.04 x64

安装PHP7

echo "deb http://repos.zend.com/zend-server/early-access/php7/repos ubuntu/" >> /etc/apt/sources.list

apt-get update && apt-get install php7-beta1

参考zend的文章 PHP 7 Builds - By Zend Technologies - The PHP Company

安装mongodb的PHP扩展

wget https://github.com/mongodb/mongo-php-driver/archive/1.6.10.tar.gz
tar zxvf 1.6.10.tar.gz
cd mongo-php-driver-1.6.10
/usr/local/php7/bin/phpize

执行phpize出现“Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.”的错误,执行下面的命令安装autoconf。

apt-get install autoconf

继续上面的编译工作

/usr/local/php7/bin/phpize
./configure --with-php-config=/usr/local/php7/bin/php-config
make

make出现一堆错误,搜索了下发现mongodb的PHP扩展暂时还不支持PHP7.
PHP-1438
PHPC-285

无奈只能安装PHP5.

一次灵异的数据排序问题

测试同学反馈说数据没有做排序,检查了下代码发现没有指定排序字段。
赶紧在PHP代码里加上,前端刷新后发现顺序还是不对,。
一开始以为是代码没传到测试环境导致,上测试环境上检查了下对应文件,代码已经更新了。

输出结果类似:

{
    "1002": {
        "xx": "xxxx", 
        "yy": "yyyy"
    }, 
    "1000": {
        "a": "aaa", 
        "b": "bbb"
    }
}

突然想到之前项目组同事说过js的排序问题,感觉是js自动做了排序。
跟同事确认了下,js会对带数字key的数组进行自动排序。

于是把PHP输出的数据结构改成没有key的就可以了,最终输出结果类似:

[
    {
        "xx": "xxxx", 
        "yy": "yyyy"
    }, 
    {
        "a": "aaa", 
        "b": "bbb"
    }
]

linux下查看一个目录下文件大小

开发中遇到“gzip: stdout: No space left on device"的错误,磁盘满了。

执行命令,查看磁盘当前情况。

df -h

磁盘结果

执行下面命令,查看data目录下的文件分布情况。

du -h --max-depth=1 /data

执行下面命令,删除占用最大目录的过期文件。

find /data/log -mtime +10 -name "*.*" | xargs -t -i unlink {}