本發(fā)明涉及PHP(Hypertext Preprocessor,超文本預處理器)開發(fā)后端服務器部署領域,具體涉及一種PHP運行環(huán)境的一鍵部署方法及系統(tǒng)。
背景技術:
PHP開發(fā)人員在進行項目開發(fā)時,開發(fā)人員需要首先搭建PHP的運行環(huán)境:配置和校驗NGINX模塊(高性能的HTTP和反向代理服務器)的部署環(huán)境,PHP模塊的解析環(huán)境及其與MYSQL模塊(關系型數據庫管理系統(tǒng))的連接。
但是,由于搭建PHP的運行環(huán)境所需的時間較長,因此對于一些所需時間較少的開發(fā)項目而言,對搭建環(huán)境不太熟悉的開發(fā)人員搭建PHP的運行環(huán)境會占用較多的時間,進而難以滿足開發(fā)項目的時間要求;而且搭建出的PHP的運行環(huán)境不一定能夠符合項目的開發(fā)需求。
技術實現要素:
針對現有技術中存在的缺陷,本發(fā)明解決的技術問題為:自動完成PHP、MYSQL或NGINX模塊的安裝,以及NGINX模塊的部署環(huán)境,PHP模塊的解析環(huán)境及其與MYSQL模塊的連接。本發(fā)明顯著縮短了PHP的運行環(huán)境的部署時間,非常適于推廣。
為達到以上目的,本發(fā)明提供的PHP運行環(huán)境的一鍵部署方法,包括以下步驟:
步驟A:通過預先設置的可執(zhí)行文件,獲取當前計算機系統(tǒng)的版本,若當前計算機系統(tǒng)的版本符合安裝需求,轉到步驟B;
步驟B:當PHP運行環(huán)境的安裝路徑的剩余空間≥最小安裝空間時,獲取當前計算機系統(tǒng)的環(huán)境變量文件;在環(huán)境變量文件中搜索與NGINX、MYSQL和PHP對應的字符串,統(tǒng)計未搜索到的字符串;
在所述安裝路徑的指定安裝目錄中,安裝未搜索到的字符串對應的應用程序,應用程序已預先設置于可執(zhí)行文件中,安裝完成后形成應用程序模塊,將該應用程序模塊的安裝目錄的路徑加入當前計算機系統(tǒng)的環(huán)境變量文件,轉到步驟C;
步驟C:在每個所述應用程序模塊的配置文件中,儲存所有所述應用程序模塊的安裝路徑,轉到步驟D;
步驟D:生成PHP運行環(huán)境的啟動文件,在計算機桌面上創(chuàng)建啟動文件的快捷方式。
本發(fā)明提供的實現上述方法的PHP運行環(huán)境的一鍵部署系統(tǒng),包括系統(tǒng)版本檢測單元、環(huán)境變量搜索單元、PHP運行環(huán)境安裝單元、安裝路徑添加單元和啟動文件生成單元;
系統(tǒng)版本檢測單元用于:通過預先設置的可執(zhí)行文件,獲取當前計算機系統(tǒng)的版本,若當前計算機系統(tǒng)的版本符合安裝需求,向環(huán)境變量搜索單元發(fā)送環(huán)境變量搜索信號;
環(huán)境變量搜索單元用于:收到環(huán)境變量搜索信號后,當PHP運行環(huán)境的安裝路徑的剩余空間≥最小安裝空間時,獲取當前計算機系統(tǒng)的環(huán)境變量文件;在環(huán)境變量文件中搜索與NGINX、MYSQL和PHP對應的字符串,向PHP運行環(huán)境安裝單元發(fā)送未搜索到的字符串;
PHP運行環(huán)境安裝單元用于:收到未搜索到的字符串后,在所述安裝路徑的指定安裝目錄中,安裝未搜索到的字符串對應的應用程序,應用程序已預先設置于可執(zhí)行文件中,安裝完成后形成應用程序模塊,將該應用程序模塊的安裝目錄的路徑加入當前計算機系統(tǒng)的環(huán)境變量文件,向安裝路徑添加單元發(fā)送安裝路徑添加信號;
安裝路徑添加單元用于:收到安裝路徑添加信號后,在每個所述應用程序模塊的配置文件中,儲存所有所述應用程序模塊的安裝路徑,向啟動文件生成單元發(fā)送啟動文件生成信號;
啟動文件生成單元:收到啟動文件生成信號后,生成PHP運行環(huán)境的啟動文件,在計算機桌面上創(chuàng)建啟動文件的快捷方式。
與現有技術相比,本發(fā)明的優(yōu)點在于:
本發(fā)明使用時,用戶將可執(zhí)行文件的安裝包下載至所需的計算機后,只需進行安裝路徑選擇操作,即可根據可執(zhí)行文件自動完成PHP、MYSQL或NGINX模塊的安裝。因此,與現有技術中需要開發(fā)人員搭建PHP的運行環(huán)境相比,本發(fā)明能夠自動完成NGINX模塊的部署環(huán)境,PHP模塊的解析環(huán)境及其與MYSQL模塊的連接,無需開發(fā)人員進行搭建操作,顯著縮短了PHP的運行環(huán)境的部署時間,而且能夠保證部署的PHP的運行環(huán)境符合項目的開發(fā)需求,非常適于推廣。
附圖說明
圖1為本發(fā)明實施例中PHP運行環(huán)境的一鍵部署方法的流程圖。
具體實施方式
以下結合附圖及實施例對本發(fā)明作進一步詳細說明。
參見圖1所示,本發(fā)明實施例中的PHP運行環(huán)境的一鍵部署方法,包括以下步驟:
S1:通過微軟提供的C#編譯方案編譯windows的可執(zhí)行文件,可執(zhí)行文件中包括PHP、MYSQL和NGINX的應用程序的壓縮包,轉到S2。
S2:用戶在計算機上下載并打開可執(zhí)行文件的安裝包后,安裝包會進行初始化:獲取當前計算機系統(tǒng)的版本,若當前計算機系統(tǒng)的版本符合安裝需求(本實施例中的可執(zhí)行文件運行時只支持XP以上的系統(tǒng)版本,不符合則顯示版本不符合信息),轉到S3,。
S2中獲取當前計算機系統(tǒng)的版本時,可以采用新的API(Application Programming Interface,應用程序編程接口)來獲取版本號,但是由于新的API在低版本操作系統(tǒng)沒有,因此獲取當前計算機系統(tǒng)的版本的優(yōu)選流程為:
S201:在可執(zhí)行文件(的mainifest文件)中加入系統(tǒng)版本號識別id:
<?xml version="1.0"encoding="UTF-8"?>
<assembly xmlns=
"urn:schemas-microsoft-com:asm.v1"manifestVersion="1.0">
<compatibility xmlns=
"urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--Windows 10//win10系統(tǒng)的識別id-->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<!--Windows 8.1//win8.1系統(tǒng)的識別id-->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!--Windows Vista//vista系統(tǒng)的識別id-->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--Windows 7//win7系統(tǒng)的識別id-->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!--Windows 8//win8系統(tǒng)的識別id-->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
</application>
</compatibility>
</assembly>
S202:獲取當前計算機系統(tǒng)的版本號,將版本號與識別id進行匹配;確定當前計算機系統(tǒng)的版本,為與版本號匹配成功的識別id的對應版本。
S3:用戶選擇PHP運行環(huán)境的安裝路徑后(該路徑點將決定一鍵部署的PHP運行環(huán)境的安裝位置),判斷安裝路徑的剩余空間是否≥最小安裝空間,若是,轉到S4,否則提示用戶重新選擇安裝路徑后,再次執(zhí)行S3。最小安裝空間優(yōu)選為400M,因為安裝完成后可執(zhí)行文件所占空間為230M左右,但是由于可執(zhí)行文件運行完后需要一部分緩存需要占用空間,因此對于用戶要求需要多出170M來供此部分緩存所使用。
S3中判斷安裝路徑的剩余空間是否≥330M的具體判斷代碼為:
private static ulong GetFreeSpace(string driveDirectoryName)
{ulong freefreeBytesAvailable=0;//初始化
DriveInfo drive=new DriveInfo(driveDirectoryName);//獲取磁盤路徑信息
freefreeBytesAvailable=(ulong)drive.AvailableFreeSpace;//得到磁盤剩余空間
return freefreeBytesAvailable;//返回信息}。
S4:獲取當前計算機系統(tǒng)的環(huán)境變量文件:string pathVar=System.Environment.GetEnvironmentVariable("Path",EnvironmentVariableTarget.Machine)。在環(huán)境變量文件中搜索與NGINX、MYSQL和PHP對應的字符串:“nginx”、“mysql”和“php”,即if(!(pathVar.ToUpper().Contains(currPath.ToUpper())))//;統(tǒng)計未搜索到的字符串(搜索到字符串則確定當前計算機系統(tǒng)中已安裝NGINX、MYSQL或PHP模塊,此時不需要再次安裝),轉到S5。
S4中環(huán)境變量文件中搜索字符串時,由于字符串對大小寫敏感,因此在搜索前先將搜索和被搜索的字符串均修改為大寫,以提高搜索的準確率。
S5:在S3中安裝路徑的指定安裝目錄中,安裝未搜索到的字符串對應的應用程序(應用程序已存在與可執(zhí)行文件中):未搜索到“nginx”,則運行NGINX的應用程序,未搜索到“mysql”,則運行MYSQL的應用程序,未搜索到“php”,則運行PHP的應用程序。
安裝應用程序的過程為:將應用程序的壓縮包復制至安裝目錄后,使用C#中的解壓縮代碼對壓縮包進行解壓縮,解壓縮期間用戶顯示界面為正在安裝應用程序(NGINX、MYSQL或PHP)模塊。解壓縮完成后,形成對應的應用程序模塊,將應用程序模塊的安裝目錄的路徑加入當前計算機系統(tǒng)的環(huán)境變量文件,以使系統(tǒng)加載時,可直接使用該模塊,轉到S6。
將應用程序模塊的安裝目錄的路徑加入當前計算機系統(tǒng)的環(huán)境變量文件的代碼為:
System.Environment.SetEnvironmentVariable("PATH",pathVar+";"+currPath,EnvironmentVariableTarget.Machine)。
MYSQL模塊安裝完成后,需要在MYSQL模塊的配置文件中存儲用戶輸入的管理員賬號和密碼;若S4中搜索到“mysql”,即當前計算機系統(tǒng)已安裝MYSQL模塊,也需要用戶輸入MYSQL模塊的配置文件中已儲存的管理員賬號和密碼。
S6:整合模塊:在每個應用程序模塊的配置文件中,寫入所有應用程序模塊的安裝路徑,具體流程為:在每個模塊的安裝目錄下新建一個config.info文件(配置文件),在config.info文件中寫入以下信息:
nginx=c:/phpenv/nginx/bin;
php=c:/phpenv/php/bin;
mysql=c:/phpenv/mysql/bin,轉到S7。
上述3條信息為3個模塊所在路徑的信息。3個模塊都會添加上述信息供其使用。
S7:自動生成PHP運行環(huán)境的啟動文件,在計算機桌面上創(chuàng)建啟動文件的快捷方式,創(chuàng)建方式同樣使用C#中提供的方法來執(zhí)行。創(chuàng)建完成后,會返回一個boolean值,代表返回來代表是否創(chuàng)建成功,若生成成功,boolean值為true,若生成失敗,boolean值為false;若返回false,會提示用戶在實際安裝目錄下打開使用。
本發(fā)明實施例提供的實現上述方法的PHP運行環(huán)境的一鍵部署系統(tǒng),包括系統(tǒng)版本檢測單元、環(huán)境變量搜索單元、PHP運行環(huán)境安裝單元、安裝路徑添加單元和啟動文件生成單元。
系統(tǒng)版本檢測單元用于:通過預先設置的可執(zhí)行文件,獲取當前計算機系統(tǒng)的版本,具體工作流程為:在可執(zhí)行文件中加入系統(tǒng)版本號識別id,識別id包括vista系統(tǒng)的識別id、win7系統(tǒng)的識別id、win8系統(tǒng)的識別id、win8.1系統(tǒng)的識別id和win10系統(tǒng)的識別id;獲取當前計算機系統(tǒng)的版本號,將版本號與識別id進行匹配;確定當前計算機系統(tǒng)的版本,為與版本號匹配成功的識別id的對應版本。若當前計算機系統(tǒng)的版本符合安裝需求,向環(huán)境變量搜索單元發(fā)送環(huán)境變量搜索信號。
環(huán)境變量搜索單元用于:收到環(huán)境變量搜索信號后,當PHP運行環(huán)境的安裝路徑的剩余空間≥最小安裝空間(400M)時,獲取當前計算機系統(tǒng)的環(huán)境變量文件(若PHP運行環(huán)境的安裝路徑的剩余空間<最小安裝空間時,則中止后續(xù)流程,提示用戶重新選擇安裝路徑后重新工作)。在環(huán)境變量文件中搜索與NGINX、MYSQL和PHP對應的字符串,搜索之前將搜索和被搜索的字符串均修改為大寫,若搜素到MYSQL對應的字符串,則確定不需要安裝MYSQL的應用程序,通知用戶輸入MYSQL模塊的配置文件中已儲存的管理員賬號和密碼。向PHP運行環(huán)境安裝單元發(fā)送未搜索到的字符串。
PHP運行環(huán)境安裝單元用于:收到未搜索到的字符串后,在所述安裝路徑的指定安裝目錄中,安裝未搜索到的字符串對應的應用程序,應用程序已預先設置于可執(zhí)行文件中,安裝完成后形成應用程序模塊,若安裝有MYSQL模塊,則在MYSQL的配置文件中存儲用戶輸入的管理員賬號和密碼。將該應用程序模塊的安裝目錄的路徑加入當前計算機系統(tǒng)的環(huán)境變量文件,向安裝路徑添加單元發(fā)送安裝路徑添加信號。
安裝路徑添加單元用于:收到安裝路徑添加信號后,在每個所述應用程序模塊的配置文件中,儲存所有所述應用程序模塊的安裝路徑,向啟動文件生成單元發(fā)送啟動文件生成信號。
啟動文件生成單元:收到啟動文件生成信號后,生成PHP運行環(huán)境的啟動文件,在計算機桌面上創(chuàng)建啟動文件的快捷方式。
上述實施例提供的PHP運行環(huán)境的一鍵部署系統(tǒng)在進行一鍵部署時,僅以上述各功能單元的劃分進行舉例說明;在實際應用中,可根據需要將系統(tǒng)的內部結構劃分成與上述不同的功能單元,以完成以上描述的全部或者部分功能。
進一步,本發(fā)明不局限于上述實施方式,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍之內。本說明書中未作詳細描述的內容屬于本領域專業(yè)技術人員公知的現有技術。