
本帖最后由 tipistop 于 2018118 13:02 编辑
上一个教程有吧友表示不太懂,教程开始前我先发一下需要用到的环境和工具CentOS7 服务器:阿里云在搞活动可以看我签名 FlashFXP:ftp上传工具Xshell:ssh工具,链接你的linux服务器Nyaa这么出名的东西就不用多介绍了,出名到被欧盟一锅端,当时是因为什么被端了我也记的不是很清楚了。就简要说下被端了之后没多久的一些事情吧。。。Nyaa本是一个国外著名的BT种子站,它与现在的那些磁力站不同的地方就在于Nyaa所有的种子都是由用户自己上传分享的,而磁力站多数都是爬虫自动爬。Nyaa分为表站和里站,表站就是用户上传一些正常向的资源,而里站你们懂的,各种R18应有尽有,所以Nyaa有一大群肥宅/痴汉/二次元用户。就是这样一个站被端了后,大概才不到半个月的时间网上就展示了这个站点的部分数据库,然后又没过多久就莫名其妙的出现了几个自称Nyaa的站点,但是应该都是假站,或者说是想借Nyaa的热度来蹭一波人气,但是不管初衷如何,能够继承Nyaa继续给广大宅男提供一个分享资源的平台,那么就是受欢迎的。所以就目前而言,我个人觉得做的比较好的站点就是:nyaa.si。并且这个站点的维护者把源码在Github上面开源了。话不多说,教程开始更新系统安装开发工具包:
yum y update
yum y install epelrelease
yum y groupinstall “Development Tools”复制代码关闭系统防火墙:
systemctl stop firewalld.service复制代码关闭SELinux:
vi /etc/selinux/config
SELINUX=disabled
setenforce 0复制代码然后我们先安装一个LNMP环境,其实不需要用到PHP,但是这个程序对数据库的给作比较多,我们可以借助有PHP的支持来安装一个phpMyAdmin方便管理数据库。先装Nginx:
vi /etc/yum.repos.d/nginx.repo复制代码写入:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1复制代码然后yum安装:
yum y install nginx复制代码安装MySQL5.7:
vi /etc/yum.repos.d/mysqlcommunity.repo复制代码写入:
[mysql57community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql5.7community/el/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpmgpg/RPMGPGKEYmysql复制代码然后yum安装:
yum y install mysqlcommunityserver复制代码安装PHP7.2:
rpm Uvh https://mirror.webtatic.com/yum/el7/webtaticrelease.rpm复制代码然后yum安装:
yum y install php72wfpm php72wcli php72wcommon php72wgd php72wmysqlnd php72wodbc php72wpdo php72wpgsql php72wxmlrpc php72wxml php72wmbstring php72wopcache复制代码启动Nginx/MySQL/PHP:
systemctl start nginx
systemctl start mysqld
systemctl start phpfpm复制代码创建Nginx/MySQL/PHP开机启动:
systemctl enable nginx
systemctl enable mysqld
systemctl enable phpfpm复制代码获取默认的MySQLROOT密码:
grep ‘temporary password’ /var/log/mysqld.log复制代码修改ROOT密码:
mysqladmin u root p password复制代码重启MySQL:
systemctl restart mysqld复制代码然后通过FlashFXP把如下路径的php.ini文件下载到本地
/etc/php.ini复制代码762行去掉注释:
cgi.fix_pathinfo=1复制代码1264行去掉注释:
session.se_path = “/tmp”复制代码将修改好的文件上传替换。回到终端创建session目录并给777权限:
mkdir /var/lib/php/session
cd /var/lib/php
chmod R 777 session复制代码重启PHP:
systemctl restart phpfpm复制代码现在我们来下载/解压/重命名phpMyAdmin:
cd /usr/share/nginx/
yum y install wget unzip
wget https://files.phpmyadmin.net/phpMyAdmin/4.8.3/phpMyAdmin4.8.3alllanguages.zip
unzip phpMyAdmin4.8.3alllanguages.zip
mv phpMyAdmin4.8.3alllanguages phpmyadmin
chown R apache:apache phpmyadmin复制代码新建一个Nginx站点配置文件:
vi /etc/nginx/conf.d/phpmyadmin.conf复制代码写入:
server {
listen 2333;
server_name 你的站点域名;
#charset koi8r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/phpmyadmin;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /usr/share/nginx/phpmyadmin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/phpmyadmin$fastcgi_script_name;
include fastcgi_params;
}
}复制代码重启Nginx:
systemctl restart nginx复制代码至此LNMP+phpMyAdmin就安装好了,phpMyAdmin的访问地址是:你的站点域名+端口2333登录到phpMyadmin内,首先我们创建一个数据库,命名为:nyaa,数据库编码选择如下图所示的:接下来开始部署Nyaa,先安装一些Python所需的依赖:
yum y install git gcc make zlib zlibdevel readline readlinedevel readlinestatic openssl openssldevel opensslstatic sqlitedevel bzip2devel bzip2libs libffidevel复制代码然后安装Pyenv:
curl L https://github.com/pyenv/pyenvinstaller/raw/master/bin/pyenvinstaller | bash复制代码这条命令执行完成后可能会有回显内容:
export PATH=”/root/.pyenv/bin:$PATH”
eval “$(pyenv init )”
eval “$(pyenv virtualenvinit )”复制代码把你的这些内容加到:
vi ~/.bash_profile复制代码然后另其生效:
source ~/.bash_profile复制代码然后我们使用Pyenv安装Python3.6.1:
pyenv install 3.6.1复制代码这个安装过程可能比较慢,等待安装完成后,创建虚拟环境:
pyenv virtualenv 3.6.1 nyaa复制代码
然后我们进入Nginx的站点目录
复制代码
cd /usr/share/nginx复制代码拉取项目文件:
git clone https://github.com/nyaadevs/nyaa.git复制代码进入到项目目录:
cd nyaa复制代码将项目目录的Python设置成我们之前创建的环境:
pyenv local nyaa复制代码接着安装mysqldevel:
yum y install mysqldevel复制代码然后安装Nyaa所需依赖:
pip install r requirements.txt复制代码现在复制一份配置文件并编辑:
cp config.example.py config.py
vi config.py复制代码在这个配置文件内,我们主要改动的内容如下:
DEBUG = True复制代码
DEBUG = False复制代码2.站点的运行模式,默认有nyaa和sukebei(sukebei就是R18),如图所示:
3.MySQL数据库连接信息,
格式如下:
mysql://数据库账号:数据库密码@localhost/数据库名?charset=utf8mb4
4.
USE_ELASTIC_SEARCH = False复制代码
改为
USE_ELASTIC_SEARCH = True复制代码
这个修改是让Nyaa支持Elasticsearch全文搜索,待会我们再来配置Elasticsearch。
5.其他配置信息,比如邮箱SMTP/验证码等等都可以在这个配置文件里面设置,这里就不多说了,根据自己的需求来更改。
现在我们导入数据:
python db_create.py复制代码
接着运行:
./db_migrate.py stamp head复制代码
现在我们来安装Elasticsearch,Elasticsearch需要J作品A8的支持,所以我们先安装J作品A:
yum y install ja1.8.0openjdk*复制代码
然后就可以安装Elasticsearch了,先导入密匙:
rpm import https://artifacts.elastic.co/GPGKEYelasticsearch复制代码
新建一个源:
vi /etc/yum.repos.d/elasticsearch.repo复制代码
写入:
[elasticsearch6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPGKEYelasticsearch
enabled=1
autorefresh=1
type=rpmmd
复制代码
然后通过yum安装:
yum y install elasticsearch复制代码
最后运行Elasticsearch并设置开机启动:
systemctl start elasticsearch.service
systemctl enable elasticsearch.service
复制代码
现在我们来配置Nyaa的Elasticsearch搜索,首先复制一份配置文件:
cp es_sync_config.example.json es_sync_config.json复制代码
编辑这个配置文件:
vi es_sync_config.json复制代码
在这个配置文件内正确填写你的nyaa数据库信息:
{
“se_loc”: “/tmp/pos.json”,
“mysql_host”: “127.0.0.1”,
“mysql_port”: 3306,
“mysql_user”: “root”,
“mysql_password”: “你的数据库密码”,
“database”: “nyaa”,
“internal_queue_depth”: 10000,
“es_chunk_size”: 10000,
“flush_interval”: 5
}
然后我们编辑MySQL的my.cnf:
vi /etc/my.cnf
在[mysqld]的下方加入:
logbin
server_id=1
binlogformat=row
接着再重启一次MySQL:
systemctl restart mysqld
然后创建索引:
./create_es.sh
如果正常会回显两次如下图的内容:
然后运行如下命令导入种子数据:
python import_to_es.py复制代码
crontab e复制代码然后写入:
0 0 * * * /root/.pyenv/versions/3.6.1/envs/nyaa/bin/python /usr/share/nginx/nyaa/import_to_es.py复制代码现在我们就可以运行Nyaa了,先安装一个screen:yumy install screen然后创建一个新的会话:screenS nyaa在新会话内运行Nyaa:python run.py键盘组合键Ctrl+A+D切换回来,现在我们配置Nginx的反向daili。新建一个Nginx站点配置文件:vi/etc/nginx/conf.d/nyaaproxy.conf写入:server{ listen 80; server_name 你的站点域名; location/{ proxy_pass http://0.0.0.0:5500; proxy_set_headerHost $host; proxy_set_header XRealIP $remote_addr; proxy_set_headerUpgrade $http_upgrade; proxy_set_headerConnection”upgrade”; proxy_http_version 1.1; proxy_redirect off; }}最后重启Nginx:systemctl restart nginx现在不出意外打开你的浏览器,可以看到Nyaa的WEB界面了:
END
2楼:这么长的教程居然木有人捧场,伤心
3楼:大哥,太高深了,而且都习惯于下载
4楼:小白看看,这个种子文件是存在自己的服务器吗?
5楼:这么好的文章竟然这么少的人
6楼:打赏了 事实上没有搭建的需求 只有下载的需求。。
7楼:怎么增加种子或者磁力链接呢
8楼:有些看不懂,但是感觉很叼
9楼:谢谢分享,写的很深入,唯一的问题是我们看不懂。。。
10楼:教程很详细,但没有打中大部分福娃的痛点
11楼:可以,记号.哪天有服务器玩下.
12楼:我也想看懂可是我是小白
13楼:不是没人捧场,内容确实有些专业啊
14楼:眼晕怎么办?
15楼:我们这样的小白 这样的帖子确实是需要慎入的
16楼:太厉害吧 这么详细的教程
17楼:这是技术大牛的成果展示啊
18楼:这是辛苦楼主了
19楼:好复杂得技术……
20楼:
好复杂得技术…… 果然是慎入。。。
21楼:
好复杂得技术……不愧是慎入····
22楼:厉害我的大腿子,想要拜师学艺啊
23楼:tipistop 发表于 2018118 20:18
这么长的教程居然木有人捧场,伤心
还收徒弟不?
24楼:种子文件是存在自己的服务器吗?
