如何安装/启用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 回答
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
的习惯,除非您知道需要更新某些依赖项 . )