簡體   English   中英

如何通過SSH隧道將PHP / Codeigniter應用程序連接到遠程MySQL數據庫?

[英]How can I connect a PHP/Codeigniter application to a remote MySQL database via SSH tunnel?

我將意大利細面條代碼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函數中,如下所示,但無濟於事。 有誰知道我該怎么做?

預先感謝您的任何幫助!

麥克風

我認為我的第一個嘗試是創建一個像這樣的ssh隧道:

my_dev_ec2# ssh -L 3306:localhost:3306 myuser@my_production_ec2

然后配置mysqli db以連接到localhost ,就像它在生產實例中一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM