宝塔面板使用命令行安装软件
简单介绍什么是宝塔面板
宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。 有20个人的专业团队研发及维护,经过200多个版本的迭代,功能全,少出错且足够安全,已获得全球百万用户认可安装。运维要高效,装宝塔。
分为免费版
和专业版
,专业版收费,免费版足够用。
为什么需要命令行去安装?
宝塔面板使用官网的安装命令安装好以后位置是在 /www/server/panel
通过web的控制面板去管理服务器,安装需要的环境只要点击几下按钮就可以装起来,即使没有经验,稍微用一下也可以上手。
但是这些环境(比如LNMP)必须要手动点才能安装,虽然官方有提供API可以通过接口来进行操作,但我们通过脚本希望自动化安装的时候,并没有那么好用,比如部署一个新宝塔面板的同时自动安装好LNMP环境。
通过分析宝塔面板的代码可以找到一种通过shell脚本就安装需要环境的方法。
在安装好的宝塔目录/www/server/panel/install
有两个脚本,install_soft.sh和public.sh,而install_soft.sh
是安装和管理环境的脚本, 宝塔面板是使用python开发的,install_soft.sh
是通过python调用执行的,参数由用户在前端web点击传递过来,只要分析一下代码理清install_soft.sh
需要的参数和参数格式,就可以用命令行直接调用install_soft.sh
完成需要的环境安装。
简单分析
搜索代码查找install_soft.sh
关键字,可以在class/panelPlugin.py
文件,其中有install_async
函数
|
|
找到和install_soft.sh
相关的
|
|
可以看到install_soft.sh
需要的参数由4个
|
|
通过在浏览器点击一次安装,看一下发送了哪些参数,比如安装一个PHP7.4,会询问你:
安装方式分为: 编译安装和极速安装
选择极速安装, 点击确定,F12查看提交的请求,有3个参数:
|
|
选择编译安装,提交的参数为:
|
|
得到 type 为安装方式:
type=0 编译安装
type=1 极速安装
$mtype 在方法中,按代码理解这个是操作类型,安装时固定为: install
$sName 为提交的sName ,是软件名称, 不过PHP的做了一下处理:是取-号分割的前一部分
|
|
所以sName: php-7.4 实际取到的sName=php
$version就是提交过来的版本了。
因此install_soft.sh
接收的参数为:
|
|
因此实际安装PHP7.4提交给 install_soft.sh
参数为(假设为极速安装)
|
|
而代码中对$type 实际还做了一下处理,type默认为0,且不能大于4,大于4会转为0
|
|
系统有/usr/bin/apt-get
时 , ubuntu/debain这类系统时,type做了转换
|
|
type = 0 实际转为 type =3
否则转为 type = 4
也就是说针对 ubuntu/debain 系统时,实际安装PHP7.4提交给 install_soft.sh
参数为(假设为极速安装)
|
|
软件参数列表
运行环境
软件名称(sName) | 安装方式(type) | 版本(version) | 依赖 | |
---|---|---|---|---|
Nginx | nginx | 0\1 | 1.8\1.12\1.14\1.15\1.16\1.17 | |
Tengine | nginx | 0\1 | -tengine2.2 | |
OpenResty | nginx | 0\1 | openresty | |
Apache | apache | 0\1 | 2.2\2.4 | |
MySQL | mysql | 0\1 | 5.1\5.5\5.6\5.7\8.0 | |
Mariadb | mysql | 0\1 | mariadb_10.0\mariadb_10.1\mariadb_10.2\mariadb_10.3\mariadb_10.4 | |
AliSQL | mysql | 0\1 | alisql | |
PHP | php | 0\1 | 5.2\5.3\5.4\5.5\5.6\7.0\7.1\7.2\7.3\7.4 | |
Redis | redis | 0 | 5.0 | |
FTP | pureftpd | 0 | 1.0 | |
phpMyAdmin | 要先安装Mysql和Apache\Nginx | |||
Memcached | memcached | 0 | 1.5 | |
Tomcat | tomcat | 0 | 7\8\9 | |
PM2管理器 | pm2 | 0 | 4.2 | |
Docker管理器 | docker | 0 | 2 | |
MongoDB | mongodb | 0 | 4.0 | |
GitLab | gitlab | 0 | 8.8 |
系统工具
软件名称(sName) | 安装方式(type) | 版本(version) | 依赖 | |
---|---|---|---|---|
Linux工具箱 | ||||
宝塔跑分 | ||||
Supervisor管理器 | ||||
日志清理工具 |
软件列表获取接口:
http://www.bt.cn/api/panel/get_soft_list_test
PHP扩展安装:
扩展列表:
http://192.168.33.15:8888/ajax?action=GetPHPConfig
支持安装扩展查询接口:
http://download.bt.cn/install/lib/phplib.json
比如php7.2安装 memcached
|
|
|
|
2021-9-8 更新
在论坛找个一个官方回复上面有说如何通过命令行安装
统一回复下:面板的软件安装脚本在
|
|
目录下,如果安装php7.4的话,以CentOS系统为例: 急速安装包下载地址
|
|
Mysql5.7:
|
|
Nginx1.20:
|
|
编译安装脚本: 如php7.4:
|
|
Mysql5.7:
|
|
Nginx1.20:
|
|