Subversion Repositories php-qbpwcf

Rev

Rev 83 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#!/usr/bin/php
<?php

/*

本程式說明:

將設定檔變數 $config 寫入到檔案裡面.

*/

#使用命名空間qbpwcf
namespace qbpwcf;

#初始化輸出
$output=array();

#取得 lib path
exec("php -f ".escapeshellarg(pathinfo(__FILE__)["dirname"]."/../../../../../usr/bin/libexec/folderOfUsrLib.php"),$output,$status);

#如果執行失敗
if($status!==0){

        #debug
        var_dump(__LINE__,$output);

        #結束執行,回傳shell 1.
        exit(1);

        }#if end

#儲存lib path
$folderOfUsrLib=$output[0];

#初始化輸出
$output=array();

#以該檔案的實際位置的 lib path 為 include path 首位
exec("cd ".pathinfo(__FILE__)["dirname"]."/../../../../../usr/".$folderOfUsrLib."/qbpwcf;pwd;",$output,$status);
set_include_path($output[0].PATH_SEPARATOR.get_include_path());

#匯入套件
require_once("allInOneForCmd.php");

#建議的log位置
$logFile=$_SERVER["DOCUMENT_ROOT"].$_SERVER["PHP_SELF"].".log";

$configFile=".hta_config:server";

#初始化設定值
$config=array();

#設定檔的名稱
$name="devel.qbpwcf.org";

#初始化儲存domain name的陣列
$domainNames=array();
$domainNames[]="qbpwcf.org";
$domainNames[]=$name;
$domainNames[]="dns.qbpwcf.org";
$domainNames[]="mail.qbpwcf.org";

#設置 ip 的反解析
$config["193.42.43.36"]["dig -x"]=$domainNames;

#給予設定檔好記的名稱
$config[$name]=&$config["193.42.43.36"];

#設定檔的名稱
$name="contabo.qbpwcf.org";

#初始化儲存domain name的陣列
$domainNames=array();
$domainNames[]="contabo.qbpwcf.org";
$domainNames[]="backup.qbpwcf.org";
$domainNames[]="config.qbpwcf.org";
$domainNames[]="ip.qbpwcf.org";
$domainNames[]="lib.qbpwcf.org";
$domainNames[]="nextcloud.qbpwcf.org";

#設置 ip 的反解析
$config["149.102.158.38"]["dig -x"]=$domainNames;

#給予設定檔好記的名稱
$config[$name]=&$config["149.102.158.38"];

#函式說明:
#建立供 apache 讀取的設定檔案.
#回傳結果:
#$result["status"],執行是否正常,"true"為正常,"false"為不正常.
#$result["error"],錯誤訊息陣列.
#$result["function"],當前執行的函數名稱.
#$result["content"],定義對應的內容.
#必填參數:
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
$conf["fileArgu"]=__FILE__;
#$conf["configFileAddr"],字串,定義檔位置與名稱
$conf["configFileAddr"]=$configFile;
#$conf["content"],陣列,要儲存的key -> value 陣列.
$conf["content"]=$config;
#可省略參數:
#$conf["web"],是要取得網路上的檔案則為"true";反之則為"false",預設為後者.
#$conf["web"]="false";
#參考資料:
#無.
#備註:
#檔案內容的格式為多行json編碼然後url編碼然後base64編碼後的內容,每行代表一組定義.每組定義的json格式為php多維陣列所組成.
$create=config::create($conf);
unset($conf);

#如果執行失敗
if($create["status"]==="false"){

        #函式說明:
        #撰寫log
        #回傳結果:
        #$result["status"],狀態,"true"或"false".
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前函式的名稱.
        #$result["argu"],使用的參數.
        #必填參數:
        #$conf["path"],字串,log檔案的路徑與名稱.
        $conf["path"]=$logFile;
        #$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
        $conf["content"]=$create;
        #$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
        $conf["fileArgu"]=__FILE__;
        #可省略參數:
        #$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
        #$conf["rewrite"]="false";
        #參考資料:
        #無.
        #備註:
        #無.
        $record=logs::record($conf);
        unset($conf);
        
        #結束執行
        exit(1);
        
        }#if end

?>