PHP警告:PHP启动:无法加载动态库'intl'未定义符号:__cxa_throw_bad_array_new_length

时间:2019-12-14 12:10:57

标签: php centos centos7 yum

我最近更新了php,但是现在我无法摆脱这个警告。也无法回滚版本。 我正在运行CentOS Linux版本7.7.1908(核心)。 我如何降级到较低版本?

# php -v
PHP Warning:  PHP Startup: Unable to load dynamic library 'intl' (tried: /usr/lib64/php/modules/intl (/usr/lib64/php/modules/intl: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/intl.so (/usr/lib64/php/modules/intl.so: undefined symbol: __cxa_throw_bad_array_new_length)) in Unknown on line 0
PHP 7.4.0RC3 (cli) (built: Oct  1 2019 08:30:29) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0-dev, Copyright (c) Zend Technologies

intl模块已安装:

#yum list installed
php-intl.x86_64                       7.4.0~RC3-5.el7.remi       @remi-modular 

如果我尝试降级,则会遇到许多错误,据我了解,有必要列出所有降级的依赖项,例如php-common,php-cli?

# yum downgrade php
Error: Package: php-7.3.12-1.el7.remi.x86_64 (remi-php73)
            Need: php-common(x86-64) = 7.3.12-1.el7.remi
            Installed: php-common-7.4.0~RC3-5.el7.remi.x86_64 (@remi-modular)
                php-common(x86-64) = 7.4.0~RC3-5.el7.remi
            Available: php-common-5.4.16-46.el7.x86_64 (base)
                php-common(x86-64) = 5.4.16-46.el7
            Available: php-common-5.4.16-46.1.el7_7.x86_64 (updates)
                php-common(x86-64) = 5.4.16-46.1.el7_7
            Available: php-common-5.4.45-17.el7.remi.x86_64 (remi)
                php-common(x86-64) = 5.4.45-17.el7.remi
            Available: php-common-5.4.45-18.el7.remi.x86_64 (remi)
                php-common(x86-64) = 5.4.45-18.el7.remi
            Available: php-common-5.5.38-11.el7.remi.x86_64 (remi-php55)
                php-common(x86-64) = 5.5.38-11.el7.remi
            Available: php-common-5.5.38-12.el7.remi.x86_64 (remi-php55)
                php-common(x86-64) = 5.5.38-12.el7.remi
            Available: php-common-5.6.40-13.el7.remi.x86_64 (remi-php56)
                php-common(x86-64) = 5.6.40-13.el7.remi
            Available: php-common-5.6.40-14.el7.remi.x86_64 (remi-php56)
                php-common(x86-64) = 5.6.40-14.el7.remi
            Available: php-common-7.2.24-1.el7.remi.x86_64 (remi-php72)
                php-common(x86-64) = 7.2.24-1.el7.remi
            Available: php-common-7.2.25-1.el7.remi.x86_64 (remi-php72)
                php-common(x86-64) = 7.2.25-1.el7.remi
            Available: php-common-7.3.11-1.el7.remi.x86_64 (remi-php73)
                php-common(x86-64) = 7.3.11-1.el7.remi
            Available: php-common-7.3.12-1.el7.remi.x86_64 (remi-php73)
                php-common(x86-64) = 7.3.12-1.el7.remi
Error: Package: php-7.3.12-1.el7.remi.x86_64 (remi-php73)
            Need: php-cli(x86-64) = 7.3.12-1.el7.remi
            Installed: php-cli-7.4.0~RC3-5.el7.remi.x86_64 (@remi-modular)

2 个答案:

答案 0 :(得分:0)

特别是关于存储库,请参见cant install php-devel for php 7.4.1

您必须降级“所有” php软件包,所以简单的方法是使用“ yum distro-sync”。

还请注意,此RC3的旧问题已修复了很长时间,并且稳定版本7.4.0也不受影响。

答案 1 :(得分:0)

也许您可以尝试选择所需的版本,然后从php.net

下载php源代码。

编译并安装How To Compile And Install PHP Extensions From Source