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

PHP Warning: PHP Startup: Unable to load dynamic library 'intl' undefined symbol: __cxa_throw_bad_array_new_length

我最近更新了 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)

请参阅 cant install php-devel for php 7.4.1,尤其是关于存储库的内容。

你必须降级 "all" php 包,所以简单的方法是使用 "yum distro-sync".

另请注意,RC3遇到的这个老问题已经修复很久了,7.4.0稳定版不受影响

也许您可以尝试选择您需要的版本并从 php.net

下载 php 源代码

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