【问题标题】:PHP ICONV glibc to libiconv on CentOS 5.5PHP ICONV glibc 到 CentOS 5.5 上的 libiconv
【发布时间】:2011-05-08 14:30:21
【问题描述】:

我在使用 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

我现在的问题是如何将此安装链接到 PHP?根据我的阅读,我需要使用

重新编译 PHP
--with-iconv-dir=/usr/local/

但是我如何在 CentOS 上做到这一点?我用

安装了 php
yum install php.x86_64

我试过 yum reinstall php 但是当我 service httpd restart 我的 phpinfo 读取相同,glibc

有没有更好的方法在 CentOS 上安装 libiconv?如果不是,我如何在不打扰 yum 的情况下使用此安装获取 PHP?

在此先感谢

【问题讨论】:

    标签: php centos glibc iconv


    【解决方案1】:

    从源代码编译的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,您在使用 iconv 编译时使用了哪些选项?从源码编译PHP后,看来glibc还是PHP使用的iconv版本。
    【解决方案2】:

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

    【讨论】:

    • 我刚刚看了你的另一个答案,它看起来很正确。这周我会试着找点时间试一试。谢谢!
    猜你喜欢
    • 2011-06-12
    • 2018-02-07
    • 2012-05-08
    • 1970-01-01
    • 2012-06-11
    • 2013-08-30
    • 1970-01-01
    • 2013-11-23
    • 2015-09-01
    相关资源
    最近更新 更多