Prestashop 1.7 - Во избежание несоответствия данных интернационализации обновите компонент symfony / intl - PullRequest
0 голосов
/ 02 июня 2019

Prestashop 1.7 выдает следующее предупреждение во время установки: To avoid internationalization data inconsistencies upgrade the symfony/intl component.

Как обновить symfony/intl в Ubuntu Ubuntu 16.04?

Пробовал:

composer update inпапка prestashop, полученная Composer could not find a composer.json file

В настоящее время я проигнорировал это предупреждение, безопасно ли его игнорировать, каких побочных эффектов следует ожидать?

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Symfony использует ICU (международные компоненты для Unicode), и в идеале вы хотите, чтобы ваша версия соответствовала требуемой версии.

  1. Сначала проверьте, какая версия последняяиз ICU доступно, начиная с июня 2019 года, это v64.2.

  2. Проверьте, какая версия ICU вы используете в настоящее время с php -i и найдите свойintl раздел, где вы найдете версию ICU, которую вы используете.

  3. Наконец, проверьте, какая версия ICU вам понадобится, в зависимости от версии PrestaShop:

    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

Затем загрузите этот скрипт, который поможет нам, и настройтеght permissions:

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

Наконец, давайте еще раз проверим нашу текущую версию ICU с php -i.

Теперь вы должны быть всепоставил, надеюсь это поможет!

0 голосов
/ 12 июня 2019

Мне удалось установить правильную версию, запустив эту команду:

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.

...