2013年6月10日 星期一

微框架 AmyPHP 的安裝程式調整

為了能讓我的微框架 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

沒有留言 :