Subversion Repositories qbpwcf-lib(archive)

Rev

Rev 553 | Rev 564 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 553 Rev 554
Line 42... Line 42...
42
	echo "--rootPath path where QBPWCF to put. Default is /usr/lib/".PHP_EOL;
42
	echo "--rootPath path where QBPWCF to put. Default is /usr/lib/".PHP_EOL;
43
	echo "--name folder name where QBPWCF to put inside. Default is qbpwcf".PHP_EOL;
43
	echo "--name folder name where QBPWCF to put inside. Default is qbpwcf".PHP_EOL;
44
	echo "--mode cp/link, default is link".PHP_EOL;
44
	echo "--mode cp/link, default is link".PHP_EOL;
45
	echo "\tcp means copy and overwrite to installation path".PHP_EOL;
45
	echo "\tcp means copy and overwrite to installation path".PHP_EOL;
46
	echo "\tlink means create a softlink from current path to installation path".PHP_EOL;
46
	echo "\tlink means create a softlink from current path to installation path".PHP_EOL;
-
 
47
	echo "--getIpUrl url, specify url to get www ip, default is https://ip.qbpwcf.org".PHP_EOL;
47
	echo "--ip ip address, specify self ip address, if need.".PHP_EOL;
48
	echo "--ip ip address, specify self ip address, if need.".PHP_EOL;
48
	echo "--dbAddr MariaDb service address, default is \"localhost\"".PHP_EOL;
49
	echo "--dbAddr MariaDb service address, default is \"localhost\"".PHP_EOL;
49
	echo "--dbAcct MariaDb service account, default is \"root\"".PHP_EOL;
50
	echo "--dbAcct MariaDb service account, default is \"root\"".PHP_EOL;
50
	echo "--dbPass MariaDb service password, default is output of uuid command".PHP_EOL;
51
	echo "--dbPass MariaDb service password, default is output of uuid command".PHP_EOL;
51
	echo "--dbName MariaDb service database name, default is test".PHP_EOL;
52
	echo "--dbName MariaDb service database name, default is test".PHP_EOL;
Line 179... Line 180...
179
$name="qbpwcf";
180
$name="qbpwcf";
180
 
181
 
181
#預設運作模式為 "link" 亦即建立軟連結
182
#預設運作模式為 "link" 亦即建立軟連結
182
$mode="link";
183
$mode="link";
183
 
184
 
-
 
185
#預設取得自己對外ip的服務網址
-
 
186
$getIpUrl="https://ip.qbpwcf.org";
-
 
187
 
184
#預設不指定自己的IP
188
#預設不指定自己的IP
185
$ip="";
189
$ip="";
186
 
190
 
187
#預設的資料庫連線帳號
191
#預設的資料庫連線帳號
188
$dbAcct="root";
192
$dbAcct="root";
Line 239... Line 243...
239
#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
243
#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
240
#$conf["canNotBeEmpty"]=array();
244
#$conf["canNotBeEmpty"]=array();
241
#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
245
#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
242
#$conf["canBeEmpty"]=array();
246
#$conf["canBeEmpty"]=array();
243
#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
247
#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
244
$conf["skipableVariableCanNotBeEmpty"]=array("rootPath","name","mode","ip","dbAcct","dbPass","dbName","dbAddr","dbPort","sshAddrAndPort","headless");
248
$conf["skipableVariableCanNotBeEmpty"]=array("rootPath","name","mode","getIpUrl","ip","dbAcct","dbPass","dbName","dbAddr","dbPort","sshAddrAndPort","headless");
245
#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
249
#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
246
$conf["skipableVariableName"]=array("rootPath","name","mode","ip","dbAcct","dbPass","dbName","dbAddr","dbPort","sshAddrAndPort","headless");
250
$conf["skipableVariableName"]=array("rootPath","name","mode","getIpUrl","ip","dbAcct","dbPass","dbName","dbAddr","dbPort","sshAddrAndPort","headless");
247
#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
251
#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
248
$conf["skipableVariableType"]=array("array","array","array","array","array","array","array","array","array","array","array");
252
$conf["skipableVariableType"]=array("array","array","array","array","array","array","array","array","array","array","array","array");
249
#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
253
#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
250
$conf["skipableVarDefaultValue"]=array(null,null,null,null);
254
$conf["skipableVarDefaultValue"]=array(null,null,null,null,null,null,null,null,null,null,null,null);
251
#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
255
#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
252
#$conf["disallowAllSkipableVarIsEmpty"]="";
256
#$conf["disallowAllSkipableVarIsEmpty"]="";
253
#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
257
#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
254
#$conf["disallowAllSkipableVarIsEmptyArray"]="";
258
#$conf["disallowAllSkipableVarIsEmptyArray"]="";
255
#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
259
#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
Line 314... Line 318...
314
		
318
		
315
			}#if end
319
			}#if end
316
	
320
	
317
		}#if end
321
		}#if end
318
		
322
		
-
 
323
	#如果有 getIpUrl 參數
-
 
324
	if(isset($parseArgu["content"]["getIpUrl"])){
-
 
325
	
-
 
326
		#如果有 getIpUrl 參數存在
-
 
327
		if(isset($parseArgu["content"]["getIpUrl"][0])){
-
 
328
		
-
 
329
			#更新 getIpUrl
-
 
330
			$getIpUrl=$parseArgu["content"]["getIpUrl"][0];
-
 
331
		
-
 
332
			}#if end
-
 
333
	
-
 
334
		}#if end
-
 
335
		
319
	#如果有 dbAcct 參數
336
	#如果有 dbAcct 參數
320
	if(isset($parseArgu["content"]["dbAcct"])){
337
	if(isset($parseArgu["content"]["dbAcct"])){
321
	
338
	
322
		#如果有 dbAcct 參數存在
339
		#如果有 dbAcct 參數存在
323
		if(isset($parseArgu["content"]["dbAcct"][0])){
340
		if(isset($parseArgu["content"]["dbAcct"][0])){
Line 613... Line 630...
613
#break point
630
#break point
614
var_dump($chmod);
631
var_dump($chmod);
615
exit;
632
exit;
616
*/
633
*/
617
	
634
	
-
 
635
#依照參數設定 $rootPath.$name."/etc/config.php
-
 
636
#函式說明:
-
 
637
#建立軟連結.
-
 
638
#回傳結果:
-
 
639
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
640
#$result["error"],錯誤訊息.
-
 
641
#$result["function"],當前執行的函數名稱.
-
 
642
#$result["content"],軟連結的資訊.
-
 
643
#必填參數:
-
 
644
#$conf["fileArgu"],字串,變數__FILE__的內容.
-
 
645
$conf["fileArgu"]=__FILE__;
-
 
646
#$conf["file"],字串,要更新的檔案位置與名稱.
-
 
647
$conf["file"]="qbpwcf/etc/config.php";
-
 
648
#可省略參數:
-
 
649
#$conf["overWriteWith"],字串陣列,要置換成什麼樣的內容,每個元素代表一行內容.
-
 
650
$conf["overWriteWith"][]="<?php";
-
 
651
$conf["overWriteWith"][]="";
-
 
652
$conf["overWriteWith"][]="#specify host ip";
-
 
653
$conf["overWriteWith"][]="\$myIp="."\"".$ip."\";";
-
 
654
$conf["overWriteWith"][]="";
-
 
655
$conf["overWriteWith"][]="#specify url to get self www ip";
-
 
656
$conf["overWriteWith"][]="\$getIpUrl=\"".$getIpUrl."\";";
-
 
657
$conf["overWriteWith"][]="";
-
 
658
$conf["overWriteWith"][]="?\>";
-
 
659
#$conf["replaceWith"],字串陣列,要將什麼內容置換成什麼內容.
-
 
660
#conf["replaceWith"]=array(array("ori content","new content"),array("ori content","new content"),...);
-
 
661
#$conf["addToTailWhenNoMatch"],字串,預設為"false"不做事;若為"true",則代表若使用 "replaceWith" 參數但沒有符合條件的內容出現,則新增到檔案的尾端.
-
 
662
#$conf["addToTailWhenNoMatch"]="false";
-
 
663
#$conf["addToTailBeforeThat"],字串,當 "replaceWith" 參數有使用,且 "addToTailWhenNoMatch" 為 "true" 時,若有使用該參數,則會從尾端尋找符合條件的行內容,然後將 沒有符合 "replaceWith" 條件的內容新增在此之前.
-
 
664
#$conf["addToTailBeforeThat"]="?\>";
-
 
665
#參考資料:
-
 
666
#無.
-
 
667
#備註:
-
 
668
#無.
-
 
669
$updateFile=fileAccess::updateFile($conf);
-
 
670
unset($conf);
-
 
671
 
618
#如果 ip 有指定
672
#如果執行失敗
619
if($ip!==""){
673
if($updateFile["status"]==="false"){
620
 
674
 
621
	#依照參數設定 $rootPath.$name."/etc/config.php
-
 
622
	#函式說明:
675
	#函式說明:
623
	#建立軟連結.
676
	#撰寫log
624
	#回傳結果:
677
	#回傳結果:
625
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
678
	#$result["status"],狀態,"true"或"false".
626
	#$result["error"],錯誤訊息.
679
	#$result["error"],錯誤訊息陣列.
627
	#$result["function"],當前執行的函數名稱.
680
	#$result["function"],當前函式的名稱.
628
	#$result["content"],軟連結的資訊.
681
	#$result["argu"],使用的參數.
629
	#必填參數:
682
	#必填參數:
630
	#$conf["fileArgu"],字串,變數__FILE__的內容.
683
	#$conf["path"],字串,log檔案的路徑與名稱.
-
 
684
	$conf["path"]=$logFile;
-
 
685
	#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
-
 
686
	$conf["content"]=$updateFile;
-
 
687
	#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
631
	$conf["fileArgu"]=__FILE__;
688
	$conf["fileArgu"]=__FILE__;
632
	#$conf["file"],字串,要更新的檔案位置與名稱.
-
 
633
	$conf["file"]="qbpwcf/etc/config.php";
-
 
634
	#可省略參數:
689
	#可省略參數:
635
	#$conf["overWriteWith"],字串陣列,要置換成什麼樣的內容,每個元素代表一行內容.
690
	#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
636
	$conf["overWriteWith"]=array("<?php","\$myIp="."\"".$ip."\";","?>");
-
 
637
	#$conf["replaceWith"],字串陣列,要將什麼內容置換成什麼內容.
-
 
638
	#conf["replaceWith"]=array(array("ori content","new content"),array("ori content","new content"),...);
-
 
639
	#$conf["addToTailWhenNoMatch"],字串,預設為"false"不做事;若為"true",則代表若使用 "replaceWith" 參數但沒有符合條件的內容出現,則新增到檔案的尾端.
-
 
640
	#$conf["addToTailWhenNoMatch"]="false";
691
	#$conf["rewrite"]="false";
641
	#$conf["addToTailBeforeThat"],字串,當 "replaceWith" 參數有使用,且 "addToTailWhenNoMatch" 為 "true" 時,若有使用該參數,則會從尾端尋找符合條件的行內容,然後將 沒有符合 "replaceWith" 條件的內容新增在此之前.
-
 
642
	#$conf["addToTailBeforeThat"]="?\>";
-
 
643
	#參考資料:
692
	#參考資料:
644
	#無.
693
	#無.
645
	#備註:
694
	#備註:
646
	#無.
695
	#無.
647
	$updateFile=fileAccess::updateFile($conf);
696
	$record=logs::record($conf);
648
	unset($conf);
-
 
649
 
697
	
650
	#如果執行失敗
698
	#如果執行失敗
651
	if($updateFile["status"]==="false"){
699
	if($record["status"]==="false"){
652
 
700
	
653
		#函式說明:
-
 
654
		#撰寫log
-
 
655
		#回傳結果:
701
		#印出結果
656
		#$result["status"],狀態,"true"或"false".
-
 
657
		#$result["error"],錯誤訊息陣列.
-
 
658
		#$result["function"],當前函式的名稱.
-
 
659
		#$result["argu"],使用的參數.
-
 
660
		#必填參數:
-
 
661
		#$conf["path"],字串,log檔案的路徑與名稱.
-
 
662
		$conf["path"]=$logFile;
-
 
663
		#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
-
 
664
		$conf["content"]=$updateFile;
-
 
665
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
666
		$conf["fileArgu"]=__FILE__;
-
 
667
		#可省略參數:
-
 
668
		#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
-
 
669
		#$conf["rewrite"]="false";
-
 
670
		#參考資料:
-
 
671
		#無.
-
 
672
		#備註:
-
 
673
		#無.
-
 
674
		$record=logs::record($conf);
702
		var_dump($record);
675
		
-
 
676
		#如果執行失敗
-
 
677
		if($record["status"]==="false"){
-
 
678
		
703
		
679
			#印出結果
-
 
680
			var_dump($record);
-
 
681
			
-
 
682
			}#if end
-
 
683
			
-
 
684
		#異常結束執行
-
 
685
		exit(1);
-
 
686
 
-
 
687
		}#if end
704
		}#if end
688
		
705
		
-
 
706
	#異常結束執行
-
 
707
	exit(1);
-
 
708
 
-
 
709
	}#if end
-
 
710
	
689
	#讓 "qbpwcf/etc/config.php" 可以被大家使用.
711
#讓 "qbpwcf/etc/config.php" 可以被大家使用.
-
 
712
#函式說明:
-
 
713
#使用 linux 的 chmod 指令來修改目標檔案或目錄的權限.
-
 
714
#回傳結果:
-
 
715
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
716
#$result["error"],錯誤訊息.
-
 
717
#$result["function"],當前執行的函式名稱.
-
 
718
#必填參數:
-
 
719
#$conf["mode"],字串,提示輸入的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
-
 
720
$conf["mode"]="777";
-
 
721
#$conf["target"],字串,需要變更權限的目標.
-
 
722
$conf["target"]="qbpwcf/etc/config.php";
-
 
723
#可省略參數:
-
 
724
#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
-
 
725
#$conf["recursive"]="";
-
 
726
#參考資料:
-
 
727
#無.
-
 
728
#備註:
-
 
729
#無.
-
 
730
$chmod=cmd::chmod($conf);
-
 
731
unset($conf);
-
 
732
 
-
 
733
#如果執行失敗
-
 
734
if($chmod["status"]==="false"){
-
 
735
 
690
	#函式說明:
736
	#函式說明:
691
	#使用 linux 的 chmod 指令來修改目標檔案或目錄的權限.
737
	#撰寫log
692
	#回傳結果:
738
	#回傳結果:
693
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
739
	#$result["status"],狀態,"true"或"false".
694
	#$result["error"],錯誤訊息.
740
	#$result["error"],錯誤訊息陣列.
695
	#$result["function"],當前執行的函式名稱.
741
	#$result["function"],當前函式的名稱.
-
 
742
	#$result["argu"],使用的參數.
696
	#必填參數:
743
	#必填參數:
-
 
744
	#$conf["path"],字串,log檔案的路徑與名稱.
-
 
745
	$conf["path"]=$logFile;
697
	#$conf["mode"],字串,提示輸入的文字描述,$conf["commentsArray"][$i]代表第($+1)行的描述.
746
	#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
698
	$conf["mode"]="777";
747
	$conf["content"]=$chmod;
699
	#$conf["target"],字串,需要變更權限的目標.
748
	#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
700
	$conf["target"]="qbpwcf/etc/config.php";
749
	$conf["fileArgu"]=__FILE__;
701
	#可省略參數:
750
	#可省略參數:
702
	#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
751
	#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
703
	#$conf["recursive"]="";
752
	#$conf["rewrite"]="false";
704
	#參考資料:
753
	#參考資料:
705
	#無.
754
	#無.
706
	#備註:
755
	#備註:
707
	#無.
756
	#無.
708
	$chmod=cmd::chmod($conf);
757
	$record=logs::record($conf);
709
	unset($conf);
-
 
710
 
758
	
711
	#如果執行失敗
759
	#如果執行失敗
712
	if($chmod["status"]==="false"){
760
	if($record["status"]==="false"){
713
 
761
	
714
		#函式說明:
-
 
715
		#撰寫log
-
 
716
		#回傳結果:
762
		#印出結果
717
		#$result["status"],狀態,"true"或"false".
-
 
718
		#$result["error"],錯誤訊息陣列.
-
 
719
		#$result["function"],當前函式的名稱.
-
 
720
		#$result["argu"],使用的參數.
-
 
721
		#必填參數:
-
 
722
		#$conf["path"],字串,log檔案的路徑與名稱.
-
 
723
		$conf["path"]=$logFile;
-
 
724
		#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
-
 
725
		$conf["content"]=$chmod;
-
 
726
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
727
		$conf["fileArgu"]=__FILE__;
-
 
728
		#可省略參數:
-
 
729
		#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
-
 
730
		#$conf["rewrite"]="false";
-
 
731
		#參考資料:
-
 
732
		#無.
-
 
733
		#備註:
-
 
734
		#無.
-
 
735
		$record=logs::record($conf);
763
		var_dump($record);
736
		
-
 
737
		#如果執行失敗
-
 
738
		if($record["status"]==="false"){
-
 
739
		
764
	
740
			#印出結果
765
		}#if end
741
			var_dump($record);
-
 
742
		
766
		
743
			}#if end
-
 
744
			
-
 
745
		#異常結束執行
767
	#異常結束執行
746
		exit(1);
768
	exit(1);
747
 
-
 
748
		}#if end	
-
 
749
 
769
 
750
	}#if end
770
	}#if end
751
 
771
 
752
#依照參數設定 "qbpwcf/usr/local/etc/backupDb.conf"
772
#依照參數設定 "qbpwcf/usr/local/etc/backupDb.conf"
753
#函式說明:
773
#函式說明: