在Bluemix中激活PHP扩展

4

这是一个纯粹的Bluemix问题!

我在本地计算机上成功运行了代码,但是当我将其迁移到Bluemix时,我的DB连接失败了。检查日志,我发现问题是“Call to undefined function mysqli_init()”HTTP响应500。我已经发现为了使它更小而禁用了扩展程序,并找到了一些有关它的详细信息:Buildpack options

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

Screenshot

任何帮助都将不胜感激。

编辑:

bgconfig -> bp-config解决了“未定义函数错误”

似乎添加了一些扩展名,但并不是全部。“致命错误:在/home/vcap/app/htdocs/db_config.php的第15行中没有找到类'PDO'”

但我已经在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中。

有什么线索吗?

4个回答

6
options.json文件是正确的,但是它放错了目录,应该放在一个名为.bp-config/的文件夹中。请将文件夹改名并重新推送您的应用程序到Bluemix。
此外,请尝试将pdo_mysql添加到.bp-config/options.json中。
我刚刚使用PDO驱动程序对数据库进行了一些代码测试,结果运行良好。我的.bp-config/options.json文件如下。
{
    "PHP_EXTENSIONS": ["pdo", "mysqli", "pdo_mysql", "mysql"]
}

我建议您使用MySQL桌面客户端仔细检查您对数据库的访问。看起来这是一个连接信息的问题。

我有一个用于测试PDO连接信息的示例应用程序


解决了我的“未定义函数”问题,但现在我的日志中出现了这个。任何线索为什么会给我那么多错误? 链接 - FrenchMassacre
@FrenchMassacre 试着在 .bp-config/options.json 中添加 pdo_mysql - Jeff Sloyer
@FrenchMassacre,你不需要 php/php.ini 文件,请将其删除。 - Jeff Sloyer
@FrenchMassacre,你能否创建一个包含 phpinfo() 的页面? - Jeff Sloyer
1
非常感谢您在答案中提供的一个简单示例。谢谢! - Ankit Shubham
显示剩余7条评论

0

添加 options.json 文件的指令是正确的,从您的截图来看,该文件似乎是正确的。问题在于您放置 options.json 文件的目录名为 .bgconfig,而应该是 .bp-config

您能否更改目录名称,将应用程序重新推送到 Bluemix 并使其正常工作。


-1

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

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

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接