Prestashop 1.7-为避免国际化数据不一致,请升级symfony / intl组件

时间:2019-06-02 09:17:17

标签: symfony prestashop-1.7

Prestashop 1.7在安装过程中发出以下警告: To avoid internationalization data inconsistencies upgrade the symfony/intl component.

如何在Ubuntu Ubuntu 16.04上升级symfony/intl

尝试:

composer update在prestashop文件夹中,收到Composer could not find a composer.json file

当前我忽略了此警告,可以忽略它吗,我应该期待什么副作用?

2 个答案:

答案 0 :(得分:1)

Symfony依靠ICU(Unicode国际组件),理想情况下,您希望您的版本与它们所需的版本匹配。

  1. 首先,check what is the latest version of the ICU可用,截至2019年6月,此版本为v64.2。

  2. 检查php -i当前正在运行的ICU版本,并在intl部分中查找要运行的ICU版本。

  3. 最后,根据PrestaShop版本检查所需的ICU版本:

    1.7.5.x - ICU v62.1 1.7.4.x - ICU v62.1 1.7.3.x - ICU v60.1 1.7.2.x - ICU v59.1 1.7.1.x - ICU v58.2 1.7.0.x - ICU v57.1

好吧,确定了这一点之后,让我们将您的ICU升级到正确的版本,即与您的PrestaShop版本匹配的版本。

查找当前正在运行的php-intl软件包的版本:

sudo dpkg --get-selections | grep -v deinstall | grep '\-intl'

在我的情况下为php7.2-intl,将其删除:

sudo apt-get remove php7.2-intl

安装phpize:

sudo apt install php7.2-dev

接下来,下载此脚本以帮助我们并设置正确的权限:

sudo wget https://gist.githubusercontent.com/siffash/76676186de0ffc6eb6cbf89abc7a5e2f/raw/e45838b09ffa0700c6134f1b2da69884773aadc9/icu-install.sh
sudo chmod +x ./icu-install.sh

检查可用版本:

sudo ./icu-install.sh versions

下载并安装您感兴趣的版本(本例中为62.1),此步骤可能需要一段时间(〜10-15分钟),具体取决于您的服务器功能:

sudo ./icu-install.sh install v62.1

成功完成后,让我们编辑20-intl.ini:

sudo touch /etc/php/7.2/cli/conf.d/20-intl.ini && sudo bash -c 'echo "extension=intl.so" > /etc/php/7.2/cli/conf.d/20-intl.ini' && sudo touch /etc/php/7.2/apache2/conf.d/20-intl.ini && sudo bash -c 'echo "extension=intl.so" > /etc/php/7.2/apache2/conf.d/20-intl.ini'

重新启动Apache2:

/etc/init.d/apache2 restart

我们通过删除安装文件夹和phpize进行清理:

sudo apt-get purge --auto-remove php7.2-dev
rm -rf /tmp/icu-install

最后,让我们使用php -i再次检查当前的ICU版本。

现在您应该准备好了,希望对您有所帮助!

答案 1 :(得分:0)

我可以通过运行以下命令安装正确的版本:

curl -sS -o /tmp/icu.tar.gz -L http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz && tar -zxf /tmp/icu.tar.gz -C /tmp && cd /tmp/icu/source && ./configure --prefix=/usr/local && make && sudo make install

然后

sudo pecl install intl

但是,我仍然看到错误消息:

  

为避免国际化数据不一致,请升级   symfony / intl组件。