Я пытался установить Sylius на свой сервер Bluehost, который работает на виртуальном хостинге, и хотя у меня есть доступ по SSH, он несколько ограничен. Он не поставлялся с расширением php intl, а версия ICU на нем — 4.2, которая выдает ошибки при установке Sylius, потому что ему нужна более новая версия.
Как установить Sylius на Bluehost или любой другой сервер, на котором установлена старая версия ICU?
Ответы (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. Мне потребовалось некоторое время, чтобы понять это. Дайте мне знать, если есть какие-либо лучшие способы сделать это.
Попробуй это:
apt-get install php5-intl