如何在Heroku上安装php的gettext扩展?

Jes*_*iro 4 php heroku gettext composer-php

我无法gettext在Heroku plataform上安装扩展程序.关于开发环境的gettext工作,但不是关于Heroku.

我的结论:

/app
    /web
        .user.ini
        gettext.php
        index.php
    composer.json
    composer.lock
    Procfile
    README.md
Run Code Online (Sandbox Code Playgroud)

.user.ini

extension = gettext.so
Run Code Online (Sandbox Code Playgroud)

composer.json:

{
   "require": {
      "php": "~5.6.4",
      "slim/slim": "~2.6",
      "nategood/httpful": "*",
      "gettext": "*"
    },
    "require-dev": {
      "heroku/heroku-buildpack-php": "*"
   }
}
Run Code Online (Sandbox Code Playgroud)

代码gettext.php:

if (!function_exists("gettext")){ echo "gettext is not installed\n";}
else{echo "gettext is supported\n";}
Run Code Online (Sandbox Code Playgroud)

返回:

gettext is not installed
Run Code Online (Sandbox Code Playgroud)

当我尝试heroku run bash之后composer update:

Problem 1
   - The requested PHP extension ext-gettext * is missing from your system.
Run Code Online (Sandbox Code Playgroud)

Ste*_*all 6

首先,您需要使用ext-前缀来应用扩展.

{
   "require": {
      "ext-gettext": "*"
    },
    "require-dev": {
      "heroku/heroku-buildpack-php": "*"
   }
}
Run Code Online (Sandbox Code Playgroud)

composer update

如果仍然出现错误,则表示编写者无法更新gettext的供应商文件.我有同样的问题,并认为这是一个作曲家的问题.

对于真正的奇偶校验,您应该尝试获取所需的lib,但您可以忽略缺少本地gettext:

composer update --ignore-platform-reqs
Run Code Online (Sandbox Code Playgroud)

然后,Composer将无错误地运行,然后您可以将其推送到Heroku.然后Heroku将使用gettext构建PHP.

  • 谢谢!问题是 `--ignore-platform-reqs` 因为我是 OSX 用户。 (2认同)