#php #ubuntu #unicode
Подскажите, какие есть способы обновить ICU до актуальной версии на PHP7 на Ubuntu 14.04? Ставил php7 из ppa репозитория ondrej. Пытался обновить ICU через pecl, но для 7 версии этот способ не работает. Получается выход только один - компилировать PHP из исходников и указывать icu вручную? Подскажите, как это сделать?
Ответы
Ответ 1
После долгих поисков я пришел к выводу что проще всего скомпилировать intl из репозитория php. Ниже привожу мой пример для icu5.8.1 который ставится в /opt/icu5c на php-7.0.8. Для других версий нужно изменить пути к файлам соответсвенно. sudo su #Install ICU wget http://download.icu-project.org/files/icu4c/58.1/icu4c-58_1-src.tgz tar zxvf icu4c-58_1-src.tgz cd icu/source ./configure --prefix=/opt/icu5c && make && make install #Install intl.so from php source cd ../.. wget https://github.com/php/php-src/archive/php-7.0.8.tar.gz tar -xvf php-7.0.8.tar.gz cd php-src-php-7.0.8/ext/intl export LD_LIBRARY_PATH=/opt/icu5c/lib phpize ./configure --enable-intl --with-icu-dir=/opt/icu5c make make install #Activate extension (cli and fpm) echo "extension=intl.so" > /etc/php/7.0/mods-available/intl.ini ln -s /etc/php/7.0/mods-available/intl.ini /etc/php/7.0/cli/conf.d/20-intl.ini ln -s /etc/php/7.0/mods-available/intl.ini /etc/php/7.0/fpm/conf.d/20-intl.iniОтвет 2
Для тех у кого при команде make выдаются ошибки для ICU версии >=59.1, как у комментария @Arkemlar, мне помогли следующие флаги для компилятора make CXXFLAGS="-g -std=c++11" Комментом не смог добавить, из за репутации инфу
Комментариев нет:
Отправить комментарий