Rev 83 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/usr/bin/php<?php/*本程式說明:將設定檔變數 $config 寫入到檔案裡面.*/#使用命名空間qbpwcfnamespace qbpwcf;#初始化輸出$output=array();#取得 lib pathexec("php -f ".escapeshellarg(pathinfo(__FILE__)["dirname"]."/../../../../../usr/bin/libexec/folderOfUsrLib.php"),$output,$status);#如果執行失敗if($status!==0){#debugvar_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?>