2016年12月

升级Mac(El Capitan)内置PHP后,安装MongoDB扩展

上一篇文章——升级mac内置PHP之后,我开始装MongoDB扩展。

先装pecl,pecl的安装过程并不复杂,所以暂时就不写出来了。

pecl install mongodb安装mongodb扩展。
但是可能在安装pecl的时候,选错路径了,导致需要sudo才行。(或许它本来就是要你用sudo?)

安装到一半的时候,出现了这个提示:

checking for pkg-config... no
configure: error: Cannot find OpenSSL's <evp.h>
ERROR: `/private/tmp/pear/temp/mongodb/configure --with-php-config=/usr/local/php5/bin/php-config' failed

在网上搜索一番之后,告知用brew install openssl,brew link --force openssl之类的就可以解决。
然而并不能。

在网海搜索一晚未果,隔天过来再搜,就出现了这个帖子
按照上面的提示手动安装mongodb扩展就好了。(其实就是修改了编译时的参数)

第一步sudo brew install openssl我已经做过了,所以我跳过了。
第二步是export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include
第三步开始手动安装的过程

$ pecl download mongodb
$ tar zxvf mongodb*.tgz
$ cd mongodb*
$ phpize
$ ./configure --with-openssl-dir=/usr/local/opt/openssl
$ make
$ sudo make install

(里面具体的路径地址按需更改)

就完成了手动安装MongoDB扩展的过程。

升级Mac内置PHP

根据这个文章,敲以下命令即可。

curl -s http://plamenatv.free.bg/up.html | bash -s 7.0

安装完之后,php可执行文件会在/usr/local/php5/bin/php里面,把这个地址添加到PATH变量中,就可以在命令行使用php7了。

我在装完php7,使用pecl安装包时,系统提示“Cannot install, php_dir for channel "pecl.php.net" is not writeable by the current user”。
通过pecl config-get php_dir命令找到该文件夹,再用sudo chown -R <username> <php_dir>给予相应权限即可。

消失的磁盘空间

今天在linode上写docker的时候,提示空间不足。
我就用ncdu查看是哪个目录在占空间。结果占用最大的也就1.xG,加起来也大概3GB的样子。
硬盘总共用24GB,为啥df的结果是100%呢?

df -h -d 1 得到的结果也是只占用了3GB。

谷歌之后找到一个帖子说,可能是你删除了程序正在使用的大文件导致的。
lsof +L1命令查看, 得到大概如下的结果:

COMMAND PID  USER  FD TYPE DEVICE     SIZE/OFF   NLINK    NODE  NAME
mysqld 1433  mysql 1w  REG   8,8   28718252032       0  238068  /var/log/mysql/error.log(deleted)
...

然后我想起来前段时间就是因为这个文件占了20GB的空间,所以我直接把文件删除了,而不是清空文件内容。
我用service mysql restart命令重启mysql之后再df -h,磁盘占用就正常地显示为3.0GB了。