Локальный веб-сервер — крайне необходимая утилита для любого веб-разработчика. Для платформы windows существую готовые пакеты, типа LAMP или Denwer, которые полностью избавляют пользователя от необходимости настройки чего-либо вручную.
Изначально веб-серверная платформа была именно на базе *nix систем, а уже затем все нужные приложения были портированы на Windows и другие платформы. Таким образом, *nix системы имеют все необходимое программное обеспечение для веб-разработки и не только.
Тем не менее, установка всего необходимого в *nix системах не так очевидна, но все равно проста. Здесь Вы не найдете всеми любимого файла setup.exe, который разом решает все проблемы, придется ввести несколько команд в консоли или воспользоваться каким-либо графическим средством установки приложений.
Совсем забыл, что вышел уже второй том (а здесь можно скачать первый) замечательной манги, посвященный самому популярному дистрибутиву Linux — Ubuntu.
Поработав как с Windows, так и с Linux начинаешь прекрасно понимать, что у каждого инструмента свое применение. UNIX-подобные системы прекрасно подходят для стабильных веб-приложений, в то время как Windows системы намного удобнее для рядового пользователя, которому намного интереснее перекладывать карты в косынке, чем прочитать одну нструкцию, в которой расписано четко и понятно все то, что он делал и так каждый день.
Кроме таких простых и рядовых задач стоит отметить, что не всем приложениям можно найти аналоги. Тем не менее, решение есть. Их больше одного, что уже радует.
Как и везде рекомендуют, стоит начать с Wine, скачать, установить и попробовать что-нибудь запустить из привычных приложений.
[sourcecode]
$ sudo apt-get install wine
[/sourcecode]
В давние-давние времена, когда пользователей в нашей сети было не так много и сервера большую часть времени простаивали, руки страшно чесались их чем-нибудь нагрузить. Время от времени на них пережималось видео, время от времени я md5 хэши на них подбирал (хорошо, начальство не знает, наверное).
Основная цель была, тем не менее, не обеспечение непрерывной нагрузки серверов, а обеспечение пользователей дополнительными сервисами в рамках сети. Одним из первых сервисов стало он-лайн радио, которое постепенно выросло из папки с музыкой на внутреннем FTP-сервере.
Так как сервера работают под Debian Linux, то проблема с радио не сулила быстрого решения — привычного софта с кнопочками и галочками там не много, тем более, что возможность их настройки я имел только по ночам и удаленно, через ssh.
Простые опыты по трансляции музыки в сеть начались в домашней сети и были намечены два программных продукта, на мой взгляд 100% удовлетворявшим всем моим требованиям. Это сервер потокового вещания аудио Icecast и утилита для отсылки аудиопотока на сервер для вещания Ices. Эти две программы позволяют создать 100% функциональный сервер потокового аудио.
Установка этих приложений из приложений предельна проста (но может быть различие в названии пакета в зависимости от дистрибутива):
sudo apt-get install icecast
sudo apt-get install ices
После установки пакетов создаются необходимые конфиги и аудио сервер, в целом, готов к использованию. Я устанавливал эти приложения из исходников, поэтому конфиги создавал и правил в ручную, Вам, я надеюсь, этого не потребуется. Хотя, хочу отметить некоторые их инетерсные места (конфигов, ествественно):
ices.conf.xml
<?xml version=»1.0″?>
<ices:Configuration xmlns:ices=»http://www.icecast.org/projects/ices»>
<Playlist>
<Randomize>1</Randomize>
<File>/var/radio/playlist.txt</File>
<Type>builtin</Type>
<Module>ices</Module>
</Playlist>
<Execution>
<Background>1</Background>
<Verbose>0</Verbose>
<BaseDirectory>/tmp</BaseDirectory>
</Execution>
<Stream>
<Server>
<Hostname>127.0.0.1</Hostname>
<Port>8000</Port>
<Password>hackme</Password>
<Protocol>http</Protocol>
</Server>
<Mountpoint>/radio</Mountpoint>
<Dumpfile>ices.dump</Dumpfile>
<Name>Default stream</Name>
<Genre>Default genre</Genre>
<Description>Default description</Description>
<URL>http://localhost/</URL>
<Public>0</Public>
<Bitrate>128</Bitrate>
<Reencode>0</Reencode>
<Samplerate>44100</Samplerate>
<Channels>2</Channels>
</Stream>
</ices:Configuration>
Все поля конфигурационного файла, в целом, очевидны. Остановиться хочу только на поле File — это путь к файлу плейлиста.
Так как ни Ices, ни Icecast сами не создают файл плейлиста, скрипт генерации пришлось написать в ручную и именно им я и хочу поделиться.
Создаем файл /etc/init.d/radio, например, даем ему права на исполнение sudo chmod +x /etc/init.d/radio
Содержимое файла следующее:#! /bin/bash
# Убиваем все старые на всякий случай
killall ices
killall icecast/usr/local/bin/icecast -b -c /etc/icecast.xml
# Пишем запись в лог
date >> /var/log/radio/service.log
echo ‘Убита предыдущая версия процессов’ >> /var/log/radio/service.log;# Удаляем предыдущий файл плейлиста
rm /var/log/radio/playlist.txt
rm /var/log/radio/playlist_trance.txt# Создаем новый
#ls /var/ftp_radio/ | grep .mp3 | sed ‘s/^(.*)/../1/’ > /var/log/radio/playlist.txt
find /var/ftp/pub/Media/Audio/Unsorted | grep .mp3 > /var/log/radio/playlist.txt
find /var/ftp/pub/Media/Audio/Trance | grep .mp3 > /var/log/radio/playlist_trance.txt
find /var/ftp/pub/Media/Audio/Rock | grep .mp3 > /var/log/radio/playlist_rock.txt# Запускаем вещалку в фоновом режиме
/var/log/radio/ices -B -c /etc/ices.conf
/var/log/radio/ices -B -c /etc/ices_rock.conf
/var/log/radio/ices -B -c /etc/ices_trance.conf# Пишем в лог
date >> /var/log/radio/service.log
echo ‘Радио запущено’ >> /var/log/radio/service.log
Здесь я запускаю на одном сервере вещания три потока. При необходимости вы можете изменить скрипт под свои нужды.
Чтобы вещание радио запусукалось каждый раз при старте системы нужно сделать
sudo rc-update add radio default
Из недостатков следует отметить тот факт, что три потока радио грузят среднюю машину (с селероном 2 ГГц и 1 Гб ОЗУ) почти на 80%.