如何在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扩展和设置。

安装nZEDb ubuntu

我们已经较早安装了所有必需的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向导,所有状态都应该正常。 我们可以转到第二步来设置数据库。 像这样输入数据库详细信息。

安装nzedb ubuntu 16.04服务器

第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/)。 确保 验证对等验证主机 被检查。 做 检查 允许自签名证书

nzedb openssl设置

在第4步中,输入Usenet提供程序的服务器详细信息,例如giganews。

nzedb usenet索引器

接下来,为nZEDb设置一个管理员帐户。

nzedb安装ubuntu

最后一步是设置文件路径。 您可以接受默认值。

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索引器。

Sidebar