生产环境:
sunOS 10 php5.3.8 apache-5.2.15
症状:
iconv可以在命令行正常使用,但是在php中不能正常使用。
mb_convert_encoding()可以正常使用。
解决办法:
1.sunos下有自己的iconv库,自己编译一个新的库,一般是1.13.
放到/usr/目录下,也可以自定义路径 /usr/local/iconv/.
说明:这时就算编译php指定了/usr路径,系统也是自动用系统自己的iconv库。
所以要执行下面的一句话
sh#mv /usr/include/iconv.h /usr/include/iconv.h.bak
2.然后重新编译 php。指定iconv目录--with-iconv=/usr/local/iconv
不要使用configure --help里看到的--with-iconv-dir.
需要特别注意:系统自带的liviconv有问题,需要自己编一份到/usr/local
(小心不要覆盖以前的,否则可能连sh都不能执行了),php在configure时就算指定了
--with-iconv=/usr/local 它还是首先找到 /usr/include/iconv.h ,
而且 --help 里只提到 --with-iconv-dir=,应该使用 --with-iconv=
解决方法:
sh#mv /usr/include/iconv.h /usr/include/iconv.h.bak
sunOS 10 php5.3.8 apache-5.2.15
症状:
iconv可以在命令行正常使用,但是在php中不能正常使用。
mb_convert_encoding()可以正常使用。
解决办法:
1.sunos下有自己的iconv库,自己编译一个新的库,一般是1.13.
放到/usr/目录下,也可以自定义路径 /usr/local/iconv/.
说明:这时就算编译php指定了/usr路径,系统也是自动用系统自己的iconv库。
所以要执行下面的一句话
sh#mv /usr/include/iconv.h /usr/include/iconv.h.bak
2.然后重新编译 php。指定iconv目录--with-iconv=/usr/local/iconv
不要使用configure --help里看到的--with-iconv-dir.
需要特别注意:系统自带的liviconv有问题,需要自己编一份到/usr/local
(小心不要覆盖以前的,否则可能连sh都不能执行了),php在configure时就算指定了
--with-iconv=/usr/local 它还是首先找到 /usr/include/iconv.h ,
而且 --help 里只提到 --with-iconv-dir=,应该使用 --with-iconv=
解决方法:
sh#mv /usr/include/iconv.h /usr/include/iconv.h.bak