在 Bluemix 中激活 PHP 个扩展

Activating PHP extensions in Bluemix

这是一个纯粹的 Bluemix 问题!

我已经在本地主机上顺利地获得了代码 运行,但是当我将它迁移到 Bluemix 时,我的数据库连接失败了。检查日志我发现问题 "Call to undefined function mysqli_init()" HTTP 响应 500。我发现扩展已被禁用以使其更小,并找到了一些关于它的详细信息:Buildpack options.

不幸的是,我已经尝试过了,但失败了。也许我误解了解决方案。

Screenshot

任何帮助将不胜感激。

编辑:

bgconfig --> bp-config 解决了 "undefined function error"

似乎添加了一些扩展,但不是全部。 "Fatal error:Class 'PDO' not found in /home/vcap/app/htdocs/db_config.php on line 15"

但是我在 options.json 中添加了 PDO 扩展。

我尝试添加 php.ini 覆盖 Screenshot

但是还是报同样的错误...

有关信息:db_config.php 上的第 15 行很简单:

$db = new PDO('mysql:host=us-cdbr-iron-east-02.cleardb.net;dbname=ad_dae231843a962ca', $username, $password);}

当然是在 try & catch 中。

有什么线索吗?

添加 options.json 文件的说明是正确的,从您的屏幕截图来看,该文件看起来是正确的。问题是你放置 options.json 文件的目录你调用了 .bgconfig 而它应该是 .bp-config

您能否更改目录名称,将应用程序重新推送到 Bluemix,它应该可以工作。

您发布的 options.json 文件是正确的。但是它在错误的目录中,它应该在名为 .bp-config/ 的文件夹中。重命名文件夹并将您的应用程序重新推送回 Bluemix。

也尝试将 pdo_mysql 添加到 .bp-config/options.json

我刚刚用 PDO 驱动程序针对数据库测试了一些代码,它运行良好。我的 .bp-config/options.json 文件在下面。

{
    "PHP_EXTENSIONS": ["pdo", "mysqli", "pdo_mysql", "mysql"]
}

我会用 MySQL 桌面客户端仔细检查您对数据库的访问。您的连接信息似乎有问题。

我有一个 example app 用于测试您与 PDO 的连接信息。

您的 composer.json 中是否定义了 mysql?

{
  "require": {
    "ext-mysqli": "*"
  }
}

https://github.com/IBM-Bluemix/php-mysql

您可以在 composer.json 文件中添加扩展名

{
  "require": {
    "ext-mysqli": "*",
    "ext-gd": "*"
  }
}