Как установить Sylius на Bluehost или любой другой сервер, на котором установлена ​​старая версия ICU?

Я пытался установить Sylius на свой сервер Bluehost, который работает на виртуальном хостинге, и хотя у меня есть доступ по SSH, он несколько ограничен. Он не поставлялся с расширением php intl, а версия ICU на нем — 4.2, которая выдает ошибки при установке Sylius, потому что ему нужна более новая версия.


person Scotty Waggoner    schedule 03.07.2013    source источник


Ответы (2)


Я попробовал это при чистой установке Sylius на моем сервере Bluehost, и все заработало.

Ранее я установил расширение intl на свой сервер BlueHost после https://my.bluehost.com/cgi/help/534

Расширение intl не требуется. Смотри ниже. (Я пытался установить его, прежде чем понял, что он мне не нужен)

После установки расширения phpinfo() сказал, что версия ICU 4.2.

Примечание: на BlueHost вы должны использовать php-cli вместо php для запуска php-скриптов из командной строки.

Чтобы установить Sylius, я запустил:

wget http://getcomposer.org/composer.phar
php-cli composer.phar create-project sylius/sylius -s dev

При запуске create-project я получил ошибку:

Your requirements could not be resolved to an installable set of packages.

Problem 1
- Installation request for symfony/icu 1.2.x-dev -> satisfiable by symfony/icu[1.2.x-dev].
- symfony/icu 1.2.x-dev requires lib-icu >=4.4 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
Problem 2
- symfony/icu 1.2.x-dev requires lib-icu >=4.4 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
- symfony/intl 2.3.x-dev requires symfony/icu >=1.0-RC,<2.0 -> satisfiable by symfony/icu[1.2.x-dev].
- Installation request for symfony/intl 2.3.x-dev -> satisfiable by symfony/intl[2.3.x-dev].

Затем я использовал cd sylius для перехода в новый каталог, созданный в результате частичной установки проекта.

Из раздела на http://symfony.com/doc/current/components/intl.html о ICU и проблемах с развертыванием Я добавил "symfony/icu": "1.1.*", (или добавил "symfony/icu": "1.0.*",, если у вас не установлено расширение intl) в раздел require файла composer.json

Затем я запустил php-cli composer.phar update, чтобы получить все зависимости, что занимает некоторое время (убедитесь, что вы правильно ссылаетесь на composer.phar, поскольку он был загружен в родительский каталог)

После того, как все пакеты были загружены, он запросил параметры конфигурации, такие как информация о базе данных.

Потом я побежал php-cli app/console sylius:install

Я запустил php-cli app/console doctrine:fixtures:load и получил ошибку:

[RuntimeException]
The country resource bundle could not be loaded for locale "en"

Из информации на https://github.com/symfony/symfony/issues/5279#issuecomment-12477297 и https://github.com/kbsali/sf2-icu я побежал

wget https://github.com/kbsali/sf2-icu/tarball/master -O sf2-icu.tgz
tar xzvf sf2-icu.tgz
mv kbsali-sf2-icu-XXXX/4.2 vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/data/
rm -rf kbsali-sf2-icu-XXXX sf2-icu.tgz

а потом отредактировал vendor/symfony/symfony/src/Symfony/Component/Locale/Locale.php и изменил

const ICU_DATA_VERSION = '49';

to

const ICU_DATA_VERSION = '4.2';

Я снова запустил php-cli app/console doctrine:fixtures:load и загрузил все исправления данных, пока LoadOrdersData не завершился ошибкой:

[ErrorException]
Warning: array_keys() expects parameter 1 to be array, object given in /home5/ozzieorc/public_html/sylius_clean/sylius/vendor/fzaninotto/faker/src/Faker/Provider/Base.php line 127

Затем внесли изменения, описанные в https://github.com/Sylius/Sylius/pull/216/files - надеюсь, это станет частью ветки master и не нужно будет изменять ее при установке sylius.

и побежал php-cli app/console doctrine:fixtures:load в третий раз

Я добавил свой IP-адрес в массив действительных IP-адресов в web/app_dev.php, чтобы я мог удаленно запускать app_dev.php с серверов BlueHost.

В своем браузере вы можете перейти на web/app_dev.php и войти в административную область с помощью

Username: [email protected]
Password: sylius

как предлагает страница

Надеюсь, это поможет всем, у кого проблемы с установкой Sylius. Мне потребовалось некоторое время, чтобы понять это. Дайте мне знать, если есть какие-либо лучшие способы сделать это.

person Scotty Waggoner    schedule 03.07.2013

Попробуй это:

apt-get install php5-intl
person Dominik    schedule 27.11.2013