PHP intl扩展不支持';行不通

PHP intl扩展不支持';行不通,php,apache,debian,intl,Php,Apache,Debian,Intl,我已经通过Debian Squence上的PECL安装了intl扩展。但当我在php.ini文件中放入extension=intl.so并重新启动Apache时,它会将CP加载到99%左右,但没有任何效果。使服务器重新工作的唯一方法是从php.ini文件中删除扩展名=intl.so行。为什么? Apache错误日志为: [Wed Nov 28 23:09:59 2012][注意]已启用suEXEC机制(包装器: /usr/lib/apache2/suexec)PHP警告:函数注册失败- 重复名称

我已经通过Debian Squence上的PECL安装了intl扩展。但当我在php.ini文件中放入
extension=intl.so
并重新启动Apache时,它会将CP加载到99%左右,但没有任何效果。使服务器重新工作的唯一方法是从php.ini文件中删除
扩展名=intl.so
行。为什么?

Apache错误日志为:

[Wed Nov 28 23:09:59 2012][注意]已启用suEXEC机制(包装器: /usr/lib/apache2/suexec)PHP警告:函数注册失败- 重复名称-第0行中未知的idn_到_ascii PHP警告: 函数注册失败-名称重复-未知中的idn_到utf8 第0行PHP警告:idn:无法注册函数,无法 在第0行加载未知


出于明显的原因,函数名必须是唯一的

(推荐)扩展名
intl
提供函数
idn\u到ascii
idn\u到utf8
(以及其他有用函数),以及pecl扩展名
idn
()

idn自2009年以来处于(早期)测试阶段,不再开发

我如何解决这个问题??

你要做的是卸载你的idn扩展

apt-get remove php-pecl-idn
或(取决于安装方式)

或者只需在配置中对扩展进行注释

; extension=idn.so

然后重新启动apache

函数名需要唯一,原因很明显

(推荐)扩展名
intl
提供函数
idn\u到ascii
idn\u到utf8
(以及其他有用函数),以及pecl扩展名
idn
()

idn自2009年以来处于(早期)测试阶段,不再开发

我如何解决这个问题??

你要做的是卸载你的idn扩展

apt-get remove php-pecl-idn
或(取决于安装方式)

或者只需在配置中对扩展进行注释

; extension=idn.so

然后重新启动apache

是否检查了apache日志中的错误?确保您没有意外地加载PECL两次,可能会以不同的名称列出,还请检查以确保PHP未使用它编译。一种简单的检查方法是禁用加载intl.so,然后测试PHP脚本中的一个intl函数,如果它成功运行,那么您已经加载了它。是否检查了Apache日志中的错误?确保您没有意外地加载PECL两次,可能会以不同的名称列出,还要检查以确保PHP没有用它编译。一种简单的检查方法是禁用加载intl.so,然后在PHP脚本中测试其中一个intl函数,如果它成功运行,那么您已经加载了它。谢谢!我已经注释了extension=idn.so,现在它可以工作了。但我没有找到一种方法来完全删除扩展。apt get remove和pecl uninstall无法发现packageit可能被编译成php二进制文件。检查
phpinfo()
输出头上的
Configure命令--enable intl
,这将证明此假设是正确的。在这种情况下,除非重新编译php二进制文件或使用apt GETHANK you更新到更新的版本,否则无法完全删除此文件!我已经注释了extension=idn.so,现在它可以工作了。但我没有找到一种方法来完全删除扩展。apt get remove和pecl uninstall无法发现packageit可能被编译成php二进制文件。检查
phpinfo()
输出头上的
Configure命令--enable intl
,这将证明此假设是正确的。在这种情况下,除非重新编译php二进制文件或使用apt get更新到更新的版本,否则无法完全删除此文件