如何在Ubuntu 16.04 / 17.04上设置nZEDb Usenet Indexer
先前我们讨论了如何在Ubuntu 16.04 / 17.04上安装SABnzbd Usenet客户端。 本教程将向您展示如何在Ubuntu 16.04 / 17.04上设置自己的nZEDb Usenet索引器,以便可以方便地在Usenet上查找内容。 nZEDb是一个免费且开源(经GPL许可)的Usenet索引器。 它是NewzNab plus的一个分支,它是开源和商业Usenet索引器。
为什么要建立自己的Usenet索引器? 原因有很多:
- 它是免费的。
- 您可以根据需要下载任意数量的NZB文件。
- 无限的API调用。
- 第三方Usenet索引器可以随时消失。
- 使用自己的Usenet索引器时,您不必将个人信息提供给任何人。
先决条件
为了遵循本教程,您将需要一台运行LAMP或LEMP堆栈的Ubuntu 16.04 / 17.04计算机。 如果您尚未这样做,请查看以下教程之一。
- 如何在Ubuntu 16.04上安装LAMP(Apache,MariaDB,PHP7)
- 如何在Ubuntu 16.04上安装LEMP(Nginx,MariaDB,PHP7-FPM)
一旦安装了LAMP或LEMP,请回到这里继续阅读。 您还需要拥有一个Usenet帐户,其详细信息需要在nZEDb Web安装程序中输入。 现在,按照以下说明在Ubuntu 16.04 / 17.04上安装nZEDb。
配置MariaDB
使用nano文本编辑器编辑MariaDB服务器配置文件。
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
将以下行添加到 [mysqld]
部分。
# configurations by nZEDb innodb_file_per_table = 1 max_allowed_packet = 16M group_concat_max_len = 8192
保存并关闭文件。 然后重新启动MariaDB,以使更改生效。
sudo systemctl restart mysql
在MariaDB中创建数据库和用户
使用以下命令登录MariaDB数据库服务器:
mysql -u root -p
然后为nZEDb创建一个数据库。 本教程为数据库命名 nzedb
。 您可以使用任何喜欢的名称。
create database nzedb;
创建数据库用户并授予该用户所有特权 nzedb
数据库。 用您的首选密码替换您的密码。
grant all privileges on nzedb.* to 'nzedb'@'localhost' identified by 'your-password';
同时向该用户授予文件权限。
grant file on *.* TO 'nzedb'@'localhost';
刷新特权并退出。
flush privileges; exit;
告诉AppArmor忽略MariaDB
AppArmor是默认情况下在Ubuntu上启用的Linux安全模块。 但是,它阻止nZEDb使用SQL的LOAD DATA命令。 我们需要使用以下命令告诉AppArmor忽略MariaDB。
sudo apt install apparmor-utils sudo aa-complain /usr/sbin/mysqld
您可能会遇到以下错误。 它告诉您MariaDB不受AppArmor的限制,因此请转到下一步。
ERROR: /etc/apparmor.d/usr.sbin.mysqld contains no profile
安装媒体工具
运行以下命令。
sudo apt-get install unrar p7zip-full mediainfo lame ffmpeg libav-tools
接下来,执行以下命令以下载,编译和安装yEnc,从而加快索引编制过程中的标头和消息处理。
cd ~ mkdir yenc cd yenc wget https://ayera.dl.sourceforge.net/project/yydecode/yydecode/0.2.10/yydecode-0.2.10.tar.gz tar xzf yydecode-0.2.10.tar.gz cd yydecode-0.2.10 sudo apt install gcc make ./configure make sudo make install cd ../.. rm -rf ~/yenc
安装php-yenc扩展程序可以更快地处理标题和消息。
wget https://github.com/niel/php-yenc/releases/download/v1.3.0/php7.0-yenc_1.3.0_amd64.deb sudo dpkg -i php7.0-yenc_1.3.0_amd64.deb
安装nZEDb
为nZEDb创建目录。
sudo mkdir /var/www/nZEDb/
设置Web服务器用户(www-data
)作为所有者,并向 www-data
组。
sudo chown www-data:www-data /var/www/nZEDb -R sudo chmod g+w /var/www/nZEDb/ -R
将您的用户帐户添加到 www-data
组。
sudo adduser username www-data
注销并重新登录,以使此更改生效。 然后运行以下命令将当前登录组更改为 www-data
。
newgrp www-data
我们将使用git工具从Github克隆nZEDb存储库。 因此,使用以下命令在Ubuntu 16.04 / 17.04上安装git。
sudo apt install git
将目录更改为 /var/www/
。
cd /var/www/
然后克隆nZEDb存储库。
git clone https://github.com/nZEDb/nZEDb.git
下 /var/www/nZEDb/_install/
目录中有一个nZEDb的安装脚本。 我们需要将其复制到 /var/www/
。
sudo cp /var/www/nZEDb/_install/install.sh /var/www/
添加执行权限。
sudo chmod a+x /var/www/install.sh
在运行此脚本之前,我们需要安装一些PHP扩展。
sudo apt install php7.0-mcrypt php-imagick php-pear php7.0-curl php7.0-gd php7.0-json php7.0-dev php7.0-gd php7.0-mbstring php7.0-xml
现在确保您在 /var/www/
目录并运行安装脚本。
cd /var/www/ ./install.sh
在安装过程中,Composer将安装所有必需的PHP依赖项,并且您需要输入sudo密码来设置权限。 脚本完成后,我们需要设置Web服务器。 您可以使用Apache或Nginx。
设置Apache虚拟主机
在以下位置创建虚拟主机 /etc/apache2/sites-available/
nZEDb的目录。
sudo nano /etc/apache2/sites-available/nzedb.conf
将以下文本放入文件中。 更换 12.34.56.78
与您的Ubuntu服务器的IP地址。 您也可以使用域名。
<VirtualHost *:80> ServerAdmin [email protected] ServerName 12.34.56.78 DocumentRoot "/var/www/nZEDb/www" LogLevel warn ServerSignature Off ErrorLog /var/log/apache2/error.log <Directory "/var/www/nZEDb/www"> Options FollowSymLinks AllowOverride All Require all granted </Directory> Alias /covers /var/www/nZEDb/resources/covers </VirtualHost>
保存并关闭文件。 然后禁用默认虚拟主机并启用新的虚拟主机。
sudo a2dissite 000-default sudo a2ensite nzedb.conf
启用重写模块。
sudo a2enmod rewrite
重新加载Apache以使更改生效。
sudo systemctl reload apache2
现在访问以下URL以访问nZEDb安装向导。
your-server-ip/install
要么
your-domain.com/install
设置Nginx服务器块
在中创建一个新的服务器阻止文件 /etc/nginx/conf.d/
nZEDb的目录。
sudo nano /etc/nginx/conf.d/nzedb.conf
将以下文本放入文件中。 更换 12.34.56.78
与您的Ubuntu服务器的IP地址。 您也可以使用域名。
server { listen 80; server_name 12.34.56.78; access_log /var/log/nginx/nzedb-access.log; error_log /var/log/nginx/nzedb-error.log; root /var/www/nZEDb/www/; index index.html index.htm index.php; location ~* .(?:css|eot|gif|gz|ico|inc|jpe?g|js|ogg|oga|ogv|mp4|m4a|mp3|png|svg|ttf|txt|woff|xml)$ { expires max; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } location / { try_files $uri $uri/ @rewrites; } location ^~ /covers/ { # This is where the nZEDb covers folder should be in. root /var/www/nZEDb/resources; } location @rewrites { rewrite ^/([^/.]+)/([^/]+)/([^/]+)/? /index.php?page=$1&id=$2&subpage=$3 last; rewrite ^/([^/.]+)/([^/]+)/?$ /index.php?page=$1&id=$2 last; rewrite ^/([^/.]+)/?$ /index.php?page=$1 last; } location /admin { } location /install { } location ~ .php$ { include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; # Uncomment the following line and comment the .sock line if you want to use TCP. #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/run/php/php7.0-fpm.sock; # The next two lines should go in your fastcgi_params fastcgi_index index.php; } }
保存并关闭文件。 接下来,编辑 fastcgi_params
文件。
sudo nano /etc/nginx/fastcgi_params
找到以下行。
fastcgi_param REDIRECT_STATUS 200;
通过在开头添加#符号来注释掉此行。
#fastcgi_param REDIRECT_STATUS 200;
保存并关闭文件。 然后测试Nginx配置。
sudo nginx -t
如果测试成功,请重新加载Nginx以使更改生效。
sudo systemctl reload nginx
现在访问以下URL以访问nZEDb安装向导。
your-server-ip/install
要么
your-domain.com/install
在Web浏览器中完成安装
单击底部的按钮。 第一步,安装向导将检查您的PHP扩展和设置。
我们已经较早安装了所有必需的PHP扩展。 为了获得最佳性能,我们还需要配置一些PHP设置。 如果使用Apache和PHP7模块,则打开以下文件。
sudo nano /etc/php/7.0/apache2/php.ini
如果使用Nginx和PHP-FPM,则打开以下文件。
sudo nano /etc/php/7.0/fpm/php.ini
更改值 max_execution_time
30至120。
max_execution_time = 120
更改值 memory_limit
从128M到1024M。
memory_limit = 1024M
定义一个类似的时区 America/New_York
。
date.timezone = America/New_York
保存并关闭文件。 如果使用Apache和PHP7模块,则需要重新加载Apache以使上述更改生效。
sudo systemctl reload apache2
如果使用Nginx和PHP-FPM,则需要重新加载PHP-FPM服务才能使上述更改生效。
sudo systemctl reload php7.0-fpm
现在重新加载nZEDb向导,所有状态都应该正常。 我们可以转到第二步来设置数据库。 像这样输入数据库详细信息。
第3步是设置OpenSSL。 我们需要下载证书捆绑包以验证Usenet提供商的证书。
sudo wget -P /etc/ssl/certs/ http://curl.haxx.se/ca/cacert.pem
然后使所有用户可读。
sudo chmod 744 /etc/ssl/certs/cacert.pem
现在,在nZEDb设置向导中,输入CA捆绑包路径(/etc/ssl/certs/cacert.pem
)和证书文件夹(/etc/ssl/certs/
)。 确保 验证对等 和 验证主机 被检查。 做 不 检查 允许自签名证书。
在第4步中,输入Usenet提供程序的服务器详细信息,例如giganews。
接下来,为nZEDb设置一个管理员帐户。
最后一步是设置文件路径。 您可以接受默认值。
索引Usenet内容
设置完成后,您将可以访问nZEDb管理员页面并按照那里的说明激活一些新闻组,获取所选组的最新标题并更新发行版。
要获取最新的标题,请运行
cd /var/www/nZEDb/misc/update php update_binaries.php
然后使用以下命令创建发行版和NZB文件。
cd /var/www/nZEDb/misc/update/nix/multiprocessing php releases.php
将PreDB导入MariaDB数据库
自2014年以来,每天从nZEDb导入转储。
cd /var/www/nZEDb/cli php data/predb_import_daily_batch.php 0 local true
从IMDB,TMDB获取电影和电视封面
要在您的nZEDb网站上显示封面,您需要从IMDB或TMDB获取自己的API密钥。 获得API密钥后,请转到 nZEDb管理面板 > 网站设定 > 编辑网站 > 第三方API密钥 然后在此处输入API密钥。
我希望本教程可以帮助您在Ubuntu 16.04 / 17.04上设置nZEDb Usenet索引器。