前言

ssrpanel开源版已经不维护了,新版vnetpanel一直都不适应,索性重新琢磨下最开始的sspanel,做个基础笔记,方便自己折腾的时候复制粘贴用。

实施步骤

总体来说也没啥复杂的过程,将要输的命令放一个 sh 脚本里执行就可以了,遇到什么问题根据错误提示解决什么问题即可。

安装基础环境

sspanel依赖PHP+MySQL环境,还需要个nginx负责前端,一般安装LNMP即可。安装环境过程不表,最简单的一键脚本或者宝塔大法等安装即可,都是一键的,傻白甜推荐直接宝塔大法。
PHP版本建议是7.2+,删除 system、proc_open、proc_get_status、putenv 等禁用函数。
安装完了环境便可建立一个网站,设置好网站目录,数据库等信息。

克隆仓库文件

sspanel众多版本,目前最活跃的当属 Anankke 负责维护的 SSPanel-Uim,如果需要稳定,建议用 master 分支,dev 分支指不定有什么坑。

1
2
3
4
5
6
# 切换到网站目录,以宝塔大法为例,以sspanel这个网站目录为例
cd /www/wwwroot/sspanel
# 把master分支仓库克隆到当前目录下的tmp目录下
git clone -b master https://github.com/Anankke/SSPanel-Uim.git tmp
# 将仓库移到当前目录并硬恢复仓库文件
mv tmp/.git . && rm -rf tmp && git reset --hard

部署安装

程序准备就绪就可以进入安装阶段了,以下步骤执行完会安装一大坨依赖。

1
2
3
4
5
cd /www/wwwroot/sspanel
wget https://getcomposer.org/installer -O composer.phar
php composer.phar
php composer.phar install
chown -R www.www ../sspanel

如果某依赖库路径不存在,在执行 php composer.phar install 安装命令时会报错,如:

Your requirements could not be resolved to an installable set of packages.

Problem 1

- The requested package charlottedunois/yasmin could not be found in any version, there may be a typo in the package name.

此时网络上查找下,修正为正确的包路径,此处将 composer.json 中的 charlottedunois/yasmin 修改为 laravel-discord/yasmin ,然后再执行以上安装命令即可。
至此,程序安装工作就完成了。

初始化

新建网站时需要初始化数据库和配置等,一般修改完成后后期就很少变动了。

导入数据库文件

以下方法任选其一,傻白甜强烈建议宝塔大法。
宝塔大法界面上导入:

1
2
创建个链接到宝塔数据库备份目录
ln -s /www/wwwroot/sspanel/sql/glzjin_all.sql /www/backup/database/

以上链接创建完,宝塔面板上数据库菜单点进去,点 导入 ,然后选择该数据即可。或者打开 phpmyAdmin 面板去导入即可,都是可视化的界面。

命令行方式导入:

1
2
3
4
5
6
cd /www/wwwroot/sspanel/
mysql -u 用户 -p
#输入数据库的密码,注意:这里输入密码是看不到的,直接回车就行
use 你创建的数据库;
source sql/glzjin_all.sql;
exit;

创建管理员

1
2
3
4
5
6
7
8
9
10
cd /www/wwwroot/sspanel/
# 创建管理员账号
php xcat createAdmin
# 同步管理员账号
php xcat syncusers
# 纯真 IP 数据库
php xcat initQQWry
php xcat resetTraffic
# 初始化客户端工具下载
php xcat initdownload

修改配置

1
2
3
cd /www/wwwroot/sspanel/
cp config/.config.example.php config/.config.php
vim config/.config.php

打开 .config.php 可见每行配置的注释,根据实际情况填写即可。注释都是汉字的,相信也没什么好解释的。

设置定时任务

使用 crontab -e -u www 命令编辑系统定时任务,有些任务是根据自身需求的,自行斟酌。

这几条都是必须的:

1
2
3
4
30 22 * * * php /www/wwwroot/sspanel/xcat sendDiaryMail
0 0 * * * php -n /www/wwwroot/sspanel/xcat dailyjob
*/1 * * * * php /www/wwwroot/sspanel/xcat checkjob
*/1 * * * * php /www/wwwroot/sspanel/xcat syncnode

以下是可选的:

1
2
3
4
5
6
7
8
9
10
11
12
#每 20 分钟备份 1 次
*/20 * * * * php -n /www/wwwroot/网站目录/xcat backup
#发送财务报表
5 0 * * * php /www/wwwroot/网站目录/xcat sendFinanceMail_day
6 0 * * 0 php /www/wwwroot/网站目录/xcat sendFinanceMail_week
7 0 1 * * php /www/wwwroot/网站目录/xcat sendFinanceMail_month
#检测是否被墙
*/1 * * * * php /www/wwwroot/网站目录/xcat detectGFW
#如果要用到 radius添加以下任务
*/1 * * * * php /www/wwwroot/网站目录/xcat synclogin
*/1 * * * * php /www/wwwroot/网站目录/xcat syncvpn
*/1 * * * * php -n /www/wwwroot/网站目录/xcat syncnas

系统定时任务规则可自行查看帮助,或者网络搜索解决。

如何升级

升级时前面的一些动作就不用做了,需要做的就是拉取最新的程序文件,并xcat更新下即可。

1
2
3
4
5
cd /www/wwwroot/sspanel
git fetch --all
#下面这个步骤默认会丢失除 .config.php 文件以外的所有改动,因此请自行做好文件备份。
git reset --hard origin/master
git pull

拉取最新的文件后,然后在网站目录下,执行下述命令升级 config

1
2
cd /www/wwwroot/sspanel
php xcat update

上述命令会在 迁移/更新 操作之前自动备份原 config 文件到 .config.php.bak,迁移/更新操作完成之后会为你输出新旧配置之间的差异