服务器 的归档

无废话安装 Redis PHP C 扩展 phpredis

wget http://download.github.com/owlient-phpredis-1.2.0-32-gc51f48a.tar.gz -O phpredis-1.2.0-32.tar.gz
tar zxf phpredis-1.2.0-32.tar.gz
mv owlient-phpredis-c51f48a/ phpredis-1.2.0-32
cd phpredis-1.2.0-32
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

echo "extension = redis.so" >> /usr/local/php/etc/php.ini

继续阅读本文……

发表评论

Nginx+PHP 配置漏洞:静态文件都可以当作 PHP 解析

漏洞危险等级:毁灭性。

这个漏洞严格上说并不是 Nginx 和 PHP 本身的漏洞造成的,而是由配置造成的。在我之前写的许多配置中,都普遍存在这个漏洞。

简易检测方法:
打开 Nginx + PHP 服务器上的任意一张图片,如:
http://hily.me/test.png
如果在图片链接后加一串 /xxx.php (xxx为任意字符)后,如:
http://hily.me/test.png/xxx.php
图片还能访问的话,说明你的配置存在漏洞。

继续阅读本文……

发表评论

无废话安装 dbcached

# 安装 qdbm 和 nmdb
dbcached 作分布式需要用到这两个

emerge libevent
emerge qdbm
wget http://blitiri.com.ar/p/nmdb/files/0.22/nmdb-0.22.tar.gz
tar zxvf nmdb-0.22.tar.gz
cd nmdb-0.22/
make BACKEND=qdbm ENABLE_TIPC=0 ENABLE_SCTP=0 install

继续阅读本文……

发表评论

RabbitMQ: 消息交换模块 Exchange

RabbitMQ 中的 Exchange 负责对消息进行路由。
当收到 Publisher 传递给它的消息后,Exchange 会根据路由键 routing key 决定将消息加入到哪些消息队列中。

Exchange 有三种类型:

1. 直接交换类型 Direct Exchange Type
使用一个固定字符串作为 routing key。
若 exchange 和 message queue 绑定的 key 和 routing key 一样时,消息会被路由到绑定的这个 message queue 中。

继续阅读本文……

发表评论

RabbitMQ: 批量创建节点并组成集群

多核 CPU 上创建集群的好处很明显,可以充分地利用 CPU 运算能力。

之前讲的都是在单机上用命令方式逐个创建节点,然后由这些节点组成集群。

其实如果是在同一台计算机上创建多个节点,RabbitMQ 提供了一个便捷的命令来批量操作。

这个命令是:rabbitmq-multi。

继续阅读本文……

发表评论

RabbitMQ: 从配置文件创建集群

前一篇日志简单演示了下手动创建集群的过程,可能你已经发现以命令行的方式创建集群多少有些繁琐。
RabbitMQ 提供了一种创建集群的便捷方法——从配置文件创建集群。

环境变量 RABBITMQ_CLUSTER_CONFIG_FILE 指定了集群配置文件所在路径,默认为:/etc/rabbitmq/rabbitmq_cluster.config。
如果需要,可以在启动 RabbitMQ Server 前设置它来改变配置文件路径。
只需要把要组成集群的各个节点以数组的方式写在配置文件中即可,示例:
['test1@gentoo', 'test2@gentoo', 'test3@gentoo'].

继续阅读本文……

发表评论

RabbitMQ 集群测试

#### 创建节点 ####

在本机上新建三个节点进行测试:

节点1:test1@gentoo
# export RABBITMQ_NODENAME=test1
# export RABBITMQ_NODE_PORT=5672
# ./rabbitmq-server -detached

节点2:test1@gentoo
# export RABBITMQ_NODENAME=test2
# export RABBITMQ_NODE_PORT=5673
# ./rabbitmq-server -detached

节点3:test1@gentoo
# export RABBITMQ_NODENAME=test3
# export RABBITMQ_NODE_PORT=5674
# ./rabbitmq-server -detached

继续阅读本文……

发表评论