首页 文章

如何在Heroku上安装mbstring Extension?

提问于
浏览
2

如何安装/启用PHP扩展mbstring?

Heroku在其文档中表示它默认是共享的,并且应该在Composer包需要它时启用 . 我尝试在composer.json文件中添加它,但没有任何改变 .

这是我的项目的composer.json:

{
    "require": {
        "fabpot/goutte": "^3.2",
        "guzzlehttp/guzzle": "^6.2",
        "paquettg/php-html-parser": "^1.7",
        "ext-mbstring": "*"
    }
}

添加最后一个依赖项后,我跑了:

heroku run composer update

这是我收到的错误消息:

  • 系统中缺少所请求的PHP扩展名ext-mbstring * . 安装或启用PHP的mbstring扩展 .

谢谢

1 回答

  • 5

    Heroku的文件系统is ephemeral . 您的Dyno旋转后对它所做的任何更改都可能随时丢失 . 这发生at least once per day, and possibly much more frequently .

    另外, composer update 是我建议不要在服务器上运行的东西 . 此命令将安装适合 composer.json 中的每个库的最新可用版本(如果只有 update 特定库,则为特定库) . 如果您在 composer.json 中要求 ~1.2 ,您可能会在开发计算机上获得 1.2.1 ,但 生产环境 中的 1.2.9 . 这可能会导致一些棘手的错误 .

    composer install 命令安装 composer.lock 文件中定义的确切版本 . 在服务器上运行要安全得多,但它确实意味着您必须在本地更新锁定文件并将其推送到服务器 .

    出于这两个原因,您应该在本地运行 composer update . 这将更新 composer.lock ,然后应该提交并推送到Heroku . Heroku将运行 composer install ,你应该全部设置 .

    (或者,您也应该能够运行 composer update 'ext-mbstring' 以保留其余的依赖项 . 请小心 composer update ,并尝试养成使用 composer install 的习惯,除非您知道需要更新某些依赖项 . )

相关问题