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

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

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

截图



说明

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

环境要求:Nginx、PHP >= 7、Mysql、Aria2、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、添加网站和数据库

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

4、下载源码

#进入到网站根目录,请修改为自己网站根目录再运行
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保存退出。

5、修改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

6、设置定时任务

#将域名修改成自己的
echo "*/1 * * * * curl http://www.moerats.com/portal/cron/download" > bt.cron
crontab bt.cron
rm -rf bt.cron

还有最后一步就是安装Aria2,这个教程看文章最后面。

宝塔安装

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+NginxMysql

再找到左侧软件管理-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保存退出。

5、添加定时任务
最后点击面板左侧计划任务-类型访问URL,周期每1分钟,URL地址为http://www.moerats.com/portal/cron/download,请先修改为自己的域名后再添加。

还有最后一步就是安装Aria2,这个教程看下面。

安装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功能设置还是挺多的,慢慢折腾吧。

原文地址:https://www.cnblogs.com/dnjslt/p/10159414.html

时间: 2024-10-07 21:03:36

yunBT:一个基于TP3.1的多用户BT离线下载程序,支持在线播放的相关文章

一个基于Tp3.2(thinkphp3.2)的工会管理系统

该系统包括11个模块. 会员管理模块 奖惩管理模块 运动会管理模块 新闻管理模块 文档管理模块 经费管理模块 电子提案管理模块 用户管理模块 权限管理模块 系统管理模块 系统的登录 系统主页 这里只是简单的介绍 具体请研究源代码:https://github.com/BlueSimle/union

一个基于OCV的人肉选取特征点程序

基于OpenCV写了一个交互式获取图片上的人肉选取的特征,并保存到文件的小程序. 典型应用场景:当在一个精度不高的应用需求中,相机分辨率差或者变形严重,某些棋盘点通过代码检测不出,就可以通过手工选取的方式. 使用 通过界面的trackbar来缩放图片 单击右键设置显示中心点 单击左键选取并记录点 'c'来取消上一次取点 'q'退出并保存数据 界面 代码 #include <opencv2/opencv.hpp> #include <iostream> #include <st

eShopOnContainers 是一个基于微服务的.NET Core示例框架

找到一个好的示例框架很难,但不是不可能.大多数是小型Todo风格的应用程序,通常基于SimpleCRUD.值得庆幸的是,Microsoft已经为eShopOnContainers创建了一个基于微服务的.NET Core示例应用程序. eShopOnContainers是 .NET Core示例应用框架,由Microsoft提供支持,基于简化的微服务架构和Docker容器技术. 这个示例应用程序在服务器和客户端是跨平台的,这要归功于.NET Core服务能够在Linux或Windows容器上运行,

搭建基于 Anaconda 管理的多用户 JupyterHub 平台

搭建基于 Anaconda 管理的多用户 JupyterHub 平台 情况:计算工作站放在实验室,多个同学需要接入使用,且需要各自独立的环境,并使用 Jupyter notebook 平台以方便协作. 步骤 1. 安装 Anaconda 由于是多人环境,应调用 root 权限在安装过程中指定安装到 /opt/anaconda/ 路径下,这样所有用户均可读,但无法直接在 base 环境下安装模块. 为了让每个用户都能访问到 conda,需要逐个在用户的 .bashrc 文件中加入 export P

一个基于Android系统的新闻客户端(一)

一.整体概述 在服务器端,通过对凤凰网的抓取存入数据库,客户端通过向服务器发送请求得到新闻. 服务端用WCF,宿主为window服务,客户端为Java写的安卓程序. 二.客户端 我在eclipse里新建了个Android项目,命名为MyNewClient,eclipse自动生成二个xml布局文件,如图: 其中,fragment_main.xml是新版的布局文件,暂时不会用,把它删掉. 新建xml文件,命名为activity_foot.xml,在这里我们要做app的底部,先上代码: <?xml v

一个基于.NET平台的自动化/压力测试系统设计简述(可独立运行,提供源码)

AutoTest系统设计概述 AutoTest是一个基于.NET平台实现的自动化/压力测试的系统,可独立运行于windows平台下,支持分布式部署,不需要其他配置或编译器的支持.(本质是一个基于协议的测试工具),前面还有一篇对其功能的简单介绍[http://www.cnblogs.com/lulianqi/p/4773146.html] AutoTest用于发布的部分有2个部分,主程序[AutoTest.exe]及分布式部署程序[RemoteService.exe](用于将将测试业务分布式部署到

如何设计一个基于云计算的大型分布式系统

当今云计算被炒的沸沸扬扬,云计算显然已经是软件行业的大势所趋,如何设计一个基于云计算的大型分布式系统呢,下面基于云计算架构大型分布式系统展开鄙人的一点短浅的理解与见识. 首先,整个系统包含若干个系统模块,也就是子系统,每个子系统都单独的运行于一个计算机集群中,每个计算机集群包含若干台计算机. 其次,要设计一个整个系统的核心调度系统,这个调度系统运行在一个单独的计算机集群中,我们姑且将这个计算机集群叫做集群A,而这个核心调度系统只是负责记录系统的核心日志,存储每个子系统的文件位置块与索引,负责调度

简述人脸特异性识别&amp;&amp;一个基于LBP和SVM的人脸识别小例子

原谅我用图片,MAC在Safari里给文章进行图文排版太麻烦啦~ 本文适合初入计算机视觉和模式识别方向的同学们观看~ 文章写得匆忙,加上博主所知甚少,有不妥和勘误请指出并多多包涵. 本文Demo的代码由HZK编写,特征点由月神和YK选择和训练. 转载请注明 copyleft by sciencefans, 2014 为了方便大家学习,附上高维LBP的核心代码 1 ################################################### 2 # 3 # 4 # NO

jmGraph:一个基于html5的简单画图组件

jmGraph:一个基于html5的简单画图组件 特性: 代码书写简单易理解 面向对象的代码结构 对图形控件化 样式抽离 模块化:入seajs实现模块化开发 兼容性:暂只推荐支持html5的浏览器:ie9+,chrome,firefox等. jiamao/jmgraph · GitHub APIs jmgraph是一个基于html5的WEB前端画图组件. 前端画图对象控件化,支持鼠标和健盘事件响应,可对单个控件样式设定,支持简单的动画处理.可大大地简化前端画图.