Rat's

yunBT:一个基于ThinkCMS的多用户BT离线下载程序,支持在线播放
说明:yunBT这个项目其实很早就有了,只是老没更新,现在作者基于ThinkCMS重做该程序,支持多用户注册下载,...
扫描右侧二维码阅读全文
20
2018/12

yunBT:一个基于ThinkCMS的多用户BT离线下载程序,支持在线播放

说明:yunBT这个项目其实很早就有了,只是老没更新,现在作者基于ThinkCMS重做该程序,支持多用户注册下载,MagnetHTTP下载。每个单独用户支持10个任务,默认下载文件最大为10GB,可以在后台修改。下载完成后用户可以直接查看下载的文件仅支持mp4文件在线播放。管理员可以添加用户的下载量及查看管理下载任务,支持在线转码,分享功能等。

由于该程序刚出来,功能较少,暂不支持下载工具下载,可以在浏览器中下载,后续将添加,而且作者计划以后会增加积分功能、邀请功能、工具下载、使用Onedrive存储视频等,有兴趣的可以期待下。

截图

请输入图片描述
请输入图片描述
请输入图片描述

功能

  • 添加用户下载量
  • 下载管理
  • 修改当前最大下载文件量[默认10GB
  • 分享功能
  • 视频转码
  • 工具下载
  • 后台转码控制
  • Dplayer播放器
  • 水印添加
  • 视频切片

更新

【2019年1月16】
教程更新,新增python3环境
【2018年12月30】
由于功能变更,新增FFmpeg、Redis安装方法。

说明

项目地址:https://github.com/maysrp/yunbt/tree/dev

环境要求:Nginx、PHP >= 7、Mysql、Aria2、Redis、FFmpeg、Python3、Fileinfo拓展。

由于博主计划使用军哥的lnmp写教程,写完后发现有些同学想用宝塔面板,所以这里2种方法都写,纯小白建议用宝塔面板。

LNMP安装

1、安装lnmp
这里使用军哥的lnmp 1.5一键包,使用命令:

#下载并解压压缩包
wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz
#进入安装文件夹
cd lnmp1.5
#由于一键包默认不安装Fileinfo拓展,所以我先编辑下安装配置文件
nano lnmp.conf

然后将Enable_PHP_Fileinfo='n'后面的n改成y,然后使用Ctrl+xy保存退出。

如果不想用nano命令修改,那可以直接使用sed命令修改:

sed -i "s#Enable_PHP_Fileinfo=.*#Enable_PHP_Fileinfo='y'#" 'lnmp.conf'

由于安装Fileinfo有点需要内存,如果内存太低(包括512M),建议提前加点SwapSwap一键脚本→传送门

开始安装lnmp,使用命令:

./install.sh lnmp

然后输入数据库密码,选择PHP 7+版本,直到安装完成,更多安装选择查看→传送门

2、安装Fileinfo

提示:使用本教程的方法安装lnmp 1.5的可以跳过该步骤。

如果你已经安装过军哥的lnmp一键包,那么你可以先看下有没有安装过fileinfo,使用命令:

#如果有输出fileinfo信息,则已安装
php -m | grep fileinfo

没输出信息的话,那就安装下,安装方法:

#lnmp 1.4及更低版本
#进入到根目录下lnmp安装包目录,要是之前删除了,直接去https://lnmp.org/download.html下载并解压
cd lnmp1.4
#修改upgrade_php.sh,将里面的--disable-fileinfo全部删除
nano include/upgrade_php.sh
#然后升级php
./upgrade.sh php

#lnmp 1.5+版本
方法参考上面,先修改lnmp安装包目录下的lnmp.conf文件,将里面的Enable_PHP_Fileinfo='n'后面的n改成y保存,然后使用 ./upgrade.sh php升级。

3、安装Redis

cd /root/lnmp1.5
./addons.sh install redis

4、添加网站和数据库

lnmp vhost add

然后输入你的域名,并创建一个数据库,大致如下:

#创建数据库这里,这里演示的数据库名和用户为yunbt,密码为a123456。
Create database and MySQL user with same name (y/n) y
Enter database name: yunbt
Please enter password for mysql user yunbt: a123456

5、下载源码

#进入到网站根目录,请修改为自己网站根目录再运行
cd /home/wwwroot/www.moerats.com
#下载源码
wget https://github.com/maysrp/yunBT/archive/dev.zip
#解压并删除压缩包
unzip dev.zip && rm -rf dev.zip
#移动到根目录
mv yunBT*/* ./
#授权
chmod -R 777 data/
chmod -R 777 public/
#再导入根目录的yunbt数据库文件,先修改为自己的数据库名和密码后运行
mysql -uyunbt -pa123456 yunbt < yunbt.sql
#编辑数据库信息
nano data/conf/database.php

修改你的数据库信息,然后使用Ctrl+xy保存退出。

6、修改nginx配置
编辑fastcgi.conf

nano /usr/local/nginx/conf/fastcgi.conf

修改以下参数:

#fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/../:/tmp/:/proc/";

再编辑域名配置文件:

#修改为自己域名后运行
nano /usr/local/nginx/conf/vhost/www.moerats.com.conf

在适当位置添加以下代码:

#先修改下面的域名路径后,再添加进去
location / {
if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=/$1 last;
    }
        rewrite ^/file/(.*) /file.php?file=$1 last;
}
location /afile{
            internal;
            alias /home/wwwroot/www.moerats.com/public/file;
    }
location ~* ^/(file|upload)/.*\.(php|php5)$ {  
    deny all; 
}

最后使用lnmp restart命令重启lnmp

完成上面步骤后还有最后几步就是配置python3、设置定时任务、安装Aria2FFmpeg,这个教程看下面。

宝塔安装

1、安装宝塔

#CentOS系统
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
#Ubuntu系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
#Debian系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

安装完成后,进入面板,点击左侧软件管理,然后安装PHP 7+NginxMysqlRedis

再找到左侧软件管理-PHP管理-设置-安装Fileinfo扩展。

#如果Fileinfo拓展安装失败,就是内存太小,我们可以添加swap,不适用于ovz
1、脚本添加,脚本地址:https://www.moerats.com/archives/722/。
2、面板添加,找到左侧软件管理-系统工具-安装Linux工具箱,然后进入工具箱添加。

2、下载源码
先点击左侧网站-添加站点,然后使用命令:

#进入到网站根目录,请修改为自己网站根目录再运行
cd /www/wwwroot/www.moerats.com
#下载源码
wget https://github.com/maysrp/yunBT/archive/dev.zip
#解压并删除压缩包
unzip dev.zip && rm -rf dev.zip
#移动到根目录
mv yunBT*/* ./
#授权
chmod -R 777 data/
chmod -R 777 public/

3、配置网站
进入到域名设置,点击网站目录,去除跨站攻击的,并设置运行目录为public

再点击伪静态设置,填入以下代码:

#先修改下面的域名路径后,再添加进去
location / {
if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=/$1 last;
    }
        rewrite ^/file/(.*) /file.php?file=$1 last;
}
location /afile{
            internal;
            alias /www/wwwroot/www.moerats.com/public/file;
    }
location ~* ^/(file|upload)/.*\.(php|php5)$ {  
    deny all; 
}

4、配置数据库
点击左侧数据库-添加数据库,设置好数据库名、密码,然后手动导入网站根目录的yunbt.sql数据库文件。

然后编辑数据库信息,使用命令:

#进入到网站根目录,请修改为自己网站根目录再运行
cd /www/wwwroot/www.moerats.com
#编辑数据库信息
nano data/conf/database.php

修改你的数据库信息,然后使用Ctrl+xy保存退出。

完成上面步骤后还有最后几步就是配置python3、设置定时任务、安装Aria2FFmpeg,这个教程看下面。

配置python3

安装python3

#CentOS系统
wget https://www.moerats.com/usr/shell/Python3/CentOS_Python3.6.sh && sh CentOS_Python3.6.sh

#Debian系统
wget https://www.moerats.com/usr/shell/Python3/Debian_Python3.6.sh && sh Debian_Python3.6.sh

#由于Ubuntu 16+自带Python3,所以只需要安装pip3就可以了
apt install python3-pip -y

安装依赖:

pip3 install pymysql

编辑配置文件:

#配置文件均在根目录的python目录里
#cron_ffmpeg.py文件
44行:数据库配置
50行:设置你的web路径

#cron_move.py文件
14行:设置你的web路径
15行:视频文件[无须修改]
74行:数据库配置

#cron_download.py文件
3行:限制下载最大值[单位GB]默认10GB

#cron_m3u8.py文件
10行:数据库配置
17行:设置你的web路径[/public]

设置定时任务

直接使用命令:

#将域名修改成自己的
echo "*/1 * * * * curl http://www.moerats.com/portal/cron/download
*/3 * * * * python3 /home/wwwroot/www.moerats.com/python/cron_move.py
*/1 * * * * python3 /home/wwwroot/www.moerats.com/python/cron_ffmpeg.py
*/1 * * * * python3 /home/wwwroot/www.moerats.com/python/cron_m3u8.py
*/30 * * * * python3 /home/wwwroot/www.moerats.com/python/cron_download.py" > bt.cron
crontab bt.cron
rm -rf bt.cron

安装FFmpeg

#下载ffmpeg二进制
wget https://www.moerats.com/usr/down/ffmpeg/ffmpeg-git-$(getconf LONG_BIT)bit-static.tar.xz
#解压文件
tar xvf ffmpeg-git-*-static.tar.xz
#移动ffmpeg可执行文件
mv ffmpeg-git-*/ffmpeg  ffmpeg-git-*/ffprobe /usr/bin/
#删除文件
rm -rf ffmpeg-git-*

安装Aria2

#64位系统下载静态文件
wget https://github.com/q3aql/aria2-static-builds/releases/download/v1.34.0/aria2-1.34.0-linux-gnu-64bit-build1.tar.bz2
#32位系统下载静态文件
wget https://github.com/q3aql/aria2-static-builds/releases/download/v1.34.0/aria2-1.34.0-linux-gnu-32bit-build1.tar.bz2

#解压文件并进入文件夹
tar jxvf aria2-*.tar.bz2 && rm -rf aria2-*.tar.bz2 && cd aria2-*
#开始安装
make install

后台运行:

screen -dmS aria2 aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -c

安装Aria2后,基本上算安装完成了。

最后打开网站,管理员用户名admin、密码a123456。后台路径/admin。然后可以去后台自己好好编辑前台模板,ThinkCMS功能设置还是挺多的,慢慢折腾吧。

Vultr注册就送$50,可开日本/新加坡等机房,【点击注册】。
最后修改:2019 年 01 月 16 日 11 : 15 PM

发表评论

29 条评论

  1. taotao

    domain/dir.php 页面报错(UI用户中心-点击文件名右边的文件夹图标报错)
    Warning: sort() expects parameter 1 to be array, null given in /www/wwwroot/domain/public/dir.php on line 42
    Warning: Invalid argument supplied for foreach() in /www/wwwroot/domain/public/dir.php on line 336
    点击文件夹图标,依次打文件目录直到能看到文件,图片文件点下载正常,其它类型文件点下载 404 Not Found nginx

  2. Benladen

    一直system error,什么意思,哭了。。

    1. Rat's
      @Benladen

      这是安装好了后出现的错误吗?

      1. Benladen
        @Rat's

        是的,都是按教程设置的,宝塔。显示:
        页面错误!请稍后再试~
        ThinkPHP V5.0.23 { 十年磨一剑-为API开发设计的高性能框架 }

        1. Rat's
          @Benladen

          那就不太清楚了,很久么玩过了,你要是会玩的话,可以开启debug看看。

  3. zhicheng

    求问数据库如何手动导入。

    1. zhicheng
      @zhicheng

      没事了,已解决

  4. 小黑

    大佬,以后脚本里的附件能不能放github上面。。
    https://www.moerats.com/usr/shell/Python3/Python-3.6.4.tar.gz
    各种拉不动。。。。

    1. Rat's
      @小黑

      这2天一直被打,现在恢复了,然后你会体验飞一般的感觉

  5. 少爷

    安装FFmpeg ffmpeg-git-$(getconf LONG_BIT)bit-static.tar.xz 这个文件404了

    1. Rat's
      @少爷

      原来的库被删了,已换到自己的服务器了,你再重新安装吧

  6. junlin

    screen -dmS aria2 aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -c

    请问博主 这个怎么运行????ssh运行提示:
    -bash: screen: command not found

    1. Rat's
      @junlin

      需要安装screen,CentOS运行命令:yum install screen,Debian/Ubuntu运行:apt install screen

  7. 嘻嘻

    安装好了,但是提交种子下载,提示页面错误

    1. Rat's
      @嘻嘻

      程序更新了,有空我更新下教程,然后你再试试吧,或者自己看Github项目地址,单独尝试下。

      1. 嘻嘻
        @Rat's

        谢谢,博主。尽快更新啊

        1. 路人甲
          @嘻嘻

          看了一下,提交不了种子好像是用户权限错了,chown -R www /home/wwwroot/* 好像就解决了,另外博主这个自己装了一半放弃了,之后按作者的那个去装,貌似很多个.py都需要改

          1. Rat's
            @路人甲

            我这个教程目前不能用了,作者那更新了。

  8. andy

    安装好了,但是添加下载任务的时候无论是磁力还是种子,都不显示种子的任何信息,任务里面没有文件名,文件大小,也没有速度。。。。诶。。。

    1. andy
      @andy

      有了,,,刚去看,,等了n分钟。。。

  9. yardr

    下载的文件是储存在那个地方啊?

    1. Rat's
      @yardr

      public/file/download,这个教程我更新下,作者好像加了功能。

  10. 千机

    老哥,是基于 thinkcmf,搜半天没结果,看了下测试页面的源码发现是 thinkcmf

    1. Rat's
      @千机

      额,我改下标题,这是作者的标题,就顺便抄了

  11. sooele

    转发收藏了

  12. 666

    这是需要大盘鸡的吧。。。

    1. Rat's
      @666

      对,等作者支持onedrive看看。

      1. demo11
        @Rat's

        作者两年没更新了

        1. Rat's
          @demo11

          说明里貌似说了,你看的大概是2年前是老项目,我发的是新项目,前两天作者才发布的。不过都在一个项目里,只是分支不一样,https://github.com/maysrp/yunbt/tree/dev这个是新项目分支。