2007 年 1 月

庆祝Spam karma反垃圾安全运行八个月无故障

自从启用了Spam karma以来,wordperss上大量的垃圾留言,trackback从此销声匿迹,下面是它的赫赫战功:
* Total Spam Caught: 8468 (average karma: -118684.54)
* Total Comments Approved: 218 (average karma: 12.24)
* Total Comments Moderated: 58
* Current Version: 2.2 final r3

Spam karma自动咔嚓了8468个垃圾留言,据我观察基本没有误杀,很让人惊讶. 要是换做从前我手工审核, 只怕早就不胜其烦,就把blog关掉了事.
科技才是第一生产力!

评论 (2)

Wordpress 2.1 Ella正式发布

wordpress 2.1发布了!!
看看有什么新功能
* Autosave makes sure you never lose a post again.
* Our new tabbed editor allows you to switch between WYSIWYG and code editing instantly while writing a post.
* The lossless XML import and export makes it easy for you to move your content between WordPress […]

评论 (2)

php5的simplexml解析错误

前阵子用simplexml来解析一个rss数据源,很轻松就获得了想要的结果.不想没几天就开始报错:
Warning: simplexml_load_file() [function.simplexml-load-file]: input conversion failed due to input error, bytes 0xAD 0xB5 0x3C 0x2F
刚开始猜想是php5的一个bug,但是搜索发现,有可能是rss源内混杂了其它编码的字符,导致simplexml解析错误.
也就是说,如果rss的声明是这样子:
PLAIN TEXT
XML:

<?xml version="1.0" encoding="GB2312"?>

那么rss内容一定要是gb2312.
解决办法

用iconv转换编码
修改encoding为正确的编码

评论 (5)

ubuntu下安装php5 + pdo

这几天尝试把工作机迁到ubuntu上来做开发,系统安装好之后的首要任务是安装php+mysql的开发环境. 我打算直接安装php5, pdo_mysql, 下面是安装过程的记录
首先我直接用apt-get安装了apache2,php5,pear以及mysql5, 为了方便后续的安装,还加上了make和libmysqlclient

sudo apt-get install apache2-mpm-prefork
sudo apt-get install php5
sudo apt-get install php5-dev
sudo apt-get install php5-pear
sudo apt-get install mysql-server-5.0
sudo apt-get install make
sudo apt-get install libmysqlclient15-dev

pdo在ubuntu的apt里头似乎还找不到安装源,所以通过pecl来安装这个扩展,非常简单 ---- 如果海底光纤能连通的话:
pecl install pdo
增加一行:
extension=pdo.so
到文件:
/etc/php/apache2/php.ini
/etc/php/cli/php.ini
接下来安装pdo_mysql碰到一些问题, 直接跑pecl install pecl_mysql会出现一些错误,搜索了一下发现是pecl本身的问题,下面是个比较简单的解决办法:

wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar xzvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
注释掉configure里头判断是否已经安装pdo扩展的代码片段,继续跑:

phpize
./configure
make
make install
然后再次添加下面一行到前面提到的两个php.ini
extension=pdo_mysql.so
重启apache之后, php5 + pdo_mysql就在ubuntu上安装好了, documentroot是/var/www
后记
更简单的解决办法是运行:
PHP_PDO_SHARED=1 pecl install pdo_mysql

评论 (8)

php 5.2 + pdo_mysql安装

这天在一台redhat的机器上安装php 5.2+pdo_mysql,走了些弯路,浪费了不少时间.记录一下:
首先我按照之前记录的手册安装php,参数上有些变化,configure参数增加了--with-pdo=shared --with-pdo-mysql=shared
最后得到一些错误提示:
checking for MySQL support for PDO... yes, shared
checking for mysql_config... /usr/bin/mysql_config
./configure: line 3038: -e: command not found
./configure: line 3039: -e: command not found
checking for mysql_query in -lmysqlclient... no
configure: error: mysql_query missing!?
于是暂时去掉了pdo-mysql模块的安装,直接安装pecl.php.net上最新的PDO_MYSQL
tar -xf PDO_MYSQL.tar
cd PDO_MYSQL-1.0.1
phpize
./configure

仍然出现之前的错误提示.很郁闷,在google上搜索了一下,有个最粗鲁最暴力的办法就是直接修改configure,绕过mysql_query的检测,这样能够编译成功,但是使用的时候调用pdo_mysql模块失败.
偶在这个问题上是卡了很久,在google的搜索结果里一个个比对,最后一个比较有建设性的提示是让俺回去查glibc的版本.
rpm -qa|grep glibc
这样看到这台机器上的glibc版本是2.3,而我下载安装的mysql却是for glibc 2.2,难怪会编译失败. 安装对应版本的mysql之后问题解决.

评论 (5)