如果你是个天天和服务器打交道的开发者或者运维,那宝塔面板你肯定不陌生。
但用久了之后,会慢慢发现数据要上报、账号绑定这些不说,偶尔还会弹点无关的广告,更关键的是对于一些对数据隐私要求很高的企业来说,把服务器的相关信息传到第三方云端,总有点不放心。
那能不能自己搭个私有的宝塔云端?把所有的数据都握在自己手里,不用再依赖官方的服务?这就是用PHP开发的 BTCloud。
一个完全由你掌控的私有宝塔云端
这个项目托管在 GitHub 上,是开发者flucont维护的,完全开源。
简单来说,它就是自己搭了一套兼容宝塔面板的云端后端,模拟了官方云端的所有功能,但所有的数据都存在你自己的服务器上,完全由你说了算。不用再把你的服务器信息、运维数据传到官方的服务器,相当于你自己搞了个专属版宝塔云端。
截止到我写这篇文章的时候,这个项目已经更新到了v3.5.3版本,就在今年3月刚发布的,还同步把Linux面板更新到了适配11.6.0的最新版本,更新频率还挺高的,一直在跟进官方的版本迭代,不用担心用着用着就跟不上了。
为什么说这个PHP小项目这么香?
可能有人会问,不就是个模拟接口的工具吗?能有什么特别的?其实用过之后你就会发现,它把我们平时用宝塔的痛点都解决了,而且从PHP开发的角度来说,这个项目的设计也特别贴心。
它是基于ThinkPHP框架写的,这是我们PHP开发者很熟悉的MVC框架,代码结构特别清晰,app、public、route 这些目录一目了然,二次开发的门槛特别低。
它能实现的功能如下:
插件自动同步,不用手动维护
最实用的就是插件管理功能了。原来我们如果自己搞私有部署,插件都要手动一个个下,更新的时候还要手动更,特别麻烦。但 BTCloud 的后台支持一键从宝塔官方同步插件列表,还能自动下载增量更新包,相当于你只需要点一下,它就会把官方的所有插件都同步到你自己的服务器上。
所有操作都可追溯
作为企业用的工具安全和审计肯定不能少。BTCloud自带了IP黑白名单,你可以限制只有指定的IP才能访问你的云端,满足企业的审计需求。
这些功能都是用PHP实现的,数据存在你自己的MySQL里,完全隔离,不用担心数据泄露。
手把手教你搭自己的私有云端
很多人一听自己搭云端就觉得好难,其实真的没有那么复杂,几个小时就能搭好。给大家整理了一下步骤,照着来基本不会出问题:
先准备好环境
首先你得有一台Linux服务器,推荐用CentOS7+或者Ubuntu18+的系统,内存至少2G,存储50G就够了,毕竟要存插件和安装包,空间不能太小。
然后是软件依赖:
PHP7.4 或者更高版本,这个是必须的,太低的版本不兼容
MySQL5.6 以上的数据库,用来存数据
一定要开启fileinfo和ZipArchive这两个 PHP 扩展!这两个是用来处理文件和压缩包的。
还有Composer,PHP的依赖管理器,用来装项目的依赖包
下载安装项目
准备好环境之后,就可以拉项目了。你可以直接去 GitHub 的 Release 页下最新的 v3.5.3 版本的压缩包,也可以直接用 git 克隆源码:
git clone https://github.com/flucont/btcloud.git
然后进到项目目录里,用 Composer 安装依赖,记得加--no-dev参数,这样就不会装那些开发用的工具,能把包的体积减下来:
cd btcloud
composer install --no-dev
配置 Web 服务器
接下来就是配置你的 Web 服务器了,Nginx 或者 Apache 都行,把网站的根目录指向项目里的public文件夹,这个是 ThinkPHP 的标准配置,别指错了。
然后伪静态规则用 ThinkPHP 的模式就行,官方文档里也有现成的配置,直接抄过去就行,很简单。
初始化数据库
配置好之后,你访问一下你给这个云端绑的域名,系统会自动跳转到安装向导,跟着提示走就行,输入你的 MySQL 的账号密码,它就会自动帮你创建数据库表,整个过程也就几十秒,很快就好。
第一次配置要注意这几点
装完之后,你第一次登录后台,第一件事就是用后台的批量替换工具,把默认的示例域名换成你自己的实际域名。这一步特别重要,不然所有的安装脚本和插件包的地址还是默认的,你的面板就没法从你自己的云端拿资源了。
然后就是同步插件了,你可以在后台的系统基本设置里,配置一下宝塔的官方接口,这里需要临时用一个已经绑定了账号的宝塔面板拿一下数据,之后你就可以手动或者加个定时任务,把官方的插件列表和更新包都拉到你自己的服务器上,之后就不用再连官方了。
最后一步,对接你的宝塔面板
都弄好之后,你去你自己的宝塔面板里,把系统基本设置里的接口URL改成你这个BTCloud的域名,再装个专用的适配插件,之后你的面板就会从你自己的私有云端拿资源了,完全不用再连官方的服务器,所有操作都在你自己的环境里完成。
一些实用的小提示
我自己搭的时候踩了几个小坑,这里给大家提个醒,能省不少时间:
如果插件同步失败,先检查一下 PHP 的那两个扩展有没有开,还有你的服务器能不能正常访问宝塔的官方接口,大部分问题都是这两个原因
之后要更新BTCloud的版本也很简单,直接下新的 Release 包覆盖文件就行,但是千万别删data目录,那个里面存着你的数据库配置和同步下来的所有插件数据,删了可就找不回来了
安全一定要做好,一定要给你的域名开 HTTPS,加密传输更安全,还有后台的 IP 限制也一定要开,只允许你们内部的 IP 访问,防止被别人扫到乱用
要是怕搞坏生产环境,可以先在虚拟机里测试一下,没问题了再部署到正式服务器上。