带有 PHP 7.1 的 Symfony 3 的给定 ICU 版本的 intl 扩展

Posted

技术标签:

【中文标题】带有 PHP 7.1 的 Symfony 3 的给定 ICU 版本的 intl 扩展【英文标题】:intl extension with given ICU version for Symfony 3 with PHP 7.1 【发布时间】:2017-08-19 19:08:44 【问题描述】:

我已经安装了 Symfony 3.2.6。当我在浏览器中检查 /config.php 时,我收到一条消息:

您系统上安装的国际 ICU 版本已过时 (57.1),并且与 Symfony (58.2) 捆绑的 ICU 数据不匹配 获取最新的国际化数据升级ICU系统包和国际PHP扩展。

首先尝试更新 ICU 扩展,就像这里描述的那样 Update ICU extension within xampp? 我从 PECL http://site.icu-project.org/download/58 下载了合适的包并复制到 apache/bin 文件夹,重新启动了 apache,但 PHP 加载了旧的 57.1 ICU 版本。

然后我尝试更新 php_intl.dll ftom https://pecl.php.net/package/intl 但我没有找到任何适合 php 7 的包。

在 php 7 中是否有合适的方法来升级 ICU 库?

【问题讨论】:

***.com/a/43014825/2359679 这是一个令人讨厌的问题。当前所有 php 7 版本都使用 ICU 版本 57.x。我认为更改 dll 文件并没有什么不同,因为引用是 php_intl.dll 的一部分。 【参考方案1】:

这是一个非常讨厌的问题。如果没有更新的兼容 PHP 版本,并且由于更新 intl 扩展并没有起到作用,我猜你必须使用自定义 ICU 版本编译 PHP:

ICU 版本可以在这里查看:http://source.icu-project.org/repos/icu/icu/tags/

Check out
cd source
./configure --prefix=$(pwd)/../build (sets a custom install dir)
make (build)
make install (install to "build" dir)

现在 ICU 已经构建好了,你需要运行 PHP 的“配置”脚本并将其指向构建目录:

./configure ... --enable-intl --with-icu-dir=/path/to/icu/build

【讨论】:

以上是关于带有 PHP 7.1 的 Symfony 3 的给定 ICU 版本的 intl 扩展的主要内容,如果未能解决你的问题,请参考以下文章

网页下带有 xampp v3.2.1 文件的 Symfony2.3 没有响应

[macOS] PHP双版本,5.6跟7.1

Laravel 安装程序 v1.4.1 与 PHP 7.1 包不兼容?

如何将 PHP 代码分析器用于 Symfony CLI 脚本? [关闭]

免费办公室转换为pdf在带有IIS 8的symfony 1.4中不起作用

Symfony 随机崩溃 - DebugClassLoader.php