Домашним сервером уже сложно кого-то удивить. Практически всегда он раздаёт интернет на домашнюю сеть из нескольких компьютеров и/или ноутбуков и используется в качестве файлового хранилища. Так же на нём может быть jabber-сервер и даже домашняя АТС.
Кроме того удобно использовать домашний сервер для закачки различных больших файлов чтобы потом их просто забирать уже с локального сервера. Далее будет показано как можно организовать менеджер закачек с веб-интерфейсом используя утилиту aria2c и веб-интерфейс aria2web.
Опишем начальные условия:
- Сервер под управлением Ubuntu 11.10;
- Установленный и настроенный lighttpd с модулем simple-vhost
Для начала установим 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. ?>
Всё. Теперь можно пользоваться менеджером закачек. Желающие ещё могут ограничить доступом с помощью авторизации.
Если по какой-то причине веб-интерфейс не работает то первым делом надо проверить запущен ли aria2c, далее проверить включён ли в lighttpd модуль cgi (или fastcgi) и правильно ли настроен в нём запуск php-скриптов.
На этом всё. Приятной работы!
Anonymous 2018-12-08 03:33:07 (#)