某台前端服务器发现iconv函数数据输出为空。其他前端则输出正常;系统版本和安装的软件包都是一样;经过分析基本判断为gd库和iconv的冲突问题只要php编译中加入gd库支持就会导致这一情况。

但是在前端服务器里面缺完全没有这个问题,看来只是针对特定硬件出现的问题。解决方法是把gd或者iconv作为作为动态模块加载,总之避免gd和iconv同时使用静态方式编译就行。

php动态方式加载gd编译方法

首先安装好gd
假设gd是安装在/usr/local/gd,php是安装在/usr/local/php

cd /usr/local/src/php-5.2.8/ext/gd/
/usr/local/php/bin/phpize
./configure –with-gd=/usr/local/gd –with-php-config=/usr/local/php/bin/php-config
make && make install


然后再修改php.ini文件
手工修改:查找/usr/local/php/etc/php.ini中的extension_dir = “./”
修改为extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/”
并在此行后增加以下几行,然后保存:
extension = “gd.so”

本文系转载,原文链接:http://www.ai77.org/?p=377