在CentOS 5.5上,将PHP ICONV从glibc转换为libiconv

3
我遇到了一些关于PHP函数iconv的问题,我已经追踪到了iconv实现。正如手册所述,“请注意,在某些系统上,iconv函数可能无法按您预期工作。在这种情况下,最好安装GNU libiconv库。”http://uk3.php.net/manual/en/intro.iconv.php 我从http://www.gnu.org/software/libiconv/下载了libiconv库,并且使用以下命令轻松安装:
$ ./configure --prefix=/usr/local
$ make
$ make install

My problem now is how to link this installation to PHP? From what i've read I need to recompile PHP with

--with-iconv-dir=/usr/local/

but how do I do this on CentOS? I installed php with

yum install php.x86_64

我尝试过使用 yum reinstall php 命令,但是当我执行 service httpd restart 命令后,我的 phpinfo 仍然显示相同的 glibc 版本。

在 CentOS 上有更好的安装 libiconv 的方式吗?如果没有,那么如何在不影响 yum 的情况下让 PHP 使用此安装呢?

非常感谢您的帮助。

2个回答

2

从源代码编译 PHP 似乎是一种方法

php -m > /tmp/php.modules 列出已编译的 PHP 模块

备份您当前的 php.ini

yum uninstall php

下载 PHP,基于现有模块 + iconv - 几乎所有步骤在这里都有详细说明:http://www.php.net/manual/en/install.unix.apache2.php#90478(除了不建议您备份 php.ini)


谢谢ajreal。我希望有一个更简单的“一键”方法,但我会从源代码编译。 - Peter Hough
Peter,您在编译iconv时使用了哪些选项?在从源代码编译PHP之后,似乎glibc仍然是PHP使用的iconv版本。 - Randell

1

在手动更改配置脚本以强制选择GNU libiconv而不是glibc的iconv后,您应该手动重新编译php iconv扩展(位于php-x.y.z/ext/iconv/子目录中)。请参阅我的答案以获取类似的Stack问题。


我刚看了你的另一个答案,看起来非常好。我会尽量在本周抽出时间来试一下。谢谢! - Peter Hough

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接