2009年5月

安装PHP扩展模块的方法

把服务器放入外网后,由于需求,需要在不重新编译php的基础上安装些php扩展模块。现看实例做讲解。

tar zxvf memcache-2.2.5.tgz
###转到扩展模块目录
cd memcache-2.2.5/
####执行php自身的phpize
/usr/local/web/php/bin/phpize

#####参数需要指明php-config目录
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../

tar jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3/
/usr/local/webserver/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../

tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-pdo-mysql=/usr/local/webserver/mysql
make
make install
cd ../

tar zxvf ImageMagick.tar.gz
cd ImageMagick-6.5.1-2/
./configure
make
make install
cd ../

tar zxvf imagick-2.2.2.tgz
cd imagick-2.2.2/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../

Freebsd单网卡双IP实现内网外网XXX

目前尚未放入机房
需要在一张freebsd网卡上设定以下两个IP
1. IP: 58.246.123.XXX (XXX表示任意)
掩码: 255.255.255.100
网关: 58.246.123.XX
2. IP: 192.168.1.133
掩码:255.255.255.0
网关:192.168.1.1

步骤:
1. ee /etc/rc.conf
2. 增加以下内容
ifconfig_bge0="inet 58.246.123.XXX netmask 255.255.255.100"
ifconfig_bge0_alias0="inet 192.168.1.133 netmask 255.255.255.0"
defaultrouter="58.246.123.XX"
3. 增加静态路由表 (由于之前上面的默认路由还没开通,所以测试ping www.baidu.com不通,但ping 192.168.1.1通. 所以说对于访问外网,没有自动转换到内网网关上去. 注明: 其它内网机器是可以正常访问外网的).
由此. 我做一个绑定静态路由表
命令: route add 220.0.0.0/8 192.168.1.1
说明:上面是指把所有220开头的IP,都通过192.168.1.1路由进行转发. 之所以做220是因为百度的ip是220开头的.所以这时ping www.baidu.com通过. (同时使用traceroute跟踪确实通过192.168.1.1)

由于这台机器将主要对外服务.所以到时默认路由肯定有效的.所以在实际中,我将增加
route add 192.168.1.0/24 192.168.1.1 (供内网访问)
方案还没有验证,理论上应该这样的.

注意,更改网络设置后,无需重启机器可以使用(/etc/netstart)命令

冒名顶替上学案

事件不再描述。

看过报道有感而已, 自己也是受害人之一, 有些感受可能大家不能理解,特别是当你还比较幼小,阳光,乐观,积极的在和谐社会时。
所以:
1. 做人不能太优秀
2. 不能高调

受过害,就是一种痛,祝福下其它同样受害人。

mysql 中的 case when then

/*
mysql> SELECT Name, RatingID AS Rating,
-> CASE RatingID
-> WHEN 'R' THEN 'Under 17 requires an adult.'
-> WHEN 'X' THEN 'No one 17 and under.'
-> WHEN 'NR' THEN 'Use discretion when renting.'
-> ELSE 'OK to rent to minors.'
-> END AS Policy
-> FROM DVDs
-> ORDER BY Name;
+-----------+--------+------------------------------+
| Name | Rating | Policy |
+-----------+--------+------------------------------+
| Africa | PG | OK to rent to minors. |
| Amadeus | PG | OK to rent to minors. |
| Christmas | NR | Use discretion when renting. |
| Doc | G | OK to rent to minors. |
| Falcon | NR | Use discretion when renting. |
| Mash | R | Under 17 requires an adult. |
| Show | NR | Use discretion when renting. |
| View | NR | Use discretion when renting. |
+-----------+--------+------------------------------+
8 rows in set (0.01 sec)

*/

Drop table DVDs;

CREATE TABLE DVDs (
ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(60) NOT NULL,
NumDisks TINYINT NOT NULL DEFAULT 1,
RatingID VARCHAR(4) NOT NULL,
StatID CHAR(3) NOT NULL
)
ENGINE=INNODB;

INSERT INTO DVDs (Name, NumDisks, RatingID, StatID)
VALUES ('Christmas', 1, 'NR', 's1'),
('Doc', 1, 'G', 's2'),
('Africa', 1, 'PG', 's1'),
('Falcon', 1, 'NR', 's2'),
('Amadeus', 1, 'PG', 's2'),
('Show', 2, 'NR', 's2'),
('View', 1, 'NR', 's1'),
('Mash', 2, 'R', 's2');

SELECT Name, RatingID AS Rating,
CASE RatingID
WHEN 'R' THEN 'Under 17 requires an adult.'
WHEN 'X' THEN 'No one 17 and under.'
WHEN 'NR' THEN 'Use discretion when renting.'
ELSE 'OK to rent to minors.'
END AS Policy
FROM DVDs
ORDER BY Name;