前言

搭了个自助分享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 配置。如果用其他邮箱发信请参照其他邮箱服务商的文档配置即可。

新版面板的mailgun发信设置

最新版本升级后,一些配置发生了变更,但并没有看到胖虎在更新日志或文档里体现,需要做对应的修改。
新版邮件配置放到了网站根目录下的 .env 中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
QUEUE_DRIVER=redis  #异步发信查询引擎相关配置

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=mailgun #这个地方原先是填smtp,laravel framework from 5.5 to 5.6后变更后填sendmail也行
# 下面这坨只在配置smtp或sendmail时有用
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=发信用户名
MAIL_PASSWORD=邮箱密码
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=发信邮箱
MAIL_FROM_NAME=邮件标题
MAILGUN_DOMAIN=sobaigu.com #mailgun配置的域名
MAILGUN_SECRET=key-5673e708935axxxae32f0624c2 #mailgun账户的密钥,配私钥

mailgun发信有可能会抛 401 错误,详见

新版本使用队列进行邮件异步发送,相应的还需要执行 queue ,而且还带了查询引擎参数与 .envQUEUE_DRIVER=redis 相关,所以如果和我示例中一致,还需要修改 queue 启动参数,也就是 queue.sh 中的内容,将其改成如下:

1
2
3
4
5
6
7
8
9
#!/bin/bash
ps -ef | grep queue:work | grep -v grep
if [ $? -ne 0 ]
then
echo "start queue process successfully....."
nohup php artisan queue:work redis --queue=default --timeout=60 --sleep=5 --tries=3 >> storage/logs/queue.log 2>&1 &
else
echo "queue is running....."
fi

上面的脚本中,顺手将日志存放位置改了下,正常后看见日志如:

1
2
3
[root@sobaigu logs]# tail -f queue.log 
[2019-02-16 22:04:29][z6Ig11U3jJ8MnE8EuedYXbTY3Boxxxxx] Processing: App\Mail\resetPassword
[2019-02-16 22:04:30][z6Ig11U3jJ8MnE8EuedYXbTY3Boxxxxx] Processed: App\Mail\resetPassword

修改邮件模板内容

如果想让邮件内容和别人不一样,可以自己去更改邮件模板,基本模板文件在 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改成自己要的位数

购买服务提示:无可用服务

出现在新版面板上,新版已经不开源了,一些功能逻辑已经大变,此问题出现是因为商品没有配置 套餐 ,比如只有 流量包 ,而新版中砍掉了流量包售卖,所以添加 套餐 即可。

新版vnetpanel代码加密,很多逻辑只能猜,添加商品却默认是流量包,迷之烂尾,一直都没适应