Давненько я не писал ничего на этом сайте. Для начала поздравляю всех с наступившем Новым годом и наступающим Старым Новым годом
Был, то есть есть сервер с win2003... работал он себе и работал, пока в один прекрасный день винда стала тупить от засранности программ и всякого мусора, который был установлен за пару лет ее существования на железе. Чистить, дефрагментировать и совершать остальные действия по оживлению детища Билла не было никакого желания.
Крутилось вертелось на сервере файлопомойка, торрент, дц++ и терминальный сервис. Для перекройки всего этого хозяйства была выбрана ОС FreeBSD с целью реорганизации файлового хранилища и установки веб клиента для закачки торрентов. Файловое хранилище сделал на zfs с рейдом 6 уровня, т.к. боязно было использовать для сих целей страйп, который как раз стоял на винде. Все-таки даже при выходе из строя 2 дисков, все это хозяйство не умрет. Ну да ладно, это все лирика. Процесс установки фряхи на [u]root on zfs[/u] я не буду. В инете есть кучка материалов для этого.
Для меня было принципиально настроить связку apache22+rtorrent(php установлен). На просторах интернетов обычно пишут про нгинкс и lighttpd. Опять же я не буду описывать полной установки и настройки всего этого хозяйства, чтобы не копипастить то, чего уже гигабайты.
Версия на сервере FreeBSD - 9.0. Когда установлен rtorrent и скачана для него веб морда отсюда, то можно в файл конфигурации апача добавить алиасик на это хозяйство:
$ vi /usr/local/etc/apache22/httpd.conf
Alias /rutorrent "/usr/local/www/apache22/rutorrent/"
Directory "/usr/local/www/apache22/rutorrent";
Options Indexes FollowSymlinks Multiviews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Конечно, необходимо сделать авторизацию по паролю, чтоб всякие негодники не удалили добро, но это выходит за рамки этой небольшой заметки. На этом настройка апача закончена. Я не буду использовать для связи вебсервера с фронт-эндом rutorrent tcp стек, для этого воспользуюсь unix сокетами Зачем засирать tcp стек?!
$ cat /usr/local/www/apache22/rutorrent/conf/config.php | grep socket
// For web->rtorrent link through unix domain socket
$scgi_host = "unix:///tmp/rtorrent_rpc.socket";
$
Настройка веб морды закончена.Теперь листинг скрипта запуска rtorrent'а:
$ cat /usr/local/etc/rc.d/rtorrent
#!/bin/sh
#
#
# PROVIDE: rtorrent
# REQUIRE: LOGIN
# KEYWORD: shutdown
. /etc/rc.subr
name="rtorrent"
rcvar=`set_rcvar`
load_rc_config $name
: ${rtorrent_enable="NO"}
: ${rtorrent_args=""}
: ${rtorrent_user="rtorrent"}
command="/usr/local/bin/rtorrent"
screen="/usr/local/bin/screen"
start_precmd="${name}_prestart"
start_cmd="echo \"Starting ${name}.\"; su ${rtorrent_user} -c '${screen} -A -m -d -S rtorrent ${command} ${rtorrent_args} -o scgi_local=/tmp/rtorrent_rpc.socket'"
start_postcmd="${name}_poststart"
rtorrent_prestart()
{
if [ -e "/tmp/rtorrent_rpc.socket" ]; then
rm -R /tmp/rtorrent_rpc.socket
fi
return 0
}
rtorrent_poststart()
{
while [ ! -e "/tmp/rtorrent_rpc.socket" ];
do
sleep 0.1
echo waiting for /tmp/rtorrent_rpc.socket creation...
done
echo done
chown www /tmp/rtorrent_rpc.socket
return 0
}
#stop_postcmd="rm -R /var/tmp/rtorrent_rpc.socket"
run_rc_command "$1"
$
Публикую на тот случай, если у кого-то не работает. У меня на свежеустановленной фряхе запустился без проблем. Скрипт взят из этой статьи. Если не работает, внимательно проверьте то, что скопировали. Я скопировал не с оригинальной статьи и у меня тоже ругался на запуск.