我正在将一个意大利面条代码 PHP 应用程序重构到 Codeigniter 框架中,并且该应用程序的开发版本位于与生产数据库不同的服务器上。为了进行测试,我想从我托管开发版本的 EC2 实例到生产数据库建立一个 ssh 隧道。我已经通过 libssh2 和 phpseclib ( http://phpseclib.sourceforge.net/ ) 成功创建了与远程服务器的 ssh 连接。但是,建立 ssh 隧道后,我无法使用 codeigniter mysqli db 驱动程序连接到数据库。
每次尝试连接到数据库时,都会出现以下错误:
无法使用提供的设置连接到您的数据库服务器。文件名:core/MY_Controller.php 行号:6
MY_Controller 代码是:
1 <?php defined('BASEPATH') OR exit('No direct script access allowed');
2
3 class MY_Controller extends CI_Controller {
4
5 public function __construct() {
6 parent::__construct();
7 $this->auth = new stdClass;
8 $this->load->library('flexi_auth');
9 if (!$this->flexi_auth->is_logged_in()) {
10 header('Location: /login');
11 }
12 }
我已修改 mysqli 驱动程序以将隧道对象作为参数包含在 mysqli real_connect 函数中,如下所示,但无济于事。有谁知道我怎样才能使这项工作?
预先感谢您的任何帮助!
麦克风