Менеджер закачек с веб-интерфейсом

()

Домашним сервером уже сложно кого-то удивить. Практически всегда он раздаёт интернет на домашнюю сеть из нескольких компьютеров и/или ноутбуков и используется в качестве файлового хранилища. Так же на нём может быть jabber-сервер и даже домашняя АТС.

Кроме того удобно использовать домашний сервер для закачки различных больших файлов чтобы потом их просто забирать уже с локального сервера. Далее будет показано как можно организовать менеджер закачек с веб-интерфейсом используя утилиту aria2c и веб-интерфейс aria2web.

Опишем начальные условия:

Для начала установим aria2c и php с необходимыми для aria2web модулями:

apt-get install aria2 php5-cgi php5-curl php5-xmlrpc

Запускать aria2c имеет смысл из под пользователя с ограниченным правами. У автора этих строк имя пользователя - "moose". В домашнем каталоге пользователя надо создать файл ".aria2/aria2.conf" примерно такого содержания:

# запускаться в режиме демона
daemon

# можно перезаписывать уже имеющиеся файлы
allow-overwrite=true

# игнорировать ошибки при проверке SSL-сертификатов
check-certificate=false

# не менять имя файла если такой файл уже есть
auto-file-renaming=false

# все файлы будут скачивается в эту директорию
dir=/mnt/data/SHARE/Downloads

# XML-RPC интерфейс. необходим для управления демоном
enable-rpc=true

# порт XML-RPC интерфейса
rpc-listen-port=8100

# предварительно аллоцировать место для закачки не нужно
file-allocation=none

# ограничение скорости для каждой закачки (чтобы не забивать канал)
max-download-limit=1500K

# суммарное ограничение скорости
max-overall-download-limit=1500K

# судя будет писать журнал работы
log=/var/log/aria2c.log

# писать только то что действительно важно
log-level=warn

# использовать докачку если возможно
continue=true

# каждые десять секунд сохранять список закачек
auto-save-interval=10

# при неудаче повторять попытку через 60 секунд
retry-wait=60

# бесконечно повторять попытки закачки пока не будет успеха
max-tries=0

# автоматически сохранять список закачек в этот файл
save-session=/home/moose/.aria2/save.list

# при запуске считывать список закачек из этого файла
input-file=/home/moose/.aria2/save.list

# одновременно только одна закачка
max-concurrent-downloads=1

# не более одной закачки с каждого сервера
max-connection-per-server=1

Для автоматического запуска aria2c при старте системы нужно добавить в "/etc/rc.local" примерно такую строку:

/bin/su -c /usr/bin/aria2c moose

Теперь создадим директорию в соответствии с настройками lighttpd mod_simple-vhost для нового виртуального хоста с веб-интерфейсом aria2web. Пусть это будет "/var/www/aria2web/html".

Поскольку последний релиз aria2web имеет проблемы с современными браузерами мы будем использовать версию из SVN. Получим её:

svn checkout https://aria2web.svn.sourceforge.net/svnroot/aria2web/trunk/ /var/www/aria2web/html/

Начинаем конфигурировать веб-интерфейс. Все настройки будут в файле "/var/www/aria2web/html/config.php". В первую очередь надо указать параметры доступа к XML-RPC серверу aria2c. У автора этих строк файл имеет вид:

<?php
/**
* @version              $Id: config.php 10 2011-07-30 08:01:47Z nicksniper2 $
* @package      aria2web
* @copyright    Copyright (C) 2010 soeren. All rights reserved.
* @license              GNU/GPL, see LICENSE.php
* Aria2Web is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* http://sourceforge.net/projects/aria2web/
*/
defined( '_ARIA2WEB' ) or die();
// to run Aria2web in "local" mode means it's installed on the same machine as aria2, so we can start the aria2c executable through PHP
// when Aria2web is run in "web" mode, it's assumed that it's installed on a different machine and won't (be able to) start the aria2c executable
$aria2_mode = 'local'; 
$aria2_xmlrpc_host = 'localhost';
$aria2_xmlrpc_uripath = '/rpc';

$aria2_executable = '/usr/bin/aria2c'; // Location of the aria2c executable
$aria2_parameters = array();

// If aria2web is in local mode, it will try to start aria2c in XMl-RPC mode using the following additional parameters
$aria2_parameters['xml_rpc_listen_port'] = 8100;
$aria2_parameters['xml_rpc_username'] = '';
$aria2_parameters['xml_rpc_password'] = '';
$aria2_parameters['xml_rpc_user'] = '';
$aria2_parameters['xml_rpc_pass'] = '';
$aria2_parameters['xml_rpc_listen_all'] = 'true';
$aria2_parameters['dir'] = '/mnt/data/SHARE/Downloads/'; // The directory to store the downloaded file. 
$aria2_parameters['log'] = '/var/log/aria2web.log'; // The location of the log file.
//$aria2_parameters['http_user']= ''; //Set HTTP user. This affects all URLs. 
//$aria2_parameters['http_passwd']= '';//Set HTTP password. This affects all URLs. 
$aria2_parameters['load_cookies']= ''; //Load Cookies from FILE using the Firefox3 format (SQLite3) and the Mozilla/Firefox(1.x/2.x)/Netscape format. 
$aria2_parameters['user_agent']= ''; //Set user agent for HTTP(S) downloads. Default: aria2/$VERSION, $VERSION is replaced by package version. 

?>

Всё. Теперь можно пользоваться менеджером закачек. Желающие ещё могут ограничить доступом с помощью авторизации.

Менеджер закачек aria2web в браузере konqueror

Если по какой-то причине веб-интерфейс не работает то первым делом надо проверить запущен ли aria2c, далее проверить включён ли в lighttpd модуль cgi (или fastcgi) и правильно ли настроен в нём запуск php-скриптов.

На этом всё. Приятной работы!

Ключевые слова: aria2, aria2c, aria2web, xml-rpc, lighttpd, download manager, download.

Подписаться на обновления: RSS-лента Канал в TamTam Telegram канал Канал в ICQ

Комментарии:

Anonymous 2018-12-08 03:33:07 (#)

На ubuntu server 14 пойдёт?

MooSE 2018-12-11 15:33:02 (#)

На ubuntu server 14 пойдёт?
К сожалению нет. С новыми версиями PHP aria2web не совместима.
Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2024 Вадим Калинников aka MooSE
Политика конфиденциальности