本发明涉及PHP(Hypertext Preprocessor,超文本预处理器)开发后端服务器部署领域,具体涉及一种PHP运行环境的一键部署方法及系统。
背景技术:
PHP开发人员在进行项目开发时,开发人员需要首先搭建PHP的运行环境:配置和校验NGINX模块(高性能的HTTP和反向代理服务器)的部署环境,PHP模块的解析环境及其与MYSQL模块(关系型数据库管理系统)的连接。
但是,由于搭建PHP的运行环境所需的时间较长,因此对于一些所需时间较少的开发项目而言,对搭建环境不太熟悉的开发人员搭建PHP的运行环境会占用较多的时间,进而难以满足开发项目的时间要求;而且搭建出的PHP的运行环境不一定能够符合项目的开发需求。
技术实现要素:
针对现有技术中存在的缺陷,本发明解决的技术问题为:自动完成PHP、MYSQL或NGINX模块的安装,以及NGINX模块的部署环境,PHP模块的解析环境及其与MYSQL模块的连接。本发明显著缩短了PHP的运行环境的部署时间,非常适于推广。
为达到以上目的,本发明提供的PHP运行环境的一键部署方法,包括以下步骤:
步骤A:通过预先设置的可执行文件,获取当前计算机系统的版本,若当前计算机系统的版本符合安装需求,转到步骤B;
步骤B:当PHP运行环境的安装路径的剩余空间≥最小安装空间时,获取当前计算机系统的环境变量文件;在环境变量文件中搜索与NGINX、MYSQL和PHP对应的字符串,统计未搜索到的字符串;
在所述安装路径的指定安装目录中,安装未搜索到的字符串对应的应用程序,应用程序已预先设置于可执行文件中,安装完成后形成应用程序模块,将该应用程序模块的安装目录的路径加入当前计算机系统的环境变量文件,转到步骤C;
步骤C:在每个所述应用程序模块的配置文件中,储存所有所述应用程序模块的安装路径,转到步骤D;
步骤D:生成PHP运行环境的启动文件,在计算机桌面上创建启动文件的快捷方式。
本发明提供的实现上述方法的PHP运行环境的一键部署系统,包括系统版本检测单元、环境变量搜索单元、PHP运行环境安装单元、安装路径添加单元和启动文件生成单元;
系统版本检测单元用于:通过预先设置的可执行文件,获取当前计算机系统的版本,若当前计算机系统的版本符合安装需求,向环境变量搜索单元发送环境变量搜索信号;
环境变量搜索单元用于:收到环境变量搜索信号后,当PHP运行环境的安装路径的剩余空间≥最小安装空间时,获取当前计算机系统的环境变量文件;在环境变量文件中搜索与NGINX、MYSQL和PHP对应的字符串,向PHP运行环境安装单元发送未搜索到的字符串;
PHP运行环境安装单元用于:收到未搜索到的字符串后,在所述安装路径的指定安装目录中,安装未搜索到的字符串对应的应用程序,应用程序已预先设置于可执行文件中,安装完成后形成应用程序模块,将该应用程序模块的安装目录的路径加入当前计算机系统的环境变量文件,向安装路径添加单元发送安装路径添加信号;
安装路径添加单元用于:收到安装路径添加信号后,在每个所述应用程序模块的配置文件中,储存所有所述应用程序模块的安装路径,向启动文件生成单元发送启动文件生成信号;
启动文件生成单元:收到启动文件生成信号后,生成PHP运行环境的启动文件,在计算机桌面上创建启动文件的快捷方式。
与现有技术相比,本发明的优点在于:
本发明使用时,用户将可执行文件的安装包下载至所需的计算机后,只需进行安装路径选择操作,即可根据可执行文件自动完成PHP、MYSQL或NGINX模块的安装。因此,与现有技术中需要开发人员搭建PHP的运行环境相比,本发明能够自动完成NGINX模块的部署环境,PHP模块的解析环境及其与MYSQL模块的连接,无需开发人员进行搭建操作,显著缩短了PHP的运行环境的部署时间,而且能够保证部署的PHP的运行环境符合项目的开发需求,非常适于推广。
附图说明
图1为本发明实施例中PHP运行环境的一键部署方法的流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例中的PHP运行环境的一键部署方法,包括以下步骤:
S1:通过微软提供的C#编译方案编译windows的可执行文件,可执行文件中包括PHP、MYSQL和NGINX的应用程序的压缩包,转到S2。
S2:用户在计算机上下载并打开可执行文件的安装包后,安装包会进行初始化:获取当前计算机系统的版本,若当前计算机系统的版本符合安装需求(本实施例中的可执行文件运行时只支持XP以上的系统版本,不符合则显示版本不符合信息),转到S3,。
S2中获取当前计算机系统的版本时,可以采用新的API(Application Programming Interface,应用程序编程接口)来获取版本号,但是由于新的API在低版本操作系统没有,因此获取当前计算机系统的版本的优选流程为:
S201:在可执行文件(的mainifest文件)中加入系统版本号识别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系统的识别id-->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<!--Windows 8.1//win8.1系统的识别id-->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!--Windows Vista//vista系统的识别id-->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--Windows 7//win7系统的识别id-->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!--Windows 8//win8系统的识别id-->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
</application>
</compatibility>
</assembly>
S202:获取当前计算机系统的版本号,将版本号与识别id进行匹配;确定当前计算机系统的版本,为与版本号匹配成功的识别id的对应版本。
S3:用户选择PHP运行环境的安装路径后(该路径点将决定一键部署的PHP运行环境的安装位置),判断安装路径的剩余空间是否≥最小安装空间,若是,转到S4,否则提示用户重新选择安装路径后,再次执行S3。最小安装空间优选为400M,因为安装完成后可执行文件所占空间为230M左右,但是由于可执行文件运行完后需要一部分缓存需要占用空间,因此对于用户要求需要多出170M来供此部分缓存所使用。
S3中判断安装路径的剩余空间是否≥330M的具体判断代码为:
private static ulong GetFreeSpace(string driveDirectoryName)
{ulong freefreeBytesAvailable=0;//初始化
DriveInfo drive=new DriveInfo(driveDirectoryName);//获取磁盘路径信息
freefreeBytesAvailable=(ulong)drive.AvailableFreeSpace;//得到磁盘剩余空间
return freefreeBytesAvailable;//返回信息}。
S4:获取当前计算机系统的环境变量文件:string pathVar=System.Environment.GetEnvironmentVariable("Path",EnvironmentVariableTarget.Machine)。在环境变量文件中搜索与NGINX、MYSQL和PHP对应的字符串:“nginx”、“mysql”和“php”,即if(!(pathVar.ToUpper().Contains(currPath.ToUpper())))//;统计未搜索到的字符串(搜索到字符串则确定当前计算机系统中已安装NGINX、MYSQL或PHP模块,此时不需要再次安装),转到S5。
S4中环境变量文件中搜索字符串时,由于字符串对大小写敏感,因此在搜索前先将搜索和被搜索的字符串均修改为大写,以提高搜索的准确率。
S5:在S3中安装路径的指定安装目录中,安装未搜索到的字符串对应的应用程序(应用程序已存在与可执行文件中):未搜索到“nginx”,则运行NGINX的应用程序,未搜索到“mysql”,则运行MYSQL的应用程序,未搜索到“php”,则运行PHP的应用程序。
安装应用程序的过程为:将应用程序的压缩包复制至安装目录后,使用C#中的解压缩代码对压缩包进行解压缩,解压缩期间用户显示界面为正在安装应用程序(NGINX、MYSQL或PHP)模块。解压缩完成后,形成对应的应用程序模块,将应用程序模块的安装目录的路径加入当前计算机系统的环境变量文件,以使系统加载时,可直接使用该模块,转到S6。
将应用程序模块的安装目录的路径加入当前计算机系统的环境变量文件的代码为:
System.Environment.SetEnvironmentVariable("PATH",pathVar+";"+currPath,EnvironmentVariableTarget.Machine)。
MYSQL模块安装完成后,需要在MYSQL模块的配置文件中存储用户输入的管理员账号和密码;若S4中搜索到“mysql”,即当前计算机系统已安装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运行环境的启动文件,在计算机桌面上创建启动文件的快捷方式,创建方式同样使用C#中提供的方法来执行。创建完成后,会返回一个boolean值,代表返回来代表是否创建成功,若生成成功,boolean值为true,若生成失败,boolean值为false;若返回false,会提示用户在实际安装目录下打开使用。
本发明实施例提供的实现上述方法的PHP运行环境的一键部署系统,包括系统版本检测单元、环境变量搜索单元、PHP运行环境安装单元、安装路径添加单元和启动文件生成单元。
系统版本检测单元用于:通过预先设置的可执行文件,获取当前计算机系统的版本,具体工作流程为:在可执行文件中加入系统版本号识别id,识别id包括vista系统的识别id、win7系统的识别id、win8系统的识别id、win8.1系统的识别id和win10系统的识别id;获取当前计算机系统的版本号,将版本号与识别id进行匹配;确定当前计算机系统的版本,为与版本号匹配成功的识别id的对应版本。若当前计算机系统的版本符合安装需求,向环境变量搜索单元发送环境变量搜索信号。
环境变量搜索单元用于:收到环境变量搜索信号后,当PHP运行环境的安装路径的剩余空间≥最小安装空间(400M)时,获取当前计算机系统的环境变量文件(若PHP运行环境的安装路径的剩余空间<最小安装空间时,则中止后续流程,提示用户重新选择安装路径后重新工作)。在环境变量文件中搜索与NGINX、MYSQL和PHP对应的字符串,搜索之前将搜索和被搜索的字符串均修改为大写,若搜素到MYSQL对应的字符串,则确定不需要安装MYSQL的应用程序,通知用户输入MYSQL模块的配置文件中已储存的管理员账号和密码。向PHP运行环境安装单元发送未搜索到的字符串。
PHP运行环境安装单元用于:收到未搜索到的字符串后,在所述安装路径的指定安装目录中,安装未搜索到的字符串对应的应用程序,应用程序已预先设置于可执行文件中,安装完成后形成应用程序模块,若安装有MYSQL模块,则在MYSQL的配置文件中存储用户输入的管理员账号和密码。将该应用程序模块的安装目录的路径加入当前计算机系统的环境变量文件,向安装路径添加单元发送安装路径添加信号。
安装路径添加单元用于:收到安装路径添加信号后,在每个所述应用程序模块的配置文件中,储存所有所述应用程序模块的安装路径,向启动文件生成单元发送启动文件生成信号。
启动文件生成单元:收到启动文件生成信号后,生成PHP运行环境的启动文件,在计算机桌面上创建启动文件的快捷方式。
上述实施例提供的PHP运行环境的一键部署系统在进行一键部署时,仅以上述各功能单元的划分进行举例说明;在实际应用中,可根据需要将系统的内部结构划分成与上述不同的功能单元,以完成以上描述的全部或者部分功能。
进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。