1

我一直在尝试在共享主机上运行的 Bluehost 服务器上安装 Sylius,虽然我确实有 SSH 访问权限,但它有些受限。它没有附带 php intl 扩展,它的 ICU 版本是 4.2,安装 Sylius 时会产生错误,因为它需要更新的版本。

4

2 回答 2

3

我在我的 Bluehost 服务器上全新安装了 Sylius 并让它工作。

我之前在https://my.bluehost.com/cgi/help/534intl之后在我的 BlueHost 服务器上安装了扩展

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安装扩展,则添加)到 composer.json 的 require 部分

然后我跑去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-12477297https://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';

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中描述的更改- 希望这成为主分支的一部分,并且在安装 sylius 时不必更改

php-cli app/console doctrine:fixtures:load了第三次

我将我的 IP 添加到有效 IP 地址的数组中,web/app_dev.php这样我就可以从 BlueHost 服务器远程运行 app_dev.php

在您的浏览器中,您可以使用以下命令访问web/app_dev.php并登录到管理区域

Username: sylius@example.com
Password: sylius

正如页面所示

希望这可以帮助任何在安装 Sylius 时遇到问题的人。我花了一段时间才弄清楚。让我知道是否有更好的方法来解决这个问题。

于 2013-07-03T22:13:45.263 回答
0

试试这个:

apt-get install php5-intl
于 2013-11-27T22:27:37.377 回答