🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ### 如何扩展自定义服务? - 将自定义服务已服务名称为单位保存到`.\WAMP\server`目录 - 在`.\WAMP\server\{服务名称}`目录下创建并配置`.\WAMP\server\{服务名称}\server.ini` - 如需要可创建模板文件`目标文件.tpl`,实现对服务的动态配置 > 建议多多参考已有服务及相关文件 * * * * * ### 服务配置是什么? 服务配置文件是向程序中注册定义服务的配置文件 例如`.\WAMP\server\apache-2.4.29\server.ini`: ``` ; 服务配置文件 ; 系统在编译模板前会自动映射所有配置数据为“server.服务名.节名.项名.项值”脚本变量 ; 系统在编译模板前会自动补充“server.服务名.server.dir.服务目录”脚本变量 ; ; 配置数据说明: ; server节点;为系统预定义节点,该节点中也保存着系统预定义项 ;[server] ; 服务运行命令行;支持相对当前目录路径 ;cmd= ; 是否禁用服务;仅在有运行命令(cmd)时有效,可选值 0 和 1 缺省为0 ;disable=0 ; 服务备注信息 ;notes= ; [server] cmd=.\bin\httpd.exe disable=0 notes=该服务运行状态,站点操作需重启 ``` > 其中内容会被映射为Lua全局变量,以供模板文件方便获取。 * * * * * ### 配置模板是什么? 为了实现对服务进行统一动态配置,内部基于Lua实现了一个简易的模板引擎。可在各服务目录下,创建后缀为`.tpl`文件并在其中嵌入`<?lua LUA代码段>`。在每次启动服务前程序会检索各服务目录下模板文件``,并将其编译为目标文件``。 ``` .\WAMP\server\{服务名称}\{子目录}\{名称.后缀}.tpl -> .\WAMP\server\{服务名称}\{子目录}\{名称.后缀} ``` 例如`.\WAMP\server\mysql-5.7.21\my.ini.tpl` 的一段: ``` # mysqld为服务端参数 [mysqld] # 设置错误日志 log-error="<?lua echo(toPath(".") .. "/error.log") ?>" # MySQL的安装路径 basedir="<?lua echo(toPath(".")) ?>" # MySQL数据文件的存储位置,也是数据库表的存放位置。 datadir="<?lua echo(toPath(server[serverName].mysql.datadir)) ?>" # 数据库的端口 port=3306 ``` > 建议多多参考已有服务下模板文件和[Lua辅助函数](620892)。