Codeigniter应用程序在PCF中获取mysqli驱动程序未找到错误

问题描述

我正在尝试在PCF中部署Codeigniter应用程序。 CF Push成功了,但是出现了以下错误

Type: Error

Message: Call to undefined function MysqLi_init()

Filename: /home/vcap/app/htdocs/system/database/drivers/MysqLi/MysqLi_driver.PHP

Line Number: 135

Backtrace:

File: /home/vcap/app/htdocs/application/controllers/Dashboard.PHP
Line: 8
Function: __construct

File: /home/vcap/app/htdocs/index.PHP
Line: 315
Function: require_once

有人能在启用MysqLi驱动程序的情况下部署PHP应用程序吗?

解决方法

该扩展程序未加载。默认情况下,PHP Buildpack不会加载任何扩展。

Cloud Foundry PHP Buildpack将确保已加载所需的扩展,但您需要告诉它加载它们。有两个选项可以告诉buildpack加载哪些扩展:

  1. 作曲家。如果为you require your PHP extensions,则buildpack将看到并自动启用它们。例如:from my_top_module.my_sub_module import module_a class Module_B_Class(): def run(self): module_a.my_func() module_c.my_func2()

  2. Buildpack config file。创建"require": "ext-mysqli",其中.bp-config/php/php.ini.d/FILE-NAME.ini是您想要的任何东西,我通常将其称为FILE-NAME。该文件由PHP读取,因此您可以添加任何有效的php.ini配置,但出于我们的目的,您将添加extensions.ini(或要加载的任何扩展名)。

从1或2进行更改后,只需再次extension=mysqli.so您的应用即可。该构建包将运行,并将启用您请求的扩展。