一个基于ThinkCMS3的支持多用户BT种子下载自动进行视频转码支持在线播放的程序–YunBT
介绍
基于ThinkCMS的YunBT的多用户下载程序,支持Magnet和HTTP下载。每个单独用户支持10个任务,默认下载文件最大为10GB,可以在后台修改。下载完成后用户可以直接查看下载的文件仅支持mp4文件在线播放。管理员可以添加用户的下载量及查看管理下载任务。
暂不支持下载工具下载,可以在浏览器中下载,后续将添加。
GitHub地址:https://github.com/maysrp/yunbt/tree/dev
测试站点:http://www.yunbt.net/
安装
Aria2
安装Aria2
apt-get update && apt-get install -y aria2
screen -dmS aria2 aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -c
若要下载Magnet需要导入DHT.data
PHP
php>7
lnmp下php安装fileinfo插件
lnmp1.4 安装php fileinfo扩展 方法
- 第一步:在lnmp1.4找到php安装的版本
使用命令tar -jxvf php-7.1.7.tar.bz2
解压 - 第二步: 在解压的php-7.1.7文件夹里找到fileinfo文件夹,然后使用命令
cd /home/xxx/lnmp1.4/src/php-7.1.7/ext/fileinfo
进入到fileinfo文件夹 - 第三步:输入
/usr/local/php/bin/phpize
得到数据 - 第四步: 使用如下命令编译安装
./configure -with-php-config=/usr/local/php/bin/php-config
make && make install
- 第五步:再修改/usr/local/php/etc/php.ini 查找:extension = 再最后一个extension= 后面添加上extension = “fileinfo.so” 保存,执行
/etc/init.d/php-fpm restart
重启。
Nginx
nginx修改fastcgi.conf配置
lnmp下该文件在
/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/";
Nginx 配置
下文件为lnmp下的配置
server
{
listen 80;
#listen [::]:80;
server_name yunbt.w4.pwt;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/www.yunbt.net/public;
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.yunbt.net/public/file;
}
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
location ~* ^/(file|upload)/.*\.(php|php5)$ {
deny all;
}
include enable-php.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/www.yunbt.net.log;
}
数据库
创建数据库名yunbt
用户名yunbt
密码a123456
数据库导入yunbt.sql
数据库配置 data/conf/database.php
管理员
用户名 admin
密码 a123456
cron
添加定时任务
crontab -e
*/1 * * * * curl http://www.yunbt.net/portal/cron/download
*/3 * * * * python3 /home/wwwroot/www.yunbt.net/python/cron_move.py
*/1 * * * * python3 /home/wwwroot/www.yunbt.net/python/cron_ffmpeg.py
请替换其中www.yunbt.net 为你自己的域名
python
python3
pymysql
pip3 install pymysql
cron_ffmpeg.py
- 44行:数据库配置
- 50行:设置你的web路径
cron_move.py
- 14行:设置你的web路径
- 15行:视频文件[无须修改]
- 74行:数据库配置
ffmpeg
apt-get install ffmpeg
权限修改
修改data文件夹下的权限
chmod -R 777 data/
chmod -R 777 public/
管理后台
your_domain.com/admin
目前功能:
- 添加用户下载量
- 下载管理
- 修改当前最大下载文件量[默认10GB]
- 分享功能
- 视频转码
宝塔面板安装YunBT教程
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+
、Nginx
、Mysql
。
再找到左侧软件管理-PHP
管理-设置-安装Fileinfo
扩展。
#如果Fileinfo拓展安装失败,就是内存太小,我们可以添加swap,不适用于ovz
1
、脚本添加,脚本地址:
https:
/
/www.moerats.com/archives
/722/
。
2
、面板添加,找到左侧软件管理-系统工具-安装Linux工具箱,然后进入工具箱添加。
2、下载源码
先点击左侧网站-添加站点,然后使用命令:
#
进入到网站根目录,请修改为自己网站根目录再运行
cd /www/wwwroot/www.cheshirex.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.cheshirex.com/public/file;
}
location ~* ^/(file|upload)/.*\.(php|php5)$ {
deny all;
}
4、配置数据库
点击左侧数据库-添加数据库,设置好数据库名、密码,然后手动导入网站根目录的yunbt.sql
数据库文件。
然后编辑数据库信息,使用命令:
#
进入到网站根目录,请修改为自己网站根目录再运行
cd /www/wwwroot/www.cheshirex.com
#
编辑数据库信息
nano data/conf/database.php
修改你的数据库信息,然后使用Ctrl+x
、y
保存退出。
5、添加定时任务
最后点击面板左侧计划任务-类型访问URL
,周期每1
分钟,URL
地址为https://www.cheshirex.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.bz
2 && rm -rf aria2-
*.tar.bz
2 && cd aria2-*
#开始安装
make install
后台运行:
screen
-dmS aria2 aria2c --enable-rpc --rpc-listen-all=
true
--rpc-allow-origin-all -c
安装Aria2
后,基本上算安装完成了。
最后打开网站,管理员用户名admin
、密码a123456
。后台路径/admin
。然后可以去后台自己好好编辑前台模板,ThinkCMS
功能设置还是挺多的,慢慢折腾吧。
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+x
、y
保存退出。
如果不想用nano
命令修改,那可以直接使用sed
命令修改:
sed
-i
"s#Enable_PHP_Fileinfo=.*#Enable_PHP_Fileinfo='y'#"
'lnmp.conf'
由于安装Fileinfo
有点需要内存,如果内存太低(包括512M
),建议提前加点Swap
,Swap
一键脚本→传送门。
开始安装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.cheshirex.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+x
、y
保存退出。
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.cheshirex.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.cheshirex.com/public/file;
}
location ~* ^/(file|upload)/.*\.(php|php5)$ {
deny all;
}
最后使用lnmp restart
命令重启lnmp
。
6、设置定时任务
#将域名修改成自己的
echo
"*/1 * * * * curl https://www.cheshirex.com/portal/cron/download"
> bt.cron
crontab bt.cron
rm -rf bt.cron
还有最后一步就是安装Aria2
,这个教程看上面宝塔面板那里的Aria2教程即可。