初步搭建开源PT程序NexusPHP

本学期开学,宿舍里最大的变化就是学校正式开通了LCU-Wifi宿舍无线,属于教育网双栈,30M/s ipv4,100M/s ipv6。
比较坑的是,我校ipv6使用也需要登陆,还好没有v4的流量限制。使用ipv6去TUNA镜像网站下载速度能跑满网速。前期听老师们说v6可以高速PT下载,自己就在网上找了找资料。

PT(Private Tracker)下载其实也是Bt下载的一种,但有两个明显的改进:
一是私密的小范围下载,二是进行流量统计,根据上载量决定你的权限。 BT下载时,软件会分析.torrent种子文件得到Tracker地址,然后连接Tracker服务器,服务器返回其他下载者的IP,下载者再与这些IP联系进行下载,从而减轻了服务器的负担,BT下载的Tracker是公开的,而Private Tracker 下载(PT下载)的Tracker则是私有的,每个人的Tracker是不同的,即passkey不同,passkey对PT下载者很重要,所以不要轻易泄露出去。

购买了校园网无线以后,为了更好的利用ipv6,我使用我校的.edu.cn邮箱,注册了一个西工大蒲公英pt,第一次体验下载了个视频,果然速度美滋滋。

目前在实验室我有一台自己使用的电脑,与宿舍的无线基本上共属于同一台局域网,并且可以指定教育网ip,v6的ip也是重启后才会更换,了解到浙大在2010年开源了一个PT程序————NexusPHP,我就开始在实验室的电脑上初步搭建。

以下记录了我这三天来的搭建实例,可复现。

开始之前先科普一下上述中的基本知识。

Ubuntu:世界有名的Linux桌面版,采用的最新版16.04.4LTS。

Nginx: 采用Ubuntu apt 安装方式安装的1.13.3版本。

MySQL:也是用的Ubuntu apt安装方式,版本为5.7.21。

Php:安装方式同上,版本为5.6。注意,必须使用5.6版本,新版7.X与本项目不兼容。

nexusPHP:这是NexusPHP由来自浙江大学的Nexus团队发起并开发完成。它的目标是代替TBSource项目,提供一个完整的、有序的、重视用户信誉和知识的资源分享社区的解决方案。 这是一个比较老的BT开源项目,2010年开源的。


介绍完毕,开始干活!

安装MySQL

1、启动终端,输入以下代码安装:

sudo apt update
sudo apt-get install mysql-server
sudo apt install libmysqlclient-dev
  • 安装过程会提示设置mysql root用户的密码,设置完成后等待自动安装即可。默认安装完成就启动了mysql。
  • 安装成功后可以通过下面的命令测试是否安装成功:
    sudo netstat -tap | grep mysql

2、更改mysql字符集为utf8:

#分别用编辑器打开两个文件#
sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
sudo gedit /etc/mysql/conf.d/mysql.cnf
  • 在[mysqld]下添加一行 character_set_server=utf8
  • 在[mysql]下添加一行 default_character_set=utf8
  • 使用 service mysql restart重启mysql服务。

安装Nginx

启动终端,输入以下代码安装:

sudo apt install nginx
  • 浏览器输入 localhost,出现 nginx 欢迎界面则表示成功

安装PHP5.6

1、添加PPA。

sudo apt install python-software-properties software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

2、安装PHP5.6以及扩展。

sudo apt install php5.6-fpm php5.6-mysql php5.6-common php5.6-curl php5.6-cli php5.6-mcrypt php5.6-mbstring php5.6-xml

3、配置PHP5.6:

sudo gedit /etc/php/5.6/fpm/php.ini
  • 找到cgi.fix_pathinfo选项,去掉注释;,然后将值设置为0:

    cgi.fix_pathinfo = 0

4、再次配置Nginx:

sudo gedit /etc/nginx/sites-available/default

去掉 location ~ \.php 整个闭包的注释,并将其修改为:

location ~ \.php$ {
     # include snippets/fastcgi-php.conf;
     #
     # # With php7.0-cgi alone:
     # fastcgi_pass 127.0.0.1:9000;
     # # With php7.0-fpm:
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_pass unix:/run/php/php5.6-fpm.sock;
     fastcgi_index index.php;
     include fastcgi_params;
}

5、重启Nginx 和 PHP5.6并测试:

sudo service php5.6-fpm restart
sudo service nginx restart
  • 使用 echo "<?php phpinfo(); ?>" >> /var/www/html/phpinfo.php 生成测试文件。
  • 从浏览器打开 localhost/phpinfo.php,出现 php的一系列信息则表示配置成功。

开始NexusPHP安装实战

安装MemCache/MemCached

1、启动终端,输入以下代码安装:

sudo apt install memcached
sudo apt install php-memcache
sudo apt install php-memcached

2、配置php.ini。

  • 寻找 扩展目录 :
    find /usr -name "memcache*

示例输出:

/usr/lib/php/20131226/memcache.so
/usr/lib/php/20131226/memcached.so
  • 根据以上输出,修改php.ini文件。
    ①把php.ini中的 extension_dir = "./" 修改为 extension_dir = "/usr/lib/php/20131226/"并去掉注释。②添加两行来载入memcache/memcached扩展:extension=memcache.so extension=memcached.so

3、Memcache环境测试:

  • 在/var/www/html/下创建以下面为内容的memcached.php文件。创建完毕后使用浏览器访问 localhost/memcache.php ,如果有输出 This is a test! ,就表示环境搭建成功。

安装Pear和HTTP_Request2

启动终端,输入以下代码安装:

sudo apt install php-pear 
sudo pear config-set preferred_state alpha 
pear install HTTP_Request2

安装 phpmyadmin 并配置

启动终端,输入以下代码安装并配置:

sudo apt install phpmyadmin
cd /var/www/html && ln -s /usr/share/phpmyadmin
sudo service nginx restart

然后打开浏览器访问 localhost/phpmyadmin/index.php 出现 欢迎使用phpmyadmin ye’mian则表示成功。

开始正式安装nexusPHP

1、首先从sourceforge官网下载NexusPHP源码镜像并解压至网站目录。

wget https://nchc.dl.sourceforge.net/project/nexusphp/nexusphp.v1.5.beta5.20120707.zip
unzip -o nexusphp* -d /var/www/html/

2、恢复原网站msyqldump文件。

mysql -u root -p password
# 输入密码 #
mysql >  create database nexusphp;
mysql >  use nexusphp;
mysql >  source /var/www/html/_db/dbstructure.sql;
  • 打开 localhost/phpmyadmin/index.php 确认数据表是否添加成功。

3、修改配置文件allconfig.php。

gedit /var/www/html/config/allconfig.php

修改 $BASIC=array 闭包为以下内容:

$BASIC=array(
    'SITENAME' => 'NexusPHP',
    'BASEURL' => 'localhost',
    'announce_url' => 'localhost/announce.php',
    'mysql_host' => 'localhost',
    'mysql_user' => 'root',
    'mysql_pass' => '数据库密码',
    'mysql_db' => 'nexusphp',

);

  • 请用正确密码匹配以上信息。

4、设置管理员。

  • 首先自己访问网站然后注册一个用户名,接着进入数据库管理(phpMyAdmin),在users表里面找到你注册的用户,编辑它的class属性为16,完成。

到这里PT基本上就架设完毕了,现在只需要利用管理员帐号对站点进行设置和调整就可以了。

浏览器输入localhost/nexusphp/login.php 出现登陆页面则表示成功。


部分信息来自:

著作权归作者所有。