前言

搭了个自助分享SSR的平台,供亲朋好友获取资源所用。用了SSR面板,功能很实用也够用。
在搭建过程中,基本上根据官方说明文档都能一步步完成,在邮件通知提醒配置时费了不少事,而且胖虎的邮件配置示例有误导性,将这些坑整理下。

最近看到不少小白在项目下提issue,好多人文档看了当白看,或者也没舍得多动下手,也是让人倍感无力

加入NGINX的URL重写规则

在搭建环境最后一步,有个加入NGINX的URL重写规则如下:

1
2
3
location / {
try_files $uri $uri/ /index.php$is_args$args;
}

这一步直接复制说明文档代码到nginx配置中有可能会出现nginx报错,请多注意结尾符,原配置是不是已经包含根目录的规则等,详见Nginx Location语法与简单配置

出现500错误

官方提及的是出现 open_basedir错误,照官方wiki文档先操作

1
2
3
4
vim /usr/local/nginx/conf/fastcgi.conf
#找到下面这句把它注释掉
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
#保存 重启nginx 且 重启 php-fpm

如果不灵验,注意检查是不是站点文件权限有问题,用chown -R www:www命令更改一遍,再不行检查nginx设置。

其他错误可见:解决SSRPanel面板用户登录报错

定时任务

发邮件、流量统计、自动任务全部需要用到,所以出现流量统计为0,用户过期不自动禁用等问题请检查定时任务状态,官方文档如是:

1
2
3
# crontab加入如下命令:
* * * * * php /home/wwwroot/ssrpanel/artisan schedule:run >> /dev/null 2>&1
# 请自行修改ssrpanel路径

该定时任务表示每分钟都执行定时任务,具体什么任务什么时候执行程序里已经定义了,请不要乱改,否则流量统计数据可能出错

官方没有提用哪个用户,站点属于 www 用户,如果任务属于 root ,那么创建的log文件属于 root,到时候操作面板上的功能会触发报错:

1
2
3
(1/1) UnexpectedValueException
The stream or file "xxx/laravel-2018-01-09.log" could not be opened:
failed to open stream: Permission denied

如果要解决这个问题,我们需要将任务计划指定给 www 用户执行,用下面的命令编辑定时任务:

1
crontab -e -u www

填入对应的任务计划,原先root的任务删除掉即可。如果定时任务不执行,请检查是不是 www 目录不存在,详见:记一次系统任务无法正常执行

SMTP邮件发信配置

一如既往的按官方文档操作,编辑 config\mail.php ,配置如下内容:

1
2
3
4
5
6
7
8
9
10
'driver' => 'smtp',
'host' => 'smtp.exmail.qq.com', #如果不是企业邮箱,请把`.exmail`这节去掉
'port' => 465,
'from' => [
'address' => 'xxx@qq.com',
'name' => 'SSRPanel',
],
'encryption' => 'ssl',
'username' => 'xxx@qq.com',
'password' => 'xxxxxx', #这里不是你邮箱密码,是开启功能时腾讯给你的授权码

懒得换其他邮箱都直接用了示例的QQ邮箱配置,请注意下 hostpassword 配置。如果用其他邮箱发信请参照其他邮箱服务商的文档配置即可。

修改邮件模板内容

如果想让邮件内容和别人不一样,可以自己去更改邮件模板,基本模板文件在 app\Mail 目录下,邮件正文也可以改 resources\views\emails 里面的文件,具体内容打开看就明白了,或者整个目录搜索自己想找的内容,然后按照自己需求更改即可。

限制单用户设备数

修改每个节点的 protocolauth_chain_a,然后 把 protocol_param 设置为某个值,比如 3#,这样单用户最多就只能3个设备连接使用,请注意协议必须是 auth_chain_a

限制单连接或单用户速度

这个开发者说商业价值比较大,不会放出来,胖虎有点唬人,因为速度什么的根本不是面板控制的,面板只是管能不能连,回头把使用量做个记录。大致也是在节点上做文章,可自行去测试下节点用户配置:

1
2
"speed_limit_per_con": 0,
"speed_limit_per_user": 20480,

修改订阅地址长度

如果对此有强迫症,可以自己改代码

1
/app/Http/Controllers/Controller.php

找到 makeSubscribeCode方法中

1
$code = makeRandStr(5); #把5改成自己要的位数