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

How to install gettext extension for php on Heroku?

我无法在 Heroku 平台上安装 gettext 扩展。在开发环境中 gettext 有效,但在 Heroku 中无效。

我的结构:

/app
    /web
        .user.ini
        gettext.php
        index.php
    composer.json
    composer.lock
    Procfile
    README.md

.user.ini

extension = gettext.so

composer.json:

{
   "require": {
      "php": "~5.6.4",
      "slim/slim": "~2.6",
      "nategood/httpful": "*",
      "gettext": "*"
    },
    "require-dev": {
      "heroku/heroku-buildpack-php": "*"
   }
}

和代码gettext.php:

if (!function_exists("gettext")){ echo "gettext is not installed\n";}
else{echo "gettext is supported\n";}

Return:

gettext is not installed

当我尝试 heroku run bashcomposer update 之后:

Problem 1
   - The requested PHP extension ext-gettext * is missing from your system.

首先你需要使用ext-前缀来应用扩展。

{
   "require": {
      "ext-gettext": "*"
    },
    "require-dev": {
      "heroku/heroku-buildpack-php": "*"
   }
}

运行 composer update

如果您仍然遇到错误,则表示 composer 无法为 gettext 更新您的供应商文件。我有同样的问题,认为这是作曲家的问题。

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

composer update --ignore-platform-reqs

Composer 将 运行 没有错误,然后您可以将其推送到 Heroku。 然后 Heroku 将构建 PHP 并启用 gettext。