怎样在宝塔中构建一键部署源码项目程序包
使用场景:
1、项目开发商发布项目到宝塔一键部署
注意事项:
1、仅接受项目开发商提交发布,非项目官方提交的发布将无法通过审核
2、项目包大小在50MB以内
3、发布前需通过实名认证
4、首次版本审核我们将通过开发者资料中的联系方式对发布者身份进行校验,介时发布者需要有项目官网的权限才能通过认证
5、非商业应用可以直接发布,商业应用请先联系客服咨询
6、请在上架宝塔一键部署后的一个月内,在官方安装文档中增加使用宝塔一键部署相关说明
发布方式:
1、登录宝塔开发者中心:https://www.bt.cn/developer
2、登录宝塔帐号,并申请成为开发者
3、创建应用,类型选【一键部署】
4、上传应用版本
5、审核上线
项目包构建说明
1、请将安装包直接打包成zip压缩包,包内必需包含auto_install.json配置文件
2、上传版本前请通过面板提供的【导入项目】功能导入到面板,然后测试项目包是否符合预期
3.压缩包文件结构
./...项目文件和目录
./nginx.rewrite #如果有nginx.rewrite,将自动导入到nginx重写规则(非必需)
./.htaccess #apache URL重写规则(非必需)
./iis.rewrite #如果有iis.rewrite 将自动导入到iis URL重写规则(非必需)
./composer.json #如果有composer.json且找不到composer.lock的情况下,将执行composer install (非必需)
./import.sql #自动将此sql导入到数据库 (非必需,自动安装时用)
./insatll.sh #如果有insatll.sh,部署时将自动被执行,在SHELL脚本中可通过$(pwd)来获取网站根目录, 通过$1来获取网站主域名 (非必需)
./auto_install.json #宝塔一键部署配置文件(必需)
./auto_install.json配置文件示例:
{
"php_ext":"opcache,ioncube", //依赖的PHP扩展,仅针对【安装扩展】列表(如:redis,opcache等)中的扩展,PHP默认编译扩展(如:mysqli,curl等)无需安装
"chmod":[
{"mode":754,"path":"/wp-admin"},
{"mode":700,"path":"/wp-includes"}
], //要独立设置权限的文件或目录
"success_url":"/index.php", //安装入口或后台管理入口
"php_versions":"53,54,55,56,70,71,72,73", //支持的PHP版本
"db_config":"data/config.php", //数据库配置文件,请将用户名/数据库名称/密码分别替换成 BT_DB_USERNAME/BT_DB_NAME/BT_DB_PASSWORD(不自动安装请留空)
"admin_username":"admin", //后台管理默认用户名(不自动安装请留空)
"admin_password":"we7.cc", //后台管理默认密码(不自动安装请留空)
"run_path":"/", //相对于根目录的运行目录(如ThinkPHP5.X 应该是 /public)
"remove_file":["/install","/temp","/.user.ini"], //部署完成后要被删除的文件或目录
"enable_functions":["system","exec"] //要被解禁的PHP函数
}
复制代码
注意:JSON文件不能有注释,请将相关注释内容清除后再放入压缩包
在install.sh 中获取信息示例:
#获取主域名(网站名称)
domain=$1
#获取配置文件位置
config_file=/www/server/panel/vhost/nginx/${domain}.conf
#获取PHP版本
php_version=$(cat $config_file|grep 'enable-php'|grep -Eo "[0-9]+"|head -n 1)
#获取PHP执行路径
php_bin=/www/server/php/$php_version/bin/php
#获取根目录:
root_path=$(cat $config_file|grep 'root '|awk '{print $2}'|sed "s/;//")
#或
root_path=$(pwd)
#获取域名列表
domain_list=$(cat $config_file|grep server_name|head -n 1|sed "s/server_name//"|sed "s/;//"|xargs)
复制代码
示例包1:z-blog(自动安装)
示例包2:WordPress(只部署不安装)