很多人安装ss-panel-v3版本会错误,发帖子说有点复杂不会安装,所以写篇文章记录下。。。
就以 ss-panel-v3 魔改版 为例子,其实官方的更简单。
然而并不好用,还是v2好用。。
参考:https://www.zhaojin97.cn/read-3289.html
感觉原帖讲得太复杂
首先需要安装好lnmp环境,这个可以自己下载个一键脚本安装。
环境是:CentOS 6.5 i386
一、安装和配置radius
yum install perl-DBI freeradius freeradius-mysql freeradius-utils
关于编辑配置文件,我会把要改的所在行也写出来,方便快速找到位置,现在的版本是:freeradius-2.2.6-6,以后的版本位置可能会变。
1.编辑 radiusd.conf
vim /etc/raddb/radiusd.conf
在735行:
$INCLUDE sql.conf // 去掉前面的#
在747行:
找到$INCLUDE sql/mysql/counter.conf //去掉前面的#
2.编辑 sql.conf
vim /etc/raddb/sql.conf
找到以下内容,去掉#注释,并把信息改成你所对应的,下面第二段有创建radisu数据及radius的用户的步骤,和下面第二段一致(前面是行号,不要也写在配置文件中,以下所有内容都是)
36 server = "localhost" 37 port = 3306 38 login = "radius" 39 password = "password" 108 readclients = yes //去掉注释改为yes
3.编辑 default
vim /etc/raddb/sites-enabled/default
找到authorize段 注释files 打开sql 也可以把unix关掉
170 # files 177 sql
找到preacct段 注释files
373 # files
找到accounting段 打开sql 也可以把unix关掉
407 sql
找到session段 打开sql
455 sql
找到post-auth段 打开sql
476 sql
找到pre-proxy段 注释files
596 # files
4.编辑 dialup.conf
vim /etc/raddb/sql/mysql/dialup.conf
找到 simul_count_query 那几行去掉注释
290 simul_count_query = "SELECT COUNT(*) \ 291 FROM ${acct_table1} \ 292 WHERE username = '%{SQL-User-Name}' \ 293 AND acctstoptime IS NULL"
5.编辑 dictionary
vim /etc/raddb/dictionary
末尾添加以下内容
ATTRIBUTE Max-Monthly-Traffic 3003 integer ATTRIBUTE Monthly-Traffic-Limit 3004 integer
6.编辑 default
vim /etc/raddb/sites-enabled/default
找到authorize 在该区域的尾部(即“}”前一行)添加以下内容
monthlytrafficcounter
7.编辑 counter.conf
vim /etc/raddb/sql/mysql/counter.conf
末尾加入:
sqlcounter monthlytrafficcounter { counter-name = Monthly-Traffic check-name = Max-Monthly-Traffic reply-name = Monthly-Traffic-Limit sqlmod-inst = sql key = User-Name reset = monthly query = "SELECT SUM(acctinputoctets + acctoutputoctets) DIV 1048576 FROM radacct WHERE UserName='%{%k}' AND UNIX_TIMESTAMP(AcctStartTime) > '%b'" }
二、创建数据库以及导出数据
radius配置文件已经修改完毕
现在需要用mysql创建两个数据库以及两个用户
分别是radius数据库和radius用户,ss用户和ss数据库
输入mysql命令进入数据库
输入以下命令:
create database radius; create database ss; grant all on radius.* to 'radius'@'localhost' identified by 'password'; grant all on ss.* to 'ss'@'localhost' identified by 'password'; grant all on ss.* to 'ss'@'%' identified by 'password'; flush privileges;
下载一个sql数据库文件(radius相关):
wget https://www.zhaojin97.cn/wp-content/uploads/2016/03/4ee929bbfba5feedc4b766b0c93614ce201603250609559975.zip unzip 4ee929bbfba5feedc4b766b0c93614ce201603250609559975.zip
解压会得到一个 all.sql 文件,执行以下命令并输入密码导入到radius数据库中
mysql -uradius -p radius < all.sql
进入mysql 执行以下命令
use radius; INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Auth-Type',':=','Local'); INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Service-Type',':=','Framed-User'); INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Framed-IP-Address',':=','255.255.255.255'); INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Framed-IP-Netmask',':=','255.255.255.0'); INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Acct-Interim-Interval',':=','600'); INSERT INTO radgroupcheck (groupname,attribute,op,value) VALUES ('user','Max-Monthly-Traffic',':=','10240000'); INSERT INTO radgroupcheck (groupname,attribute,op,VALUE) VALUES ('user','Simultaneous-Use',':=','10');
引用自原博主的话:
acct-interim-interval是计算流量的间隔(600秒),意味着每隔10分钟记录当前流量
Max-Monthly-Traffic是每月最大流量,Simultaneous-Use是允许每个用户同时连接的客户端数量
现在来下载 魔改版的ss-panel-v3安装包(其实我一直我不懂魔改版是啥意思)
mkdir /web; cd /web wget https://git.zhaojin97.cn/glzjin/ss-panel-v3-publicv2/archive/master.tar.gz tar xf master.tar.gz rm -rf master.tar.gz chown -R php-fpm.php-fpm /web // 修改权限,php-fpm以哪个用户身份启动,就赋予/web目录哪个用户的权限。
然后在web目录下找到 glzjin_1.sql ,glzjin_2.sql,glzjin_3.sql,glzjin_4.sql 4个sql文件
先合并成一个sql文件
cat glzjin_1.sql ,glzjin_2.sql,glzjin_3.sql,glzjin_4.sql > web.sql
编辑 web.sql文件,把所有utf8mb4改为utf8
保存
现在导入:
mysql -uss -p ss < web.sql
三、配置 ss-panel-v3
在web目录下找到 .example.env文件改为.env文件
mv .env.example .env
就说几个点:
# database 数据库配置 // 这里填写ss数据库相关的信息,比如上面创建的ss用户以及ss数据库,信息就写在这里
#radius 数据库信息 // 这里填写radius数据库相关的信息,比如上面创建的radius用户以及radius数据库,信息就写在这里
还有注意下
authDriver = 'cookie' // 登录验证存储方式,推荐使用Redis 可选: cookie,redis
如果选择 redis 那么还需要安装 redis,不然肯定是会出错的。
yum -y install redis service redis start
其它的都比较简单就不说了
再贴一个完整的nginx配置文件
server { listen 80; server_name www.123.com 123.com; index index.html index.htm index.php; root /web/public; location / { try_files $uri $uri/ /index.php$is_args$args; } error_page 404 /404.html; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /web/public$fastcgi_script_name; } }
都修改好了就可以启动 redis radiusd php-fpm nginx
radiusd 没能启动去看看日志,一般来说就是上面的修改文件内容的步骤没做好,多个符号啊或是少个符号啊。
如果提示 radclient:: Failed to find IP address for
解决方法很简单给/etc/hosts添加主机名解析就可以
具体可以日志
tail -F /var/log/radius/radius.log
嗯,还提一点,v2升级v3改下数据库的user表就行,把没有的字段都添加上,没有添加成功的具体表现是登陆的时候提示成功,但是进不去。
更详细的内容请看原帖,或是官方wiki。。
因为我只是安装了下,还不想用。。。