一种PHP动态配置自动化生效方法和系统与流程

文档序号:26003593发布日期:2021-07-23 21:21阅读:191来源:国知局
一种PHP动态配置自动化生效方法和系统与流程

本申请属于计算机领域,尤其涉及一种php动态配置自动化生效方法和系统。



背景技术:

php(hypertextpreprocessor,超文本预处理器)是在服务器端执行的脚本语言,尤其适用于web开发并可嵌入html中。在开发php应用程序的过程中,经常需要配置一些参数,例如配置连接数据库的服务器地址和账号密码,配置依赖应用的域名等。

当前主流的其中一种php配置方式是:通过环境变量来配置参数,具体实现方式是将php所需要的参数写到php应用程序所在服务器的环境变量当中,当php应用程序的代码需要使用配置参数时,通过特定的函数获取本机的环境变量,然后根据参数继续运行代码本身的业务逻辑。然而,当php应用程序部署的节点较多时,要一台台去修改环境变量从而容易出现效率低下,易出错的问题。



技术实现要素:

本申请的目的在于提供一种php动态配置自动化生效方法和系统,旨在解决通过环境变量来配置参数的方式,当php应用程序部署的节点较多时,要一台台去修改环境变量从而容易出现效率低下,易出错的问题。

第一方面,本申请提供了一种php动态配置自动化生效方法,所述方法包括:

配置中心接收并存储用户设置的php配置参数;

服务器的代理服务模块监听配置中心的php配置参数变化,当发现配置中心的php配置参数有变化时,从配置中心获取更新后的php配置参数,并将php配置参数保存到指定存储目录的php配置文件中;

所述服务器中安装的php应用程序从所述指定目录中读取php配置文件。

第二方面,本申请提供了一种php动态配置自动化生效系统,包括配置中心和服务器,其中,

配置中心接收并存储用户设置的php配置参数;

服务器的代理服务模块监听配置中心的php配置参数变化,当发现配置中心的php配置参数有变化时,从配置中心获取更新后的php配置参数,并将php配置参数保存到指定存储目录的php配置文件中;

所述服务器中安装的php应用程序从所述指定目录中读取php配置文件。

在本申请中,由于php动态配置自动化生效系统包括配置中心和具有代理服务模块的服务器,配置中心接收并存储用户设置的php配置参数;服务器的代理服务模块监听配置中心的php配置参数变化,当发现配置中心的php配置参数有变化时,从配置中心获取更新后的php配置参数,并将php配置参数保存到指定存储目录的php配置文件中;所述服务器中安装的php应用程序从所述指定目录中读取php配置文件。因此修改php应用程序的参数时,可以直接在配置中心提供的界面上修改,大大简化了修改参数的流程,修完配置后,相关改动会实时同步到各个php应用程序所在服务器的对应php配置文件,不需要一台台服务器去改配置;配置参数由配置中心统一管理,不保存在代码,可以有效防止敏感信息。因此,本申请的php动态配置自动化生效方法高效,便捷,且安全性高。

附图说明

图1是本申请一实施例提供的php动态配置自动化生效方法的流程图。

图2是本申请一实施例提供的php动态配置自动化生效系统的示意图。

具体实施方式

为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。

请参阅图1,是本申请一实施例提供的php动态配置自动化生效方法的流程图,本申请一实施例提供的php动态配置自动化生效方法包括以下步骤:

s101、配置中心接收并存储用户设置的php配置参数。

在本申请一实施例中,所述配置中心支持如下功能:支持配置参数的存储、支持通过api获取php配置参数、支持php配置参数变化的监听机制。例如所述配置中心可以是携程的apollo配置中心,apollo(阿波罗)配置中心是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

在本申请一实施例中,s101具体可以为:

配置中心接收并存储用户通过配置中心的界面设置的php配置参数,所述php配置参数可以是按预设的维度拆分的配置参数,例如可以按应用拆分或按业务线拆分。

在本申请一实施例中,考虑到发布代码时,php的代码会被覆盖,因此预设的php配置参数的存储目录跟php的代码的存储目录不同,例如php的代码都放在/home/data/www/{应用名}中,那可以把php配置参数的存储目录约定到/home/data/config/{应用名},这样可以避免php配置参数受到代码发布的影响。另外要使php-fpm进程的用户对该存储目录有读权限,避免因为没有权限导致无法读取配置文件。

s102、服务器的代理服务模块监听配置中心的php配置参数变化,当发现配置中心的php配置参数有变化时,从配置中心获取更新后的php配置参数,并将php配置参数保存到指定存储目录的php配置文件中。

由于golang的性能较高,占用内存较少,极易部署,因此在本申请一实施例中,代理服务模块采用golang来编写。

在本申请一实施例中,部署代理服务模块时,需要配置正确的配置中心的网址,对于有权限校验的配置中心,还需要配置正确的token或用户名和密码,保证配置的token和用户名拥有读取php配置参数和监控php配置参数变化的权限,同时需要保证代理服务模块对约定好的配置文件的存储目录有读写权限,避免由于权限问题导致无法正常读取或写入php配置文件。

s103、所述服务器中安装的php应用程序从所述指定目录中读取php配置文件。

请参阅图2,本申请一实施例提供的php动态配置自动化生效系统包括配置中心11和服务器12,其中,

配置中心11接收并存储用户设置的php配置参数;

服务器12的代理服务模块121监听配置中心的php配置参数变化,当发现配置中心的php配置参数有变化时,从配置中心获取更新后的php配置参数,并将php配置参数保存到指定存储目录的php配置文件122中;

所述服务器12中安装的php应用程序123从所述指定目录中读取php配置文件。

本申请一实施例提供的php动态配置自动化生效系统与本申请一实施例提供的php动态配置自动化生效方法属于同一构思,其具体实现过程详见说明书全文,此处不再赘述。

在本申请中,由于php动态配置自动化生效系统包括配置中心和具有代理服务模块的服务器,配置中心接收并存储用户设置的php配置参数;服务器的代理服务模块监听配置中心的php配置参数变化,当发现配置中心的php配置参数有变化时,从配置中心获取更新后的php配置参数,并将php配置参数保存到指定存储目录的php配置文件中;所述服务器中安装的php应用程序从所述指定目录中读取php配置文件。因此修改php应用程序的参数时,可以直接在配置中心提供的界面上修改,大大简化了修改参数的流程,修完配置后,相关改动会实时同步到各个php应用程序所在服务器的对应php配置文件,不需要一台台服务器去改配置;配置参数由配置中心统一管理,不保存在代码,可以有效防止敏感信息。因此,本申请的php动态配置自动化生效方法高效,便捷,且安全性高。

应该理解的是,本申请各实施例中的各个步骤并不是必然按照步骤标号指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1