• centos7.4 服务器安装日志

    安装php5.6

    yum install epel-release
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmphp56w-pgsql
    yum install php56w php56w-fpm php56w-gd php56w-pgsql php56w-mcrypt php56w-mbstring php56w-xmlreader php56w-devel
    yum install ImageMagick

    安装redis扩展
    wget https://github.com/nicolasff/phpredis/archive/2.2.8.tar.gz
    mv 2.2.8.tar.gz redis-2.2.8.tar.gz
    tar xvzf redis-2.2.8.tar.gz
    cd phpredis-2.2.8
    /usr/bin/phpize
    ./configure --with-php-config=/usr/bin/php-config
    make
    make install

    安装完成之后,会出现nstalling shared extensions: /usr/lib64/php/modules/
    vim etc/php.ini
    添加extension=redis.so

    安装mongo扩展
    yum install openssl-devel
    下载PHP-mongodb扩展
    (https://pecl.php.net/package/mongo)

    wget http://pecl.php.net/get/mongo-1.6.12.tgz
    tar xvzf mongo-1.6.12.tgz
    cd mongo-1.6.12
    phpize
    ./configure --with-php-config=/usr/bin/php-config
    make && make install

    在安装过程中可能会报以下错误
    /var/tmp/mongo/contrib/php-ssl.h:33:25: error: openssl/evp.h: No such file or directory

    需要安装openssl-devel
    yum install openssl-devel

    在php.ini文件中添加extension=mongo.so
    extension=mongo.so

  • 配置 支付宝密钥

    支付宝后台选择 【使用其他加签方式】 使用RSA加密方式 SHA1WithRSA
    genrsa -out rsa_private_key.pem 1024
    rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

  • 安装mongo扩展

    安装mongodb扩展
    下载PHP-mongodb扩展
    (https://pecl.php.net/package/mongo)
    wget http://pecl.php.net/get/mongo-1.6.12.tgz

    解压
    tar xvzf mongo-1.6.12

    编译安装
    cd mongo-1.6.12
    phpize
    ./configure –with-php-config=/usr/bin/php-config
    make && make install

    在安装过程中可能会报以下错误
    /var/tmp/mongo/contrib/php-ssl.h:33:25: error: openssl/evp.h: No such file or directory

    需要安装openssl-devel
    yum install openssl-devel

    在php.ini文件中添加extension=mongo.so
    extension=mongo.so

    重启php-fpm或服务器
    systemctl restart php-fpm

  • 再见了,云片短信,轰炸与信任的选择

    一个令人失望的短信平台
    竟然通过容忍短信轰炸给客户带来的损失,赚钱黑心的短信差价。
    没有最起码的短信异常检测机制。
    大家都是搞技术的。
    难道是你们公司太小,技术不行吗?
    短信余额不足你咋检测到了,也通知我们该给钱了
    短信消耗量比平日多几千倍你就检测不到了?通知我们发送异常很难吗?
    如果实在是技术不济,还做什么短信平台,技术团队全部回家种地去吧。
    费用比别家高,你把服务提上来啊?
    啥都不行也就这样了。
    再见了,云片网。你差同行太远了。

  • mongo操作日志

    数据导出
    mongodump -u never -p --authenticationDatabase admin -d dbnamexxx -o /data/db/bak/dbnamexxx

    mongorestore -u never -p --authenticationDatabase admin -d dbnamexxx /data/db/db_bak/dbnamexxx

  • PostgreSQL 启动失败 No space left on device

    PostgreSQL 启动失败

    >FATAL: could not create semaphores: No space left on device
    < 2015-10-07 22:00:26.817 CST >DETAIL: Failed system call was semget(1, 17, 03600)

    上述的空间不够不是指的是磁盘空间不够,而是创建semaphores时空间参数不够,系统调用参数semget报错,但是错误信息感觉有些迷惑……解决办法通常是减小max_connections,或者增大内核参数,如semmni,semmns等,在/proc/sys/kernel/sem里面调整,如
    [root@localhost ~]# sysctl -w kernel.sem="500 64000 50 150"
    kernel.sem = 500 64000 50 150
    [root@localhost ~]# cat /proc/sys/kernel/sem
    500 64000 50 150

  • virtualbox下 共享目录权限导致npm安装失败:npm ERR! ETXTBSY, rename

    virtualbox下 共享目录权限导致:npm ERR! ETXTBSY, rename ‘/home/vagrant/.npm/….

    解决办法:

    npm config set cache /var/.npm

    or
    直接修改缓存目录
    npm config edit

  • CentOS6 安装MongoDB及服务器端配置

    运行yum命令查看MongoDB的包信息

    um info mongo-10gen

    (提示没有相关匹配的信息,) 说明你的centos系统中的yum源不包含MongoDB的相关资源,所以要在使用yum命令安装MongoDB前需要增加yum源,也就是在 /etc/yum.repos.d/目录中增加 *.repo yum源配置文件

    vi /etc/yum.repos.d/10gen.repo,输入下面的语句:

    [10gen]
    
    name=10gen Repository
    
    baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
    
    gpgcheck=0

    做好yum源的配置后,如果配置正确执行下面的命令便可以查询MongoDB相关的信息:

    查看mongoDB的服务器包的信息

    yum info mongo-10gen-server

    安装MongoDB的服务器端和客户端工具

    yum install mongo-10gen-server
    
    yum install mongo-10gen
  • centos 6.4 安装Atomic源

    centos6.4 默认源,163源都不给力

    安装Atomic源

    wget -q -O – http://www.atomicorp.com/installers/atomic | sh

    安装完后在/etc/yum.repos.d/目录会有一个atomic.repo文件。
    Atomic仓库支持哪些软件可以到这个地址查看:http://www.atomicorp.com/channels/atomic/
    有php、mysql、nginx、openvas、memcached、php-zend-guard-loader等软件,版本也比较新
  • MongoDB 地理位置索引的实现原理

    地理位置索引支持是MongoDB的一大亮点,这也是全球最流行的LBS服务foursquare 选择MongoDB的原因之一。我们知道,通常的数据库索引结构是B+ Tree,如何将地理位置转化为可建立B+Tree的形式,下文将为你描述。

    首先假设我们将需要索引的整个地图分成16×16的方格,如下图(左下角为坐标0,0 右上角为坐标16,16):

    map1

    单纯的[x,y]的数据是无法建立索引的,所以MongoDB在建立索引的时候,会根据相应字段的坐标计算一个可以用来做索引的hash值,这个值叫做geohash,下面我们以地图上坐标为[4,6]的点(图中红叉位置)为例。

    我们第一步将整个地图分成等大小的四块,如下图:

    map2

    划分成四块后我们可以定义这四块的值,如下(左下为00,左上为01,右下为10,右上为11):

    01 11
    00 10

    这样[4,6]点的geohash值目前为 00

    然后再将四个小块每一块进行切割,如下:

    map3

    这时[4,6]点位于右上区域,右上的值为11,这样[4,6]点的geohash值变为:0011

    继续往下做两次切分:

    map4

    map5

    最终得到[4,6]点的geohash值为:00110100

    这样我们用这个值来做索引,则地图上点相近的点就可以转化成有相同前缀的geohash值了。

    我们可以看到,这个geohash值的精确度是与划分地图的次数成正比的,上例对地图划分了四次。而MongoDB默认是进行26次划分,这个值在建立索引时是可控的。具体建立二维地理位置索引的命令如下:

    db.map.ensureIndex({point : "2d"}, {min : 0, max : 16, bits : 4})

    其中的bits参数就是划分几次,默认为26次。