以前、Ubuntu 16.04/17.04にSABnzbdUsenetクライアントをインストールする方法について説明しました。このチュートリアルでは、Ubuntu 16.04 /17.04で独自のnZEDbUsenetインデクサーを設定して、Usenetでコンテンツを簡単に見つけられるようにする方法を説明します。 nZEDbは、無料のオープンソース(GPLライセンス)のUsenetインデクサーです。これは、クローズドソースで商用のUsenetインデクサーであるNewzNabplusのフォークです。
なぜ独自の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アカウントが必要です。このアカウントの詳細は、nZEDbWebインストーラーに入力する必要があります。次に、以下の手順に従って、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
に対するすべての権限を付与します データベース。 your-passwordをお好みのパスワードに置き換えてください。
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のLOADDATAコマンドを使用することはできません。以下のコマンドを使用して、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リポジトリのクローンを作成します。したがって、次のコマンドを使用してGitをUbuntu 16.04/17.04にインストールします。
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ウィザードをリロードすると、すべてのステータスがOKになります。 2番目のステップに進んでデータベースをセットアップできます。そのようにデータベースの詳細を入力します。
手順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で、giganewsなどのUsenetプロバイダーのサーバーの詳細を入力します。
次に、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でnZEDbUsenetインデクサーを設定するのに役立つことを願っています。