為了能讓我的微框架 AmyPHP 能夠同時在 Appfog 雲端主機以及一般虛擬主機上均能順利安裝, 我把 index.php 上的安裝部分做了如下修改, 若是 Appfog 主機, 那麼就可以讀到環境變數CAP_SERVICES 解碼出來的陣列, 這樣就從該陣列中讀取 MySQL 資料庫的連線參數. 如果是一般虛擬主機, 就直接從 dbsettings.php 檔讀取. 程式碼如下 :
if (!$installed) { //系統尚未安裝, 先安裝系統
//先判斷是否為 Appfog 雲端虛擬主機以讀取 MySQL 連線參數
$services_json=json_decode(getenv("VCAP_SERVICES"),true);
if (is_array($services_json)) { //appfog 雲端虛擬主機
$mysql_config=$services_json["mysql-5.1"][0]["credentials"];
$username=$mysql_config["username"];
$password=$mysql_config["password"];
$hostname=$mysql_config["hostname"];
$port=$mysql_config["port"];
$db=$mysql_config["name"];
$address="$hostname:$port";
} //end of if
else { //一般 PHP+MySQL 虛擬主機 (從 dbsettings.php 檔讀取)
$str=read_file("dbsettings.php");
$username=return_between($str,"'MYSQL_USERNAME','","')","EXCL");
$password=return_between($str,"'MYSQL_PASSWORD','","')","EXCL");
$address=return_between($str,"'MYSQL_ADDRESS','","')","EXCL");
$db=return_between($str,"'DATABASE','","')","EXCL");
} //end of else
} //end of if
沒有留言:
張貼留言