十二生肖的红蓝绿波,十二生肖红蓝绿肖表,2019年正版新粤彩图,2019年一肖中平特陈教授,一线图库管家婆彩图168,新报跑狗玄机图怎么看图,香港平特一肖2019年,主博一肖一码王中王,reu6hcom彩库宝典app,香港正牌马会生活幽默玄机等多元化来满足市场不同客户需求" /> 十二生肖的红蓝绿波,十二生肖红蓝绿肖表,2019年正版新粤彩图,2019年一肖中平特陈教授,一线图库管家婆彩图168,新报跑狗玄机图怎么看图,香港平特一肖2019年,主博一肖一码王中王,reu6hcom彩库宝典app,香港正牌马会生活幽默玄机" />

AMH 使用與開發

AMH使用幫助與軟件開發文檔
AMH 國内領先的雲主機面闆
  • AMH 使用幫助入門
  • AMH 軟件開發文檔 高級

 

AMH安裝說明

AMH支持極速與定制編譯兩種方式安裝。

極速安裝版本:AMH官網對相應的系統編譯集成的版本,用戶可免除編譯快速完成AMH安裝。

定制編譯版本:用戶可自由定制選擇相應服務器軟件組件版本進行編譯安裝,安裝時間相對需要多些,适合對默認組件版本有要求的用戶。

詳細安裝教程請查看:https://zhongte94626.cn/install.htm

安裝AMH時,如有遇到無法解析zhongte94626.cn域名問題,可看安裝頁面的小提示更換系統的DNS,

國内個别服務器[CN]内網鏡像不通的情況可以選擇[JP]節點安裝使用。

 

AMH使用幫助

AMH所有軟件用戶都可按需下載安裝,在面闆上方的導航可對軟件進行安裝管理等操作。

點擊導航菜單的軟件小圖标或面闆導航可進入相應分類的軟件列表,

在軟件列表可查看各個軟件介紹說明、運行狀況及CPU、内存使用情況,卸載、删除軟件操作同樣在列表完成。

 

AMH軟件類型分為:桌面、服務器軟件、環境軟件、應用軟件類别。

桌面:是AMH面闆首頁面,可以直觀查看服務器各項資源使用情況,包括統計報表等。

服務器軟件:包括web服務器軟件nginx/apache,數據庫軟件、腳本語言軟件等,用戶可按需安裝多套服務器軟件運行。

環境軟件:可使用不同服務器軟件組建成特定運行環境的軟件,常用有LNMP環境,即由服務器軟件Nginx+MySQL+PHP組合。另外還有LAMP、LNGX、LNMH等。

應用軟件:應用軟件通常是用于環境軟件的擴充,擴展環境部件、增加對系統管理等功能。

總體為,服務器軟件為環境軟件提供基礎層服務,同時應用軟件又可擴展環境軟件加強對系統管理。

 

常用軟件安裝

桌面程序可全部安裝,服務器軟件可按需安裝,需要nginx即使用nginx、需要apache即安裝apache。

使用nginx用戶環境軟件即安裝lnmp,apache用戶即使用lamp,需要部署cdn緩存加速節點用戶可以使用lngx等,

一般建站推薦使用lnmp環境軟件。

數據庫管理方面可以使用madmin與phpmyadmin,

另外,需要使用FTP的用戶可以安裝pure-ftp與amftp。

應用軟件方面需要僞靜态管理可以安裝amrewrite,需要ssl證書管理可安裝amssl,數據備份可使用amdata、郵局組建可以使用amsmtp等等,

其餘需要使用的php擴展同樣在軟件商店搜索下載安裝。

 

用戶提供教程推薦

https://zhongte94626.cn/bbs/post-3848-1-1.htm

https://zhongte94626.cn/bbs/post-4892-1-1.htm

https://zhongte94626.cn/bbs/post-4072-1-1.htm

 

AMH5軟件開發介紹

從AMH首個版本發布起始,AMH一直都十分注重軟件的靈活、擴展性。

在AMH5所有軟件用戶都可按需下載安裝,同時支持用戶自由開發軟件擴展面闆功能,最新AMH5.3已經整合支持軟件商店,支持第三方軟件開發商家加入提供軟件服務,您可以使用AMH開放自由的商店平台銷售您的軟件或是推廣您的免費軟件。

 

新版本AMH5的軟件開發、軟件工作環境等與以往版本相似,熟悉AMH舊版本開發的用戶可以很快掌握應用。

相比以往版本,AMH5在原基礎上增添了更加完善豐富的接口支持,開發者完全可以開發控制軟件運行、管理等事件。

 

AMH5開發使用語言

AMH5用戶可以使用單一linux/shell腳本開發,如nginx、apache、mysql各類服務器軟件 (僅shell/AMHScrip腳本控制軟件安裝、運行停止、卸載等),

也可以單一使用web/php腳本開發,如d-ram、d-cpu等AMH的桌面程序 (單一AMHScript.php腳本開發,調用系統信息顯示統計等),

也可以linux/shell+web/php腳本結合開發,相互調用觸發事件,如shell端進行軟件安裝啟動等操作,

web端進行異步同步數據、提供管理等頁面操作 (shell/AMHScrip+AMHScript.php等php控制程序)

 

AMH5開發環境介紹

AMH軟件linux/shell腳本工作位置:

/root/amh/modules/

其中以軟件名稱存放每一軟件腳本、程序文件:

/root/amh/modules/軟件名-版本/

每一軟件shell核心腳本文件:

/root/amh/modules/軟件名-版本/AMHScript

 

web/php端程序工作位置:

/usr/local/amh-版本/web/

訪問面闆 http://ip:端口/index.php

即訪問/usr/local/amh-版本/web/index.php文件。

AMH的web端是使用MVC框架開發,開發者可随時增減定義的軟件控制器、數據模型、軟件頁面模闆,

/usr/local/amh-版本/web/Controller (控制器)

/usr/local/amh-版本/web/Model (數據模型)

/usr/local/amh-版本/web/View (頁面視圖模闆)

 

AMH5軟件開發實例 (linux/shell+web/php類型)

您隻需簡單了解AMH工作目錄,即可使用shell腳本語言開發AMH的軟件。

下面以AMH的FTP軟件pure-ftpd-1.0.36進行實例介紹

主要編寫軟件的shell程序文件AMHScript (軟件的核心腳本文件)

新建軟件目錄 /root/amh/modules/pure-ftpd-1.0.36

建立軟件程序文件與配置文件:

1) AMHScript

為軟件的shell核心腳本文件,定義軟件基本信息與編寫軟件的安裝、卸載、重啟等函數事件。

2) AMHScript.php

為軟件的web端響應程序文件,同樣編寫軟件的web端的函數事件,用戶在面闆操作軟件時響應shell核心腳本完成後會再次執行AMHScript.php的函數事件。

可用于實時刷新軟件的安裝狀态,軟件運行進程狀态等。

3) pure-ftpd.conf

為FTP軟件的配置文件,軟件需要多少配置文件由開發者建立,您可以建立相關配置目錄、其它配置文件等。

4) logo.gif

為軟件的圖标文件,在AMHScript軟件基本信息中有定義變量設置軟件使用這個名稱的圖标文件。

5) install_process.log

為軟件安裝進度文件,用于判斷顯示軟件當前安裝進度,在軟件安裝過程面闆會顯示軟件安裝百分比進度。

 

1) AMHScript 核心腳本文件分析:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin;	#定義環境PATH變量常用值通常不需更改
ModuleName='pure-ftpd-1.0.36';	#定義軟件名稱與版本号
ModuleSort='server';	#定義軟件類别server為服務器軟件
ModuleType='FTPServer';	#定義軟件類型為FTP服務器軟件
ModuleMainVersion='1';	#定義軟件主分支版本号
ModuleVersion='1.0.36';	#定義軟件版本号
ModuleDescription='PureFTPd (Pure FTP Server) 是一個快速、穩定的支持全功能的FTP服務器軟件,專門為現在的Linux核心進行設計。支持PAM認證、IPv6、chroot、虛拟域名、内建ls命令、FXP協議、帶寬限制、Passive模式、LDAP認證以及XML輸出等等。';	#定義軟件描述介紹
ModuleInstallPath=/usr/local/${ModuleName};	#定義軟件安裝目錄,通常AMH軟件安裝在/usr/local/ 軟件數據存儲在/home/usrdata/
ModuleDate='2015-11-09';	#定義軟件發布日期
ModuleWebSite='http://zhongte94626.cn';	#定義軟件官方網站
ModuleIco='logo.gif';	#定義軟件使用的圖标文件
ModuleScriptBy='amysql';	#定義軟件開發者名稱,填寫您在AMH官網的賬号名稱
ModuleProcessTag='pure-ftpd (SERVER)';	#定義軟件進程标識,面闆會以此變量判斷軟件是否在運行
ModuleProcessFunctions='cmd:stop,txt:停止|cmd:restart,txt:重啟';	#定義軟件運行中可響應的函數事件,以|符号分開事件,其中有stop停止軟件事件與restart重啟軟件事件
ModuleNotProcessFunctions='cmd:start,txt:啟動';	#定義軟件未運行時可響應的軟件,其中有start啟動事件
ModuleInstallFunctions='cmd:uninstall,txt:卸載,class:red';	#定義軟件已安裝時可響應的事件,其中有uninstall卸載事件
ModuleNotInstallFunctions='cmd:install,txt:安裝|cmd:delete,txt:删除,class:red'; #定義軟件未安裝時可響應的事件,其中有install事件與delete事件
ModuleVid='1'; #定義軟件版本ID值,面闆以此值判斷軟件是否需要升級,如有軟件新版本發布定義為2,當有用戶已經安裝軟件舊版本Vid值小于2時軟件會舊軟件會提示升級
#到這裡軟件基本信息與函數事件已經定義完成,以下編寫軟件響應的函數事件。
#函數名稱前需要增加amh_module_統一規範命名。

#upgrade 軟件升級事件,根據ModuleVid值判斷是否升級。這裡升級無任何事件響應。如軟件沒有升級情況時可以不需編寫upgrade函數。
#升級函數為固定的函數事件,upgrade不可更換為其它名稱。
function amh_module_upgrade()
{
	return 0;
}

#install 為軟件安裝事件,上面ModuleNotInstallFunctions基本信息已經定義軟件在未安裝時,用戶可執行instll函數事件,用戶在面闆點擊『安裝』或執行:amh 軟件名稱 install 命令時即會響應此函數。
#函數名稱可由開發者定義,用戶可自行更變。一般建議不做改變,便于用戶記憶使用命令執行等。
function amh_module_install()
{
	if amh_module_status ; then #這裡調用了狀态函數,軟件已經安裝時直接返回,避免用戶重複提交安裝軟件。
		return;
	else
		cd /tmp;
		amh_wget ${ModuleName}.tar.gz bbcb48e8aa6ec1abff9775b89f84af91; #這裡使用amh自帶的amh_wget函數進行下載源碼,AMH會根據用戶當前使用的鏡像位置自動取最快的節點下載源碼,并校驗源碼文件md5值。開發者如需上傳源碼到amh的鏡像服務器,請在發布軟件時做一備份說明。 
		tar -zxvf ${ModuleName}.tar.gz;
		cd ${ModuleName};

		rm -rf ${ModuleInstallPath};
		./configure --prefix=${ModuleInstallPath} --with-puredb --with-quotas --with-throttling --with-ratios --with-peruserlimits;
		amh_make_install; #amh自帶的amh_make_install函數進行編譯,會自動判斷cpu核心數進行編譯,完成make && make install過程。

		#以下腳本為軟件安裝完成後做一些配置初始化,您開發其它軟件時自行編寫您需要的腳本。
		\cp contrib/redhat.init ${ModuleInstallPath}/sbin/;
		chmod 755 ${ModuleInstallPath}/sbin/redhat.init;
		sed -i "s#/usr/local#${ModuleInstallPath}#" ${ModuleInstallPath}/sbin/redhat.init;
		sed -i "s#/var/run/pure-ftpd.pid#${ModuleInstallPath}/pure-ftpd.pid#" ${ModuleInstallPath}/sbin/redhat.init;
		sed -i "s#/etc/pure-ftpd.conf#${ModuleInstallPath}/pure-ftpd.conf#" ${ModuleInstallPath}/sbin/redhat.init;

		\cp ${amh_home}/modules/${ModuleName}/pure-ftpd.conf ${ModuleInstallPath};
		chmod 744 ${ModuleInstallPath}/pure-ftpd.conf;
		mkdir ${ModuleInstallPath}/etc/;
		touch ${ModuleInstallPath}/etc/pureftpd.passwd;
		\cp configuration-file/pure-config.pl ${ModuleInstallPath}/sbin/pure-config.pl;
		chmod 755 ${ModuleInstallPath}/sbin/pure-config.pl;
		sed -i "s#/usr/local#${ModuleInstallPath}#" ${ModuleInstallPath}/sbin/pure-config.pl;

		groupadd ftpgroup;
		useradd -d /home/wwwroot/ -s /sbin/nologin -g ftpgroup ftpuser;
		/sbin/iptables-save > /etc/amh-iptables; 
		sed -i '/--dport 21 -j ACCEPT/d' /etc/amh-iptables;
		sed -i '/--dport 10100:10110 -j ACCEPT/d' /etc/amh-iptables;
		/sbin/iptables-restore < /etc/amh-iptables;
		/sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT;
		/sbin/iptables -I INPUT -p tcp --dport 10100:10180 -j ACCEPT;
		/sbin/iptables-save > /etc/amh-iptables; #/etc/amh-iptables為amh的防火牆配置文件,如您需要有對防火牆做更改操作,記得保存/etc/amh-iptables
		echo 'IPTABLES_MODULES="ip_conntrack_ftp"' >>/etc/sysconfig/iptables-config;
		amh_module_status && amh_module_start; #如有安裝成功調用start啟動事件
		cd /tmp/;
		rm -rf /tmp/${ModuleName} /tmp/${ModuleName}.tar.gz;
	fi;
}

#boot 為系統啟動時執行的函數,這裡調用start啟動函數,在系統啟動時也就會啟動軟件。
#boot 函數為固定的函數事件,boot不可更換為其它名稱。
function amh_module_boot()
{
	amh_module_start;
}

#start 軟件的啟動事件,與install安裝事件相似,可查看以上install事件的說明。
function amh_module_start()
{
	if amh_module_status ; then
		${ModuleInstallPath}/sbin/redhat.init start;
	else
		return 1;
	fi;
}

#stop 軟件的停止事件,與install安裝事件相似,可查看以上install事件的說明。
function amh_module_stop()
{
	if amh_module_status ; then
		${ModuleInstallPath}/sbin/redhat.init stop;
	else
		return 1;
	fi;
}

#restart 軟件的重啟事件,與install安裝事件相似,可查看以上install事件的說明。
function amh_module_restart()
{
	if amh_module_status ; then
		${ModuleInstallPath}/sbin/redhat.init restart;
	else
		return 1;
	fi;
}

#uninstall 軟件的卸載事件,與install安裝事件相似,可查看以上install事件的說明。
function amh_module_uninstall()
{
	if amh_module_status ; then
		amh_module_stop;
		rm -rf ${ModuleInstallPath} && \
		echo "[OK] ${ModuleName} Uninstall successful." && return 0;
		return 1;
	else
		exit;
	fi;
}

#status 為軟件的安裝狀态判斷的函數。以上安裝、啟動等事件都有調用amh_module_status,開發者可自行定義便于統一判斷軟件當前安裝狀态,在軟件已安裝時才響應事件。
function amh_module_status()
{
	if [ -f "${ModuleInstallPath}/bin/pure-pw" ]; then
		echo "[OK] ${ModuleName} is already installed.";
		return 0;
	else
		echo "[Notice] ${ModuleName} is not installed.";
		return 1;
	fi;
}

#到這裡您已經編寫完成軟件的核心腳本程序,您基本已經完成80%開發工作量。

2) AMHScript.php 程序文件分析
<?php
// 以下編寫一AMHScript類,其中包含軟件各項事件函數。執行事件與AMHScript核心腳本相應。
class AMHScript
{
	
	// 初始化 軟件初始化事件,任何函數執行前都會先調用init事件。(如有需要在AMHScript核心腳本中也可以定義amh_module_init)
	function amh_module_init()
	{
		// 這裡判斷如是在執行安裝事件時,設置軟件安裝進度為0.01、安裝狀态為未安裝。
		if ($this -> action == 'install')
			$this -> modules -> update_module($this -> name,  array('module_install_process' => '0.01', 'module_status' => '0'));
	}

	// 安裝 軟件安裝事件,軟件安裝完成後會執行。
	function amh_module_install()
	{
		// 軟件安裝完成後實時更新面闆軟件狀态與刷新系統進程。
		global $result_status;
		$this -> modules -> update_module($this -> name,  array('module_install_process' => '-1'));
		$this -> modules -> update_module($this -> name,  array('module_status' => $result_status ? '1' : '0'));
		echo "<script>amh_ajax_list.push('/index.php?c=module&a=up_process_list');</script>";
	}

	// 卸載 軟件卸載事件,軟件卸載完成後會執行。
	function amh_module_uninstall()
	{
		// 軟件卸載完成後實時更新面闆軟件狀态與刷新系統進程。
		global $result_status;
		$this -> modules -> update_module($this -> name,  array('module_status' => $result_status ? '0' : '1'));
		echo "<script>amh_ajax_list.push('/index.php?c=module&a=up_process_list');</script>";
	}

	// 删除 軟件删除事件,軟件删除完成後會執行。
	function amh_module_delete()
	{
		// 軟件删除成功後實時删除面闆中軟件記錄。
		global $result_status;
		if ($result_status)
			$this -> modules -> delete_module($this -> name);
	}


	// 重啟 軟件重啟事件,軟件重啟完成後會執行。
	function amh_module_restart()
	{
		// 這裡隻刷新系統進程
		echo "<script>amh_ajax_list.push('/index.php?c=module&a=up_process_list');</script>";
	}
	
	// 啟動 軟件啟動事件,軟件啟動完成後會執行。
	function amh_module_start()
	{
		// 這裡隻刷新系統進程
		echo "<script>amh_ajax_list.push('/index.php?c=module&a=up_process_list');</script>";
	}
 
	// 停止 軟件停止事件,軟件停止完成後會執行。
	function amh_module_stop()
	{
		// 這裡隻刷新系統進程
		echo "<script>amh_ajax_list.push('/index.php?c=module&a=up_process_list');</script>";
	}

}

?>

3) pure-ftpd.conf 配置文件說明
pure-ftpd.conf 為軟件的配置文件,以您開發的軟件實際需要情況創建。

4) logo.gif 文件說明
軟件的圖标文件,開發者自行創建設計。

5) install_process.log 日志文件說明
install_process.log為軟件的安裝進度文件,缺失install_process.log文件面闆即不會顯示軟件安裝進度。
安裝時間較長的軟件,建議創建install_process.log文件,便于用戶實時查看軟件當前安裝進度情況。
軟件程序編寫完成後,執行安裝命令,創建install_process.log日志文件在當前目錄:
amh 軟件名稱 install >./install_process.log
再執行amh命令進行調整即可完成:
amh amh-版本 admin opt_install_process install_process.log


AMH5軟件開發完成
到此您已經完成AMH軟件的開發。在測試軟件各項功能正确後請您前往開發平台發布您的軟件。
以上FTP軟件開發完整源碼您也可以下載直接查看:pure-ftpd-1.0.36
更多軟件實例您也可以參考AMH官方已發布上架的軟件。
用戶服務中心