<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Loki</id>
		<title>Linuxformat - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Loki"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Contributions/Loki"/>
		<updated>2026-05-13T17:27:07Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-12-17T07:52:11Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Общайтесь при помощи Jabber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;br /&gt;
&lt;br /&gt;
==Строим файловое хранилище на Samba==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы получить доступ к своим файлам с любого ПК в сети.&lt;br /&gt;
&lt;br /&gt;
Чтобы предоставить ваш принтер в общее пользование.&lt;br /&gt;
&lt;br /&gt;
Чтобы упростить создание резервных копий.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* http://www.samba.org/samba/docs/man/Samba-hOWTO-Collection&lt;br /&gt;
* http://hr.uoregon.edu/decidrl/samba.html&lt;br /&gt;
* http://samba.anu.edu.au/cifs/docs/what-is-smb.html&lt;br /&gt;
* ftp://ftp.samba.org/pub/samba/docs/Samba24hc13.pdf&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Совместное проживание OS X, Windows и Linux – дурдом? только не при Samba.&lt;br /&gt;
&lt;br /&gt;
Наиболее частая операция, выполняемая в небольших или домашних сетях – обобществление ресурсов. Общим может быть подключение к Интернету или что-нибудь попроще – например, принтер или вообще файл. Прежде чем рассылать 5 мБ-документы по всему дому через Gmail, подумайте о безопасной и простой альтернативе – вашем собственном файловом сервере.&lt;br /&gt;
&lt;br /&gt;
Есть несколько способов создать его в Linux, но, вероятно, простейший и самый надежный способ – это использование ''Samba''. Ко всему прочему, Samba поддерживает протокол SMB, который используется в сетях Windows для предоставления файлов в общий доступ – так что вы сможете работать с общими файлами не только на Linux-машинах, но и на Windows, и на Mac!&lt;br /&gt;
&lt;br /&gt;
===Здравствуй, Samba!===&lt;br /&gt;
&lt;br /&gt;
Наилучший способ установить Samba на ваш Linux-компьютер – это воспользоваться пакетами, включенными в ваш дистрибутив: Samba имеется в любом дистрибутиве, претендующем на популярность. Итак, пусть ваш менеджер пакетов отыщет и установит соответствующие программы. многие дистрибутивы разделяют клиентское и серверное ПО – убедитесь, что установлено и то, и другое. На «чистом» сервере клиент, конечно, не обязателен, но он пригодится для тестирования.&lt;br /&gt;
&lt;br /&gt;
После установки настает время создать конфигурационный файл. Пакет Samba обычно снабжен файлом настроек по умолчанию, и достаточно лишь слегка подправить его. Впрочем, вы можете начать и с нуля. Краткий пример показывает, как мало этому файлу надо (кстати, его имя – /etc/samba/smb.conf):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = LINUX&lt;br /&gt;
 netbios name = MYSHARE&lt;br /&gt;
 &lt;br /&gt;
 [share1]&lt;br /&gt;
 path = /tmp&lt;br /&gt;
 [share2]&lt;br /&gt;
 path = /share&lt;br /&gt;
 comment = Some random files&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция '''global''' обязательна и определяет имя рабочей группы (используется в Windows для объединения общих файлов — группировки ресурсов) и имя NetBIOS, под этим именем ваш сервер будет фигурировать на других компьютерах. По умолчанию берется имя вашего хоста (hostname).&lt;br /&gt;
&lt;br /&gt;
Секции '''share''' в приведённом примере – это имена общих папок [частенько называемых «шарами», – прим. ред.], которые обслуживаются данной машиной. Опции не ограничиваются простой ссылкой на каталог. Вы можете допустить к общим папкам только лиц из определенного круга или даже сделать список файлов невидимым для неавторизованных пользователей. За дополнительной информацией обращайтесь к демонстрационному конфигурационному файлу или врезке «Полезные ссылки».&lt;br /&gt;
&lt;br /&gt;
Наконец, для запуска сервера выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вероятно, вам захочется, чтобы этот сервис сам активизировался при каждой перезагрузке, так что либо вручную свяжите его с runlevel, либо включите в конфигурацию загрузки компьютера. Используйте для этого инструменты вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
В Linux, вы теперь можете монтировать общие каталоги и сетевые ресурсы, используя команду smbmount, или обычную mount с ключом '''-t cifs''' (smbfs уже устарела, пользуйтесь cifs):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount //HOSTNAME/sharename /mnt/share -t cifs -o user&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Windows и Mac вы можете использовать обычные сетевые инструменты. &lt;br /&gt;
&lt;br /&gt;
===Кое-что о принтере===&lt;br /&gt;
Помните, мы вскользь отметили, что в общее пользование часто предоставляется принтер? Конфигурационный файл Samba и с этим способен справиться, причем несколькими способами, в зависимости от того, работает ли у вас CUPS (Common Unix Printing System) и сколько у вас принтеров. мы будем иметь дело с простым сценарием, без CUPS (хотя CUPS, между прочим, тоже присутствует во многих дистрибутивах Linux, и это лучший способ управлять принтерами в Linux). CUPS тоже мог бы настроить сетевую печать, но раз уж запущен Samba, то проще поддерживать один набор файлов.&lt;br /&gt;
&lt;br /&gt;
Обычно файл '''smb.conf''', устанавливаемый по умолчанию, содержит следующие строки (проверьте, что они раскомментированы, т.е. символы «#» есть только там, где показано):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = All Printers&lt;br /&gt;
 path = /var/spool/samba&lt;br /&gt;
 browseable = no&lt;br /&gt;
 # чтобы разрешить «гостевой» доступ к печати&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
 printable = yes&lt;br /&gt;
 create mode = 0700&lt;br /&gt;
 #=============================&lt;br /&gt;
 # команда печати, подробности см. выше&lt;br /&gt;
 #=============================&lt;br /&gt;
 print command = lpr-cups -P %p -o raw %s -r&lt;br /&gt;
 # используются драйверы печати на  стороне пользователя&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот код, в общем-то, разрешает пользоваться принтерами всем. Но бывают обстоятельства, когда лучше позаботиться, чтобы на принтер покушались только штатные пользователи – в этом случае просто замените строку «''guest ok = yes''» на «''guest ok = no''».&lt;br /&gt;
&lt;br /&gt;
Данные настройки всего лишь позволяют передавать данные – на клиентских машинах, естественно, должен иметься правильный драйвер принтера.&lt;br /&gt;
&lt;br /&gt;
==Запрягаем базу данных==&lt;br /&gt;
Ваш собственный сервер баз данных MySQL в подкрепление к OpenOffice.org Base.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы сэкономить деньги на хостинге баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить прочную основу для графических систем баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы наконец изучить SQL.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Баз данных в мире заметно больше, чем web-серверов. Они гораздо дольше окружают нас, содержат на порядок больше данных и поставляют больше критичных сервисов, чем все прочие. а почему бы вам не завести собственную базу данных? В отличие от серверов Samba и Apache, серверы баз данных не гонятся за славой – запустите такой, и он будет сидеть себе потихоньку в фоновом режиме, дожидаясь запроса.&lt;br /&gt;
&lt;br /&gt;
Web-хостыеры обычно предоставляют базы данных весьма скромных размеров (заполучить 100 мБ считается удачей) – вот вам и повод сделать сервер самому. Потратив некоторое время на освоение SQL, вы сможете настроить ваш сервер и запросто предоставлять его также и вашим друзьям. &lt;br /&gt;
&lt;br /&gt;
===Ваше руководство по установке===&lt;br /&gt;
Мы продемонстрируем вам, как настроить сервер MySQL. MySQL 5.0 имеется на нашем диске, так что скопируйте его, распакуйте и перейдите в созданный каталог, где выполните ./configure --prefix=/usr/local/mysql, затем make, переключитесь в режим root, и наконец, запустите make install. теперь перейдите в каталог /usr/local/mysql, выполните там команду bin/mysql_install_db, затем chown -R mysql var. Итак, MySQL установлена. Выполните команду bin/mysqld_safe &amp;amp;, чтобы запустить ваш MySQL-сервер.&lt;br /&gt;
&lt;br /&gt;
По умолчанию MySQL не устанавливает пароль для своего суперпользователя, так что вам нужно ввести несколько команд от имени непривилегированного пользователя:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим на сервер&lt;br /&gt;
 /usr/loca/mysql/bin/mysql -u root mysql&lt;br /&gt;
 # зададим пароль для root — желательно, чтоб угадать его было нелегко!&lt;br /&gt;
 UPDATE user SET Pasword =&lt;br /&gt;
 PASSWORD(‘frosties’) WHERE User = ‘root’;&lt;br /&gt;
 # Создайте базу данных, которая нам понадобится в дальнейшем&lt;br /&gt;
 CREATE DATABASE lxfdb;&lt;br /&gt;
 # Добавьте учетную запись непривилегированного пользователя&lt;br /&gt;
 INSERT INTO user (Host, User, Password)&lt;br /&gt;
 VALUES (‘localhost’, ‘lxf’,&lt;br /&gt;
 PASSWORD(‘orangutan’));&lt;br /&gt;
 # Предоставьте новому пользователю доступ к созданной базе данных&lt;br /&gt;
 GRANT ALL PRIVILEGES ON lxfdb.* TO lxf;&lt;br /&gt;
 # Обновите привилегии MySQL &lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 # Выйдите из MySQL; негоже лазить везде с правами root&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы вернулись к нашей командной строке, теперь осталось убедиться, что новая учётная запись работает. Введите:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим под именем нашего пользователя&lt;br /&gt;
 /usr/local/bysql/bin/mysql -u lxf -p lxfdb&lt;br /&gt;
 # Посмотрим список имеющихся таблиц (пока у нас ничего нет)&lt;br /&gt;
 SHOW TABLES;&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, значит, учётная запись создалась нормально.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать учётные записи ещё для кого-нибудь, просто повторите команду INSERT INTO, замените имя пользователя и пароль новыми значениями, плюс установите значение Host в «%» (предоставление доступа к локальному хосту извне с удаленных хостов). Вы можете создать сколько угодно баз данных и предоставлять пользователям различные уровни доступа. MySQL работает на порту 3306, так что вам нужно будет открыть доступ к нему на вашем брандмауэре, чтобы другие могли подключаться беспрепятственно.&lt;br /&gt;
&lt;br /&gt;
===Жизнь-служение===&lt;br /&gt;
По общему признанию, серверы баз данных не богаты приложениями, преимуществами которых можно воспользоваться прямо с ходу, но некоторые всё же существуют. Например, можно настроить OpenOffice.org Base на взаимодействие с вашим новым сервером для всех её баз данных – вы получите ту же самую дружественную оболочку, но надёжно подкрепленную прекрасно масштабируемым MySQL.&lt;br /&gt;
&lt;br /&gt;
Если душа просит чего-то более «продвинутого», то как насчет возможности доступа к вашим данным из любой точки? Лучше всего вооружиться программой типа PhpMyAdmin: это основанный на PHP инструмент администрирования MySQL-сервера, позволяющий вам создавать данные и управлять ими через Интернет. Будьте осторожны с правами доступа; лучше всего установить отдельную копию phpMyAdmin для каждого пользователя, чтобы быть уверенным в надлежащем разграничении прав.&lt;br /&gt;
&lt;br /&gt;
Многие скрипты используют MySQL для хранения своих данных (wiki и дневники, пожалуй, наиболее яркие представители), но, бесспорно, лучшее применение MySQL – это разработка собственных PHP-скриптов на базе MySQL.&lt;br /&gt;
&lt;br /&gt;
===Межсетевые экраны===&lt;br /&gt;
Запуская собственный сервер, вы вынуждены «продырявить» свой брандмауэр (firewall), чтобы ваш интернет-сервис мог работать, потому что брандмауэр зачастую блокирует все   входящие соединения – беспрепятственно проходят только исходящие.&lt;br /&gt;
&lt;br /&gt;
Чтобы открыть порт на вашем брандмауэре для какого-либо сервера, например, Apache   (HTTP), вам нужно сначала узнать, какой порт и протокол этот сервер использует. Эту информацию обычно можно найти в документации сервера; пригодится также наша небольшая таблица. &lt;br /&gt;
&lt;br /&gt;
И SUSE, и Mandriva используют собственные инструменты настройки брандмауэра, доступные из панели управления. В SUSE, например, откройте Yast, выберите «Security and Users» и щелкните на кнопку «Firewall». Появится новое окно, и для открытия порта просто щелкните на вкладку «Allowed Services» слева. SUSE поставляется с несколькими предварительно настроенными сервисами, которые можно просто выбрать из выпадающего меню «Services to Allow», либо добавить ваш собственный, щёлкнув по кнопке «Advanced». Если вы предпочитаете действовать самостоятельно, то Guarddog (http://www.simonzone.com/software/guarddog) – прекрасная графическая оболочка для настройки вашего брандмауэра.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; &lt;br /&gt;
 !bgcolor=#CCCCFF| Сервис ||bgcolor=#CCCCFF| Протокол||bgcolor=#CCCCFF|Порт&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |SSH||TCP||22&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |HTTP||TCP||80&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |Squid||UDP, TCP||3128, 3130&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Общайтесь при помощи Jabber==&lt;br /&gt;
&lt;br /&gt;
Соберите друзей поболтать через ваш личный сервер обмена мгновенными сообщениями.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы держать свои сообщения в секрете&lt;br /&gt;
&lt;br /&gt;
Чтобы сохранять все важные «диалоги»&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить собственную страничку сообщества&lt;br /&gt;
&lt;br /&gt;
Чтобы избавиться от рекламы&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* http://www.habber.org&lt;br /&gt;
* http://www.jivesoftware.org&lt;br /&gt;
* http://psi-im.org/psi.affinix.com&lt;br /&gt;
* http://www.xmpp.org&lt;br /&gt;
* http://en.wikipedia.org/wiki/Jabber&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Если не считать голосовое общение, то мгновенные сообщения (IM) лучше всего подходят для проведения групповых дискуссий. Они заслуженно популярны, и существует ряд конкурирующих протоколов, серверов и клиентов для IM. Поскольку мы используем Linux, мы можем выбрать лучшее – по нашему мнению, это Jabber.&lt;br /&gt;
&lt;br /&gt;
''Jabber'' – не название какой-то программы как таковой. Это обозначение протокола, поддерживающего взаимодействие клиентов и серверов для создания чата. Вообще-то протокол называется не Jabber, более точное его наименование – XMPP, он поддерживает открытый стандарт для сообщений. Однако довольно путаницы, перейдем к делу.     Протоколами Jabber пользуются несколько серверов. Некоторые из них коммерческие, хватает и открытых; одни написаны на Java, другие – на С, и т.д. Со списком различных вариантов можно ознакомиться на сайте JFSF [http://www.jabber.org/software/servers.shtml]. Мы выбрали Wildfire, сервер от Jive Software, по трём причинам – этот сервер:&lt;br /&gt;
* свободное ПО, распространяемое подлицензией GPL;&lt;br /&gt;
* основан на Java и является кросс-платформным (Mac/Windows/Unix);&lt;br /&gt;
* способен работать как автономно, так и в составе сервера приложений.&lt;br /&gt;
&lt;br /&gt;
Есть и четвёртая причина: его очень просто настраивать и использовать! Чтобы раздобыть последнюю версию исходных кодов и RPM-пакеты, зайдите на http://www.jivesoftware.org/wildfire/ или возьмите версию с нашего диска, которую будем использовать мы. Установка RPM-пакета совершенно стандартная, так что у вас все получится (сервер будет поставлен в '''/opt/wildfire'''). Tar-архив содержит статически собранную версию, которую вы можете распаковать и скопировать в '''/opt''' или другое место. запустите сервер:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /opt/wildfire/bin/wildfire&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дальнейшую настройку может выполнить сам сервер. Наберите в адресной строке адреса вашего браузера http://localhost:9090 (или укажите имя сервера, если вы выполняете настройку удалённо). Углубившись в опции (для простоты выберите встроенную базу данных – Embedded Database), вы за несколько шагов достигнете главной панели администрирования. Здесь доступна уйма опций, но в первую очередь надо бы завести нескольких пользователей и протестировать систему. Ваш сервер – частный и закрытый, поэтому вы, вероятно, исключите регистрацию извне и будете создавать нужных пользователей самостоятельно.&lt;br /&gt;
&lt;br /&gt;
Чтобы сервис ''Wildfire'' запускался при старте системы, в каталоге '''/bin/extra''' предсмотрен скрипт ''wildfired''. Для его запуска на вашей системе, отредактируйте строку, начинающуюся с '''export WILDFILRE_HOME=''', чтобы она указывала на каталог установки, затем скопируйте его в '''/etc/init.d''' и сделайте ссылку из каталога соответствующего уровня исполнения (runlevel). точный способ сделать это зависит от вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
Вот и всё. Пользователи смогут самостоятельно подключаться к вашему серверу и беседовать, пока фирма не обанкротится. Кстати говоря, в корпоративной сети вы можете подсоединить ''Wildfire'' к LDAP – учётные записи для всего персонала будут получены автоматически! (См. Http://www.jivesoftware.org/builds/wildfire/docs/latest/documentation/ldap-guide.html).&lt;br /&gt;
&lt;br /&gt;
===Выбирайте клиент===&lt;br /&gt;
Существует множество клиентов, способных работать с Jabber-серверами – поскольку это открытый стандарт, их достаточно легко подключить. Вот несколько популярных совместимых клиентов для основных операционных систем:&lt;br /&gt;
* Linux: Gaim, Kopete, Gush, Gabber;&lt;br /&gt;
* Mac OS X: iCat, Gush, Gabber;&lt;br /&gt;
* Windows: Miranda IM, Trillian Pro, IRJabber,Gush;&lt;br /&gt;
&lt;br /&gt;
Не забывайте, что вам нужно создавать учётные записи на сервере или разрешить клиентам регистрироваться самостоятельно. Приятного общения!&lt;br /&gt;
&lt;br /&gt;
===Настройки SYSCTL===&lt;br /&gt;
&lt;br /&gt;
Ядра многих дистрибутивов настроены на   баланс между серверным и «настольным» применением. Но если вы запускаете силь но загруженный сервер, то можно подстроить    некоторые опции ядра для получения прироста скорости при помощи утилиты sysctl,   которая изменяет параметры ядра «на лету». (Вы можете также сохранить настройки в /etc/sysctl.conf). Введите sysctl -a, чтобы увидеть все параметры. Ряд опций могут увеличить производительность сервера, их следует вводить от имени root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w kernel.threads-max=65526&lt;br /&gt;
 sysctl -w fs.file-max=8192&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эти команды устанавливают число активных потоков, которое ядро может обслуживать, и число файлов, которые можно открыть одновременно. Увеличьте эти значения, если в логфайлах появятся сообщения о нехватке данных ресурсов.&lt;br /&gt;
&lt;br /&gt;
Следующая опция увеличивает объем памяти, выделяемой для сетевых буферов отправки – если нужно обслуживать большие файлы, то это значительно ускорит машинуработу (web,&lt;br /&gt;
FTP, Samba и т.д.):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w net.core.wmem_&lt;br /&gt;
 max=1048576&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее, установите число соединений, которые сохраняются в ожидании подтверждения клиентом. Обычно это число – 1024; увеличьте его, если ваш сервер часто оказывается перегружен соединениями:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w net.ipv4.tcp_max_syn_backlog=4096&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последняя опция определяет, как страницы памяти ядра сохраняются на диске (в виртуальной памяти), когда объем ОЗУ недостаточен. Обычно этот параметр устанавливается в значение 3. Более высокое значение увеличит время отклика настольных приложений (нехорошо!), но может быть полезно на сервере, где общая пропускная способность важнее, чем мгновенный отклик:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w vm/page-cluster=8&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Запустите собственную IRC-сеть==&lt;br /&gt;
&lt;br /&gt;
Откройте чат-салон на IrC-сервере – можно обсуждать открытое ПО, проекты Linux, судейство в турине&lt;br /&gt;
&lt;br /&gt;
Internet Relay Chat (IRC) – предшественник всемирной паутины. В далёком 1988-м году программист Яаркко Ойкаринен (Jarkko Oikarinen) создал альтернативу общению через доски объявлений, разработав IRC – простой и быстрый протокол, основанный на обычном тексте, который позволил пользователям во всём мире подключаться к сети серверов и беседовать в режиме реального времени. Благодаря простоте протокола IRC, даже программисты-любители могли разработать собственные клиенты – так что довольно быстро система уже насчитывала тысячи пользователей.&lt;br /&gt;
&lt;br /&gt;
Сегодня рынок захвачен преимущественно чат-салонами, основанными на web (типа Yahoo Chat), но IRC всё ещё очень популярен среди опытных пользователей. Основные IRC-сети, EFnet и Freenode, размещают тысячи «каналов» (аналог чатсалона) по темам от разработок на Perl до воскрешения мёртвых. IRC выработал свои собственные обычаи и нормы этикета, и пользователи, которые хамят и высказывают неуважение к правилам, рискуют нарваться на довольно жёсткие санкции. Это диковатый и эксцентричный мир – но только не в вопросах функционирования, и один из лучших способов поддерживать связь с людьми.&lt;br /&gt;
&lt;br /&gt;
===Зачем запускать IRCD?===&lt;br /&gt;
Демон IRC, известный также как IRC-сервер, позволяет пользователям подключаться к вашей машине через своих клиентов и взаимодействовать с вами как с хостом. Вы можете запустить автономный IRC-сервер для внутреннего пользования или присоединиться к большой сети, что-бы распределить загрузку – если у вас, к примеру, есть право на присоединение вашего сервера к Freenode, то вы сможете обслуживать пользователей, которые будут общаться с пользователями других Freenode-серверов. так… а свой-то зачем настраивать? По нескольким причинам: вы можете работать над программным проектом и пожелать работать с собственными каналами, чтоб самому устанавливать правила (вместо создания канала в чужой сети). Или, возможно, вы хотите общаться с друзьями «частным» образом, подальше от различных «асек» и основанных на web чат-салонов. а может быть, вы просто хотите поддержать существующую IRC-сеть, добавив к ней ещё одну лошадиную (в смысле, серверную) силу.&lt;br /&gt;
&lt;br /&gt;
Многие нынешние IRC-серверы являются переработкой исходного кода IRCD, с набором функций, добавленных поверх него. Некоторые были созданы с нуля. Ниже мы приводим три шага, показывающие, как собрать, настроить и запустить ''IRCD-Hybrid'', один из наиболее гибких серверов IRC, широко использующийся в сети Efnet.&lt;br /&gt;
&lt;br /&gt;
Когда ваш сервер будет запущен, вашим пользователям понадобятся IRC-клиенты, чтобы подключиться к нему. Пользователям KDE следует попробовать прекрасный ''Konversation'', в то время как фанаты Gnome/GTK могут выбрать не менее удачный ''X-Chat''. Для работы в командной строке хорошим выбором будут ''Irssi'' и ''BitchX'', и есть даже web-оболочка в виде CGI:IRC. Полный список можно найти на http://www.freshmeat.net/.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1 Завести IRCD-HYBRID===&lt;br /&gt;
Вы можете найти его на нашем диске в разделе '''Server''' или на сайте http://www.ircd-hybrid.com. распакуйте '''ircd-hybrid-7.2.0.tgz''', перейдите в созданный каталог и введите '''./configure'''. Здесь нет скрытых зависимостей, и опции, выставленные по умолчанию, превосходны. Но если вы пожелаете изменить максимальную длину имени пользователя или наименования канала, это можно сделать, используя ключи '''--with-nicklen''' и '''--with-topiclen''' соответственно в команде '''./configure'''. Введите make и make install (как root) для установки в '''/usr/local/ircd''' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
===Шаг 2 Настроить===&lt;br /&gt;
Перейдите в '''/usr/local/ircd/etc/''' и скопируйте файл '''example.conf''' под именем '''ircd.conf'''. теперь откройте ircd.conf в вашем любимом редакторе, и познакомьтесь поближе с его форматом. Задайте имя вашего сервера и его SID (уникальный идентификатор, например, «8XZ») в секции «serverinfo» в самом верху. Вам нужно также найти и удалить строку '''havent_read_conf''', которая предотвращает запуск сервера с настройками по умолчанию – это будет на строке 1073. Для начала вполне достаточно; позже вы сможете почитать описания других опций.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3 Пуск!===&lt;br /&gt;
Введите команду '''/usr/local/ircd/bin/ircd -logfile ~/ircd.log''', она запустит сервер (и будет записывать информацию о любых проблемах в файл '''ircd.log''' вашего домашнего каталога). теперь вы можете подключиться к вашей машине локально (по адресу 127.0.0.1) с помощью IRC-клиента, создать каналы и установить права доступа. затем сообщайте друзьям ваш IP-адрес или доменное имя, и они смогут подключаться через Интернет (убедитесь, что порт 6667 не заблокирован брандмауэром). Если вы хотите присоединиться к другой IRC-сети, свяжитесь с её администраторами – как правило, вы можете найти их адреса электронной почты на сайте сети или проекта. Наконец, более полную информацию по использованию IRC можно получить на http://www.irchelp.org.&lt;br /&gt;
&lt;br /&gt;
==Нужна поддержка?==&lt;br /&gt;
Наша прогулка по IrC была последней в представленном материале. Мы надеемся, что вы попробуете хотя бы одну из предложенных идей. Прыжок на первую ступеньку администрирования сервера совершить непросто, так что если вы сражаетесь с пошаговыми инструкциями или нуждаетесь в совете, что дальше, мы рекомендуем вам посетить http://www.linuxforum.ru. Даже если вы просто хотите пожаловаться, что ваш любимый сервер обделили вниманием, мы все равно ждем вашего отклика!&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-12-17T07:50:06Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Общайтесь при помощи Jabber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;br /&gt;
&lt;br /&gt;
==Строим файловое хранилище на Samba==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы получить доступ к своим файлам с любого ПК в сети.&lt;br /&gt;
&lt;br /&gt;
Чтобы предоставить ваш принтер в общее пользование.&lt;br /&gt;
&lt;br /&gt;
Чтобы упростить создание резервных копий.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* http://www.samba.org/samba/docs/man/Samba-hOWTO-Collection&lt;br /&gt;
* http://hr.uoregon.edu/decidrl/samba.html&lt;br /&gt;
* http://samba.anu.edu.au/cifs/docs/what-is-smb.html&lt;br /&gt;
* ftp://ftp.samba.org/pub/samba/docs/Samba24hc13.pdf&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Совместное проживание OS X, Windows и Linux – дурдом? только не при Samba.&lt;br /&gt;
&lt;br /&gt;
Наиболее частая операция, выполняемая в небольших или домашних сетях – обобществление ресурсов. Общим может быть подключение к Интернету или что-нибудь попроще – например, принтер или вообще файл. Прежде чем рассылать 5 мБ-документы по всему дому через Gmail, подумайте о безопасной и простой альтернативе – вашем собственном файловом сервере.&lt;br /&gt;
&lt;br /&gt;
Есть несколько способов создать его в Linux, но, вероятно, простейший и самый надежный способ – это использование ''Samba''. Ко всему прочему, Samba поддерживает протокол SMB, который используется в сетях Windows для предоставления файлов в общий доступ – так что вы сможете работать с общими файлами не только на Linux-машинах, но и на Windows, и на Mac!&lt;br /&gt;
&lt;br /&gt;
===Здравствуй, Samba!===&lt;br /&gt;
&lt;br /&gt;
Наилучший способ установить Samba на ваш Linux-компьютер – это воспользоваться пакетами, включенными в ваш дистрибутив: Samba имеется в любом дистрибутиве, претендующем на популярность. Итак, пусть ваш менеджер пакетов отыщет и установит соответствующие программы. многие дистрибутивы разделяют клиентское и серверное ПО – убедитесь, что установлено и то, и другое. На «чистом» сервере клиент, конечно, не обязателен, но он пригодится для тестирования.&lt;br /&gt;
&lt;br /&gt;
После установки настает время создать конфигурационный файл. Пакет Samba обычно снабжен файлом настроек по умолчанию, и достаточно лишь слегка подправить его. Впрочем, вы можете начать и с нуля. Краткий пример показывает, как мало этому файлу надо (кстати, его имя – /etc/samba/smb.conf):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = LINUX&lt;br /&gt;
 netbios name = MYSHARE&lt;br /&gt;
 &lt;br /&gt;
 [share1]&lt;br /&gt;
 path = /tmp&lt;br /&gt;
 [share2]&lt;br /&gt;
 path = /share&lt;br /&gt;
 comment = Some random files&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция '''global''' обязательна и определяет имя рабочей группы (используется в Windows для объединения общих файлов — группировки ресурсов) и имя NetBIOS, под этим именем ваш сервер будет фигурировать на других компьютерах. По умолчанию берется имя вашего хоста (hostname).&lt;br /&gt;
&lt;br /&gt;
Секции '''share''' в приведённом примере – это имена общих папок [частенько называемых «шарами», – прим. ред.], которые обслуживаются данной машиной. Опции не ограничиваются простой ссылкой на каталог. Вы можете допустить к общим папкам только лиц из определенного круга или даже сделать список файлов невидимым для неавторизованных пользователей. За дополнительной информацией обращайтесь к демонстрационному конфигурационному файлу или врезке «Полезные ссылки».&lt;br /&gt;
&lt;br /&gt;
Наконец, для запуска сервера выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вероятно, вам захочется, чтобы этот сервис сам активизировался при каждой перезагрузке, так что либо вручную свяжите его с runlevel, либо включите в конфигурацию загрузки компьютера. Используйте для этого инструменты вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
В Linux, вы теперь можете монтировать общие каталоги и сетевые ресурсы, используя команду smbmount, или обычную mount с ключом '''-t cifs''' (smbfs уже устарела, пользуйтесь cifs):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount //HOSTNAME/sharename /mnt/share -t cifs -o user&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Windows и Mac вы можете использовать обычные сетевые инструменты. &lt;br /&gt;
&lt;br /&gt;
===Кое-что о принтере===&lt;br /&gt;
Помните, мы вскользь отметили, что в общее пользование часто предоставляется принтер? Конфигурационный файл Samba и с этим способен справиться, причем несколькими способами, в зависимости от того, работает ли у вас CUPS (Common Unix Printing System) и сколько у вас принтеров. мы будем иметь дело с простым сценарием, без CUPS (хотя CUPS, между прочим, тоже присутствует во многих дистрибутивах Linux, и это лучший способ управлять принтерами в Linux). CUPS тоже мог бы настроить сетевую печать, но раз уж запущен Samba, то проще поддерживать один набор файлов.&lt;br /&gt;
&lt;br /&gt;
Обычно файл '''smb.conf''', устанавливаемый по умолчанию, содержит следующие строки (проверьте, что они раскомментированы, т.е. символы «#» есть только там, где показано):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = All Printers&lt;br /&gt;
 path = /var/spool/samba&lt;br /&gt;
 browseable = no&lt;br /&gt;
 # чтобы разрешить «гостевой» доступ к печати&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
 printable = yes&lt;br /&gt;
 create mode = 0700&lt;br /&gt;
 #=============================&lt;br /&gt;
 # команда печати, подробности см. выше&lt;br /&gt;
 #=============================&lt;br /&gt;
 print command = lpr-cups -P %p -o raw %s -r&lt;br /&gt;
 # используются драйверы печати на  стороне пользователя&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот код, в общем-то, разрешает пользоваться принтерами всем. Но бывают обстоятельства, когда лучше позаботиться, чтобы на принтер покушались только штатные пользователи – в этом случае просто замените строку «''guest ok = yes''» на «''guest ok = no''».&lt;br /&gt;
&lt;br /&gt;
Данные настройки всего лишь позволяют передавать данные – на клиентских машинах, естественно, должен иметься правильный драйвер принтера.&lt;br /&gt;
&lt;br /&gt;
==Запрягаем базу данных==&lt;br /&gt;
Ваш собственный сервер баз данных MySQL в подкрепление к OpenOffice.org Base.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы сэкономить деньги на хостинге баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить прочную основу для графических систем баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы наконец изучить SQL.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Баз данных в мире заметно больше, чем web-серверов. Они гораздо дольше окружают нас, содержат на порядок больше данных и поставляют больше критичных сервисов, чем все прочие. а почему бы вам не завести собственную базу данных? В отличие от серверов Samba и Apache, серверы баз данных не гонятся за славой – запустите такой, и он будет сидеть себе потихоньку в фоновом режиме, дожидаясь запроса.&lt;br /&gt;
&lt;br /&gt;
Web-хостыеры обычно предоставляют базы данных весьма скромных размеров (заполучить 100 мБ считается удачей) – вот вам и повод сделать сервер самому. Потратив некоторое время на освоение SQL, вы сможете настроить ваш сервер и запросто предоставлять его также и вашим друзьям. &lt;br /&gt;
&lt;br /&gt;
===Ваше руководство по установке===&lt;br /&gt;
Мы продемонстрируем вам, как настроить сервер MySQL. MySQL 5.0 имеется на нашем диске, так что скопируйте его, распакуйте и перейдите в созданный каталог, где выполните ./configure --prefix=/usr/local/mysql, затем make, переключитесь в режим root, и наконец, запустите make install. теперь перейдите в каталог /usr/local/mysql, выполните там команду bin/mysql_install_db, затем chown -R mysql var. Итак, MySQL установлена. Выполните команду bin/mysqld_safe &amp;amp;, чтобы запустить ваш MySQL-сервер.&lt;br /&gt;
&lt;br /&gt;
По умолчанию MySQL не устанавливает пароль для своего суперпользователя, так что вам нужно ввести несколько команд от имени непривилегированного пользователя:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим на сервер&lt;br /&gt;
 /usr/loca/mysql/bin/mysql -u root mysql&lt;br /&gt;
 # зададим пароль для root — желательно, чтоб угадать его было нелегко!&lt;br /&gt;
 UPDATE user SET Pasword =&lt;br /&gt;
 PASSWORD(‘frosties’) WHERE User = ‘root’;&lt;br /&gt;
 # Создайте базу данных, которая нам понадобится в дальнейшем&lt;br /&gt;
 CREATE DATABASE lxfdb;&lt;br /&gt;
 # Добавьте учетную запись непривилегированного пользователя&lt;br /&gt;
 INSERT INTO user (Host, User, Password)&lt;br /&gt;
 VALUES (‘localhost’, ‘lxf’,&lt;br /&gt;
 PASSWORD(‘orangutan’));&lt;br /&gt;
 # Предоставьте новому пользователю доступ к созданной базе данных&lt;br /&gt;
 GRANT ALL PRIVILEGES ON lxfdb.* TO lxf;&lt;br /&gt;
 # Обновите привилегии MySQL &lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 # Выйдите из MySQL; негоже лазить везде с правами root&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы вернулись к нашей командной строке, теперь осталось убедиться, что новая учётная запись работает. Введите:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим под именем нашего пользователя&lt;br /&gt;
 /usr/local/bysql/bin/mysql -u lxf -p lxfdb&lt;br /&gt;
 # Посмотрим список имеющихся таблиц (пока у нас ничего нет)&lt;br /&gt;
 SHOW TABLES;&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, значит, учётная запись создалась нормально.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать учётные записи ещё для кого-нибудь, просто повторите команду INSERT INTO, замените имя пользователя и пароль новыми значениями, плюс установите значение Host в «%» (предоставление доступа к локальному хосту извне с удаленных хостов). Вы можете создать сколько угодно баз данных и предоставлять пользователям различные уровни доступа. MySQL работает на порту 3306, так что вам нужно будет открыть доступ к нему на вашем брандмауэре, чтобы другие могли подключаться беспрепятственно.&lt;br /&gt;
&lt;br /&gt;
===Жизнь-служение===&lt;br /&gt;
По общему признанию, серверы баз данных не богаты приложениями, преимуществами которых можно воспользоваться прямо с ходу, но некоторые всё же существуют. Например, можно настроить OpenOffice.org Base на взаимодействие с вашим новым сервером для всех её баз данных – вы получите ту же самую дружественную оболочку, но надёжно подкрепленную прекрасно масштабируемым MySQL.&lt;br /&gt;
&lt;br /&gt;
Если душа просит чего-то более «продвинутого», то как насчет возможности доступа к вашим данным из любой точки? Лучше всего вооружиться программой типа PhpMyAdmin: это основанный на PHP инструмент администрирования MySQL-сервера, позволяющий вам создавать данные и управлять ими через Интернет. Будьте осторожны с правами доступа; лучше всего установить отдельную копию phpMyAdmin для каждого пользователя, чтобы быть уверенным в надлежащем разграничении прав.&lt;br /&gt;
&lt;br /&gt;
Многие скрипты используют MySQL для хранения своих данных (wiki и дневники, пожалуй, наиболее яркие представители), но, бесспорно, лучшее применение MySQL – это разработка собственных PHP-скриптов на базе MySQL.&lt;br /&gt;
&lt;br /&gt;
===Межсетевые экраны===&lt;br /&gt;
Запуская собственный сервер, вы вынуждены «продырявить» свой брандмауэр (firewall), чтобы ваш интернет-сервис мог работать, потому что брандмауэр зачастую блокирует все   входящие соединения – беспрепятственно проходят только исходящие.&lt;br /&gt;
&lt;br /&gt;
Чтобы открыть порт на вашем брандмауэре для какого-либо сервера, например, Apache   (HTTP), вам нужно сначала узнать, какой порт и протокол этот сервер использует. Эту информацию обычно можно найти в документации сервера; пригодится также наша небольшая таблица. &lt;br /&gt;
&lt;br /&gt;
И SUSE, и Mandriva используют собственные инструменты настройки брандмауэра, доступные из панели управления. В SUSE, например, откройте Yast, выберите «Security and Users» и щелкните на кнопку «Firewall». Появится новое окно, и для открытия порта просто щелкните на вкладку «Allowed Services» слева. SUSE поставляется с несколькими предварительно настроенными сервисами, которые можно просто выбрать из выпадающего меню «Services to Allow», либо добавить ваш собственный, щёлкнув по кнопке «Advanced». Если вы предпочитаете действовать самостоятельно, то Guarddog (http://www.simonzone.com/software/guarddog) – прекрасная графическая оболочка для настройки вашего брандмауэра.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; &lt;br /&gt;
 !bgcolor=#CCCCFF| Сервис ||bgcolor=#CCCCFF| Протокол||bgcolor=#CCCCFF|Порт&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |SSH||TCP||22&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |HTTP||TCP||80&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |Squid||UDP, TCP||3128, 3130&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Общайтесь при помощи Jabber==&lt;br /&gt;
&lt;br /&gt;
Соберите друзей поболтать через ваш личный сервер обмена мгновенными сообщениями.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы держать свои сообщения в секрете&lt;br /&gt;
&lt;br /&gt;
Чтобы сохранять все важные «диалоги»&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить собственную страничку сообщества&lt;br /&gt;
&lt;br /&gt;
Чтобы избавиться от рекламы&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* www.habber.org&lt;br /&gt;
* www.jivesoftware.org&lt;br /&gt;
* http://psi-im.org/psi.affinix.com&lt;br /&gt;
* www.xmpp.org&lt;br /&gt;
* http://en.wikipedia.org/wiki/Jabber&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Если не считать голосовое общение, то мгновенные сообщения (IM) лучше всего подходят для проведения групповых дискуссий. Они заслуженно популярны, и существует ряд конкурирующих протоколов, серверов и клиентов для IM. Поскольку мы используем Linux, мы можем выбрать лучшее – по нашему мнению, это Jabber.&lt;br /&gt;
&lt;br /&gt;
''Jabber'' – не название какой-то программы как таковой. Это обозначение протокола, поддерживающего взаимодействие клиентов и серверов для создания чата. Вообще-то протокол называется не Jabber, более точное его наименование – XMPP, он поддерживает открытый стандарт для сообщений. Однако довольно путаницы, перейдем к делу.     Протоколами Jabber пользуются несколько серверов. Некоторые из них коммерческие, хватает и открытых; одни написаны на Java, другие – на С, и т.д. Со списком различных вариантов можно ознакомиться на сайте JFSF [http://www.jabber.org/software/servers.shtml]. Мы выбрали Wildfire, сервер от Jive Software, по трём причинам – этот сервер:&lt;br /&gt;
* свободное ПО, распространяемое подлицензией GPL;&lt;br /&gt;
* основан на Java и является кросс-платформным (Mac/Windows/Unix);&lt;br /&gt;
* способен работать как автономно, так и в составе сервера приложений.&lt;br /&gt;
&lt;br /&gt;
Есть и четвёртая причина: его очень просто настраивать и использовать! Чтобы раздобыть последнюю версию исходных кодов и RPM-пакеты, зайдите на http://www.jivesoftware.org/wildfire/ или возьмите версию с нашего диска, которую будем использовать мы. Установка RPM-пакета совершенно стандартная, так что у вас все получится (сервер будет поставлен в '''/opt/wildfire'''). Tar-архив содержит статически собранную версию, которую вы можете распаковать и скопировать в '''/opt''' или другое место. запустите сервер:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /opt/wildfire/bin/wildfire&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дальнейшую настройку может выполнить сам сервер. Наберите в адресной строке адреса вашего браузера http://localhost:9090 (или укажите имя сервера, если вы выполняете настройку удалённо). Углубившись в опции (для простоты выберите встроенную базу данных – Embedded Database), вы за несколько шагов достигнете главной панели администрирования. Здесь доступна уйма опций, но в первую очередь надо бы завести нескольких пользователей и протестировать систему. Ваш сервер – частный и закрытый, поэтому вы, вероятно, исключите регистрацию извне и будете создавать нужных пользователей самостоятельно.&lt;br /&gt;
&lt;br /&gt;
Чтобы сервис ''Wildfire'' запускался при старте системы, в каталоге '''/bin/extra''' предсмотрен скрипт ''wildfired''. Для его запуска на вашей системе, отредактируйте строку, начинающуюся с '''export WILDFILRE_HOME=''', чтобы она указывала на каталог установки, затем скопируйте его в '''/etc/init.d''' и сделайте ссылку из каталога соответствующего уровня исполнения (runlevel). точный способ сделать это зависит от вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
Вот и всё. Пользователи смогут самостоятельно подключаться к вашему серверу и беседовать, пока фирма не обанкротится. Кстати говоря, в корпоративной сети вы можете подсоединить ''Wildfire'' к LDAP – учётные записи для всего персонала будут получены автоматически! (См. Http://www.jivesoftware.org/builds/wildfire/docs/latest/documentation/ldap-guide.html).&lt;br /&gt;
&lt;br /&gt;
===Выбирайте клиент===&lt;br /&gt;
Существует множество клиентов, способных работать с Jabber-серверами – поскольку это открытый стандарт, их достаточно легко подключить. Вот несколько популярных совместимых клиентов для основных операционных систем:&lt;br /&gt;
* Linux: Gaim, Kopete, Gush, Gabber;&lt;br /&gt;
* Mac OS X: iCat, Gush, Gabber;&lt;br /&gt;
* Windows: Miranda IM, Trillian Pro, IRJabber,Gush;&lt;br /&gt;
&lt;br /&gt;
Не забывайте, что вам нужно создавать учётные записи на сервере или разрешить клиентам регистрироваться самостоятельно. Приятного общения!&lt;br /&gt;
&lt;br /&gt;
===Настройки SYSCTL===&lt;br /&gt;
&lt;br /&gt;
Ядра многих дистрибутивов настроены на   баланс между серверным и «настольным» применением. Но если вы запускаете силь но загруженный сервер, то можно подстроить    некоторые опции ядра для получения прироста скорости при помощи утилиты sysctl,   которая изменяет параметры ядра «на лету». (Вы можете также сохранить настройки в /etc/sysctl.conf). Введите sysctl -a, чтобы увидеть все параметры. Ряд опций могут увеличить производительность сервера, их следует вводить от имени root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w kernel.threads-max=65526&lt;br /&gt;
 sysctl -w fs.file-max=8192&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эти команды устанавливают число активных потоков, которое ядро может обслуживать, и число файлов, которые можно открыть одновременно. Увеличьте эти значения, если в логфайлах появятся сообщения о нехватке данных ресурсов.&lt;br /&gt;
&lt;br /&gt;
Следующая опция увеличивает объем памяти, выделяемой для сетевых буферов отправки – если нужно обслуживать большие файлы, то это значительно ускорит машинуработу (web,&lt;br /&gt;
FTP, Samba и т.д.):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w net.core.wmem_&lt;br /&gt;
 max=1048576&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее, установите число соединений, которые сохраняются в ожидании подтверждения клиентом. Обычно это число – 1024; увеличьте его, если ваш сервер часто оказывается перегружен соединениями:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w net.ipv4.tcp_max_syn_backlog=4096&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последняя опция определяет, как страницы памяти ядра сохраняются на диске (в виртуальной памяти), когда объем ОЗУ недостаточен. Обычно этот параметр устанавливается в значение 3. Более высокое значение увеличит время отклика настольных приложений (нехорошо!), но может быть полезно на сервере, где общая пропускная способность важнее, чем мгновенный отклик:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w vm/page-cluster=8&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Запустите собственную IRC-сеть==&lt;br /&gt;
&lt;br /&gt;
Откройте чат-салон на IrC-сервере – можно обсуждать открытое ПО, проекты Linux, судейство в турине&lt;br /&gt;
&lt;br /&gt;
Internet Relay Chat (IRC) – предшественник всемирной паутины. В далёком 1988-м году программист Яаркко Ойкаринен (Jarkko Oikarinen) создал альтернативу общению через доски объявлений, разработав IRC – простой и быстрый протокол, основанный на обычном тексте, который позволил пользователям во всём мире подключаться к сети серверов и беседовать в режиме реального времени. Благодаря простоте протокола IRC, даже программисты-любители могли разработать собственные клиенты – так что довольно быстро система уже насчитывала тысячи пользователей.&lt;br /&gt;
&lt;br /&gt;
Сегодня рынок захвачен преимущественно чат-салонами, основанными на web (типа Yahoo Chat), но IRC всё ещё очень популярен среди опытных пользователей. Основные IRC-сети, EFnet и Freenode, размещают тысячи «каналов» (аналог чатсалона) по темам от разработок на Perl до воскрешения мёртвых. IRC выработал свои собственные обычаи и нормы этикета, и пользователи, которые хамят и высказывают неуважение к правилам, рискуют нарваться на довольно жёсткие санкции. Это диковатый и эксцентричный мир – но только не в вопросах функционирования, и один из лучших способов поддерживать связь с людьми.&lt;br /&gt;
&lt;br /&gt;
===Зачем запускать IRCD?===&lt;br /&gt;
Демон IRC, известный также как IRC-сервер, позволяет пользователям подключаться к вашей машине через своих клиентов и взаимодействовать с вами как с хостом. Вы можете запустить автономный IRC-сервер для внутреннего пользования или присоединиться к большой сети, что-бы распределить загрузку – если у вас, к примеру, есть право на присоединение вашего сервера к Freenode, то вы сможете обслуживать пользователей, которые будут общаться с пользователями других Freenode-серверов. так… а свой-то зачем настраивать? По нескольким причинам: вы можете работать над программным проектом и пожелать работать с собственными каналами, чтоб самому устанавливать правила (вместо создания канала в чужой сети). Или, возможно, вы хотите общаться с друзьями «частным» образом, подальше от различных «асек» и основанных на web чат-салонов. а может быть, вы просто хотите поддержать существующую IRC-сеть, добавив к ней ещё одну лошадиную (в смысле, серверную) силу.&lt;br /&gt;
&lt;br /&gt;
Многие нынешние IRC-серверы являются переработкой исходного кода IRCD, с набором функций, добавленных поверх него. Некоторые были созданы с нуля. Ниже мы приводим три шага, показывающие, как собрать, настроить и запустить ''IRCD-Hybrid'', один из наиболее гибких серверов IRC, широко использующийся в сети Efnet.&lt;br /&gt;
&lt;br /&gt;
Когда ваш сервер будет запущен, вашим пользователям понадобятся IRC-клиенты, чтобы подключиться к нему. Пользователям KDE следует попробовать прекрасный ''Konversation'', в то время как фанаты Gnome/GTK могут выбрать не менее удачный ''X-Chat''. Для работы в командной строке хорошим выбором будут ''Irssi'' и ''BitchX'', и есть даже web-оболочка в виде CGI:IRC. Полный список можно найти на http://www.freshmeat.net/.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1 Завести IRCD-HYBRID===&lt;br /&gt;
Вы можете найти его на нашем диске в разделе '''Server''' или на сайте http://www.ircd-hybrid.com. распакуйте '''ircd-hybrid-7.2.0.tgz''', перейдите в созданный каталог и введите '''./configure'''. Здесь нет скрытых зависимостей, и опции, выставленные по умолчанию, превосходны. Но если вы пожелаете изменить максимальную длину имени пользователя или наименования канала, это можно сделать, используя ключи '''--with-nicklen''' и '''--with-topiclen''' соответственно в команде '''./configure'''. Введите make и make install (как root) для установки в '''/usr/local/ircd''' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
===Шаг 2 Настроить===&lt;br /&gt;
Перейдите в '''/usr/local/ircd/etc/''' и скопируйте файл '''example.conf''' под именем '''ircd.conf'''. теперь откройте ircd.conf в вашем любимом редакторе, и познакомьтесь поближе с его форматом. Задайте имя вашего сервера и его SID (уникальный идентификатор, например, «8XZ») в секции «serverinfo» в самом верху. Вам нужно также найти и удалить строку '''havent_read_conf''', которая предотвращает запуск сервера с настройками по умолчанию – это будет на строке 1073. Для начала вполне достаточно; позже вы сможете почитать описания других опций.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3 Пуск!===&lt;br /&gt;
Введите команду '''/usr/local/ircd/bin/ircd -logfile ~/ircd.log''', она запустит сервер (и будет записывать информацию о любых проблемах в файл '''ircd.log''' вашего домашнего каталога). теперь вы можете подключиться к вашей машине локально (по адресу 127.0.0.1) с помощью IRC-клиента, создать каналы и установить права доступа. затем сообщайте друзьям ваш IP-адрес или доменное имя, и они смогут подключаться через Интернет (убедитесь, что порт 6667 не заблокирован брандмауэром). Если вы хотите присоединиться к другой IRC-сети, свяжитесь с её администраторами – как правило, вы можете найти их адреса электронной почты на сайте сети или проекта. Наконец, более полную информацию по использованию IRC можно получить на http://www.irchelp.org.&lt;br /&gt;
&lt;br /&gt;
==Нужна поддержка?==&lt;br /&gt;
Наша прогулка по IrC была последней в представленном материале. Мы надеемся, что вы попробуете хотя бы одну из предложенных идей. Прыжок на первую ступеньку администрирования сервера совершить непросто, так что если вы сражаетесь с пошаговыми инструкциями или нуждаетесь в совете, что дальше, мы рекомендуем вам посетить http://www.linuxforum.ru. Даже если вы просто хотите пожаловаться, что ваш любимый сервер обделили вниманием, мы все равно ждем вашего отклика!&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-12-17T07:48:42Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Общайтесь при помощи Jabber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;br /&gt;
&lt;br /&gt;
==Строим файловое хранилище на Samba==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы получить доступ к своим файлам с любого ПК в сети.&lt;br /&gt;
&lt;br /&gt;
Чтобы предоставить ваш принтер в общее пользование.&lt;br /&gt;
&lt;br /&gt;
Чтобы упростить создание резервных копий.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* http://www.samba.org/samba/docs/man/Samba-hOWTO-Collection&lt;br /&gt;
* http://hr.uoregon.edu/decidrl/samba.html&lt;br /&gt;
* http://samba.anu.edu.au/cifs/docs/what-is-smb.html&lt;br /&gt;
* ftp://ftp.samba.org/pub/samba/docs/Samba24hc13.pdf&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Совместное проживание OS X, Windows и Linux – дурдом? только не при Samba.&lt;br /&gt;
&lt;br /&gt;
Наиболее частая операция, выполняемая в небольших или домашних сетях – обобществление ресурсов. Общим может быть подключение к Интернету или что-нибудь попроще – например, принтер или вообще файл. Прежде чем рассылать 5 мБ-документы по всему дому через Gmail, подумайте о безопасной и простой альтернативе – вашем собственном файловом сервере.&lt;br /&gt;
&lt;br /&gt;
Есть несколько способов создать его в Linux, но, вероятно, простейший и самый надежный способ – это использование ''Samba''. Ко всему прочему, Samba поддерживает протокол SMB, который используется в сетях Windows для предоставления файлов в общий доступ – так что вы сможете работать с общими файлами не только на Linux-машинах, но и на Windows, и на Mac!&lt;br /&gt;
&lt;br /&gt;
===Здравствуй, Samba!===&lt;br /&gt;
&lt;br /&gt;
Наилучший способ установить Samba на ваш Linux-компьютер – это воспользоваться пакетами, включенными в ваш дистрибутив: Samba имеется в любом дистрибутиве, претендующем на популярность. Итак, пусть ваш менеджер пакетов отыщет и установит соответствующие программы. многие дистрибутивы разделяют клиентское и серверное ПО – убедитесь, что установлено и то, и другое. На «чистом» сервере клиент, конечно, не обязателен, но он пригодится для тестирования.&lt;br /&gt;
&lt;br /&gt;
После установки настает время создать конфигурационный файл. Пакет Samba обычно снабжен файлом настроек по умолчанию, и достаточно лишь слегка подправить его. Впрочем, вы можете начать и с нуля. Краткий пример показывает, как мало этому файлу надо (кстати, его имя – /etc/samba/smb.conf):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = LINUX&lt;br /&gt;
 netbios name = MYSHARE&lt;br /&gt;
 &lt;br /&gt;
 [share1]&lt;br /&gt;
 path = /tmp&lt;br /&gt;
 [share2]&lt;br /&gt;
 path = /share&lt;br /&gt;
 comment = Some random files&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция '''global''' обязательна и определяет имя рабочей группы (используется в Windows для объединения общих файлов — группировки ресурсов) и имя NetBIOS, под этим именем ваш сервер будет фигурировать на других компьютерах. По умолчанию берется имя вашего хоста (hostname).&lt;br /&gt;
&lt;br /&gt;
Секции '''share''' в приведённом примере – это имена общих папок [частенько называемых «шарами», – прим. ред.], которые обслуживаются данной машиной. Опции не ограничиваются простой ссылкой на каталог. Вы можете допустить к общим папкам только лиц из определенного круга или даже сделать список файлов невидимым для неавторизованных пользователей. За дополнительной информацией обращайтесь к демонстрационному конфигурационному файлу или врезке «Полезные ссылки».&lt;br /&gt;
&lt;br /&gt;
Наконец, для запуска сервера выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вероятно, вам захочется, чтобы этот сервис сам активизировался при каждой перезагрузке, так что либо вручную свяжите его с runlevel, либо включите в конфигурацию загрузки компьютера. Используйте для этого инструменты вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
В Linux, вы теперь можете монтировать общие каталоги и сетевые ресурсы, используя команду smbmount, или обычную mount с ключом '''-t cifs''' (smbfs уже устарела, пользуйтесь cifs):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount //HOSTNAME/sharename /mnt/share -t cifs -o user&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Windows и Mac вы можете использовать обычные сетевые инструменты. &lt;br /&gt;
&lt;br /&gt;
===Кое-что о принтере===&lt;br /&gt;
Помните, мы вскользь отметили, что в общее пользование часто предоставляется принтер? Конфигурационный файл Samba и с этим способен справиться, причем несколькими способами, в зависимости от того, работает ли у вас CUPS (Common Unix Printing System) и сколько у вас принтеров. мы будем иметь дело с простым сценарием, без CUPS (хотя CUPS, между прочим, тоже присутствует во многих дистрибутивах Linux, и это лучший способ управлять принтерами в Linux). CUPS тоже мог бы настроить сетевую печать, но раз уж запущен Samba, то проще поддерживать один набор файлов.&lt;br /&gt;
&lt;br /&gt;
Обычно файл '''smb.conf''', устанавливаемый по умолчанию, содержит следующие строки (проверьте, что они раскомментированы, т.е. символы «#» есть только там, где показано):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = All Printers&lt;br /&gt;
 path = /var/spool/samba&lt;br /&gt;
 browseable = no&lt;br /&gt;
 # чтобы разрешить «гостевой» доступ к печати&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
 printable = yes&lt;br /&gt;
 create mode = 0700&lt;br /&gt;
 #=============================&lt;br /&gt;
 # команда печати, подробности см. выше&lt;br /&gt;
 #=============================&lt;br /&gt;
 print command = lpr-cups -P %p -o raw %s -r&lt;br /&gt;
 # используются драйверы печати на  стороне пользователя&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот код, в общем-то, разрешает пользоваться принтерами всем. Но бывают обстоятельства, когда лучше позаботиться, чтобы на принтер покушались только штатные пользователи – в этом случае просто замените строку «''guest ok = yes''» на «''guest ok = no''».&lt;br /&gt;
&lt;br /&gt;
Данные настройки всего лишь позволяют передавать данные – на клиентских машинах, естественно, должен иметься правильный драйвер принтера.&lt;br /&gt;
&lt;br /&gt;
==Запрягаем базу данных==&lt;br /&gt;
Ваш собственный сервер баз данных MySQL в подкрепление к OpenOffice.org Base.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы сэкономить деньги на хостинге баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить прочную основу для графических систем баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы наконец изучить SQL.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Баз данных в мире заметно больше, чем web-серверов. Они гораздо дольше окружают нас, содержат на порядок больше данных и поставляют больше критичных сервисов, чем все прочие. а почему бы вам не завести собственную базу данных? В отличие от серверов Samba и Apache, серверы баз данных не гонятся за славой – запустите такой, и он будет сидеть себе потихоньку в фоновом режиме, дожидаясь запроса.&lt;br /&gt;
&lt;br /&gt;
Web-хостыеры обычно предоставляют базы данных весьма скромных размеров (заполучить 100 мБ считается удачей) – вот вам и повод сделать сервер самому. Потратив некоторое время на освоение SQL, вы сможете настроить ваш сервер и запросто предоставлять его также и вашим друзьям. &lt;br /&gt;
&lt;br /&gt;
===Ваше руководство по установке===&lt;br /&gt;
Мы продемонстрируем вам, как настроить сервер MySQL. MySQL 5.0 имеется на нашем диске, так что скопируйте его, распакуйте и перейдите в созданный каталог, где выполните ./configure --prefix=/usr/local/mysql, затем make, переключитесь в режим root, и наконец, запустите make install. теперь перейдите в каталог /usr/local/mysql, выполните там команду bin/mysql_install_db, затем chown -R mysql var. Итак, MySQL установлена. Выполните команду bin/mysqld_safe &amp;amp;, чтобы запустить ваш MySQL-сервер.&lt;br /&gt;
&lt;br /&gt;
По умолчанию MySQL не устанавливает пароль для своего суперпользователя, так что вам нужно ввести несколько команд от имени непривилегированного пользователя:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим на сервер&lt;br /&gt;
 /usr/loca/mysql/bin/mysql -u root mysql&lt;br /&gt;
 # зададим пароль для root — желательно, чтоб угадать его было нелегко!&lt;br /&gt;
 UPDATE user SET Pasword =&lt;br /&gt;
 PASSWORD(‘frosties’) WHERE User = ‘root’;&lt;br /&gt;
 # Создайте базу данных, которая нам понадобится в дальнейшем&lt;br /&gt;
 CREATE DATABASE lxfdb;&lt;br /&gt;
 # Добавьте учетную запись непривилегированного пользователя&lt;br /&gt;
 INSERT INTO user (Host, User, Password)&lt;br /&gt;
 VALUES (‘localhost’, ‘lxf’,&lt;br /&gt;
 PASSWORD(‘orangutan’));&lt;br /&gt;
 # Предоставьте новому пользователю доступ к созданной базе данных&lt;br /&gt;
 GRANT ALL PRIVILEGES ON lxfdb.* TO lxf;&lt;br /&gt;
 # Обновите привилегии MySQL &lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 # Выйдите из MySQL; негоже лазить везде с правами root&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы вернулись к нашей командной строке, теперь осталось убедиться, что новая учётная запись работает. Введите:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим под именем нашего пользователя&lt;br /&gt;
 /usr/local/bysql/bin/mysql -u lxf -p lxfdb&lt;br /&gt;
 # Посмотрим список имеющихся таблиц (пока у нас ничего нет)&lt;br /&gt;
 SHOW TABLES;&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, значит, учётная запись создалась нормально.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать учётные записи ещё для кого-нибудь, просто повторите команду INSERT INTO, замените имя пользователя и пароль новыми значениями, плюс установите значение Host в «%» (предоставление доступа к локальному хосту извне с удаленных хостов). Вы можете создать сколько угодно баз данных и предоставлять пользователям различные уровни доступа. MySQL работает на порту 3306, так что вам нужно будет открыть доступ к нему на вашем брандмауэре, чтобы другие могли подключаться беспрепятственно.&lt;br /&gt;
&lt;br /&gt;
===Жизнь-служение===&lt;br /&gt;
По общему признанию, серверы баз данных не богаты приложениями, преимуществами которых можно воспользоваться прямо с ходу, но некоторые всё же существуют. Например, можно настроить OpenOffice.org Base на взаимодействие с вашим новым сервером для всех её баз данных – вы получите ту же самую дружественную оболочку, но надёжно подкрепленную прекрасно масштабируемым MySQL.&lt;br /&gt;
&lt;br /&gt;
Если душа просит чего-то более «продвинутого», то как насчет возможности доступа к вашим данным из любой точки? Лучше всего вооружиться программой типа PhpMyAdmin: это основанный на PHP инструмент администрирования MySQL-сервера, позволяющий вам создавать данные и управлять ими через Интернет. Будьте осторожны с правами доступа; лучше всего установить отдельную копию phpMyAdmin для каждого пользователя, чтобы быть уверенным в надлежащем разграничении прав.&lt;br /&gt;
&lt;br /&gt;
Многие скрипты используют MySQL для хранения своих данных (wiki и дневники, пожалуй, наиболее яркие представители), но, бесспорно, лучшее применение MySQL – это разработка собственных PHP-скриптов на базе MySQL.&lt;br /&gt;
&lt;br /&gt;
===Межсетевые экраны===&lt;br /&gt;
Запуская собственный сервер, вы вынуждены «продырявить» свой брандмауэр (firewall), чтобы ваш интернет-сервис мог работать, потому что брандмауэр зачастую блокирует все   входящие соединения – беспрепятственно проходят только исходящие.&lt;br /&gt;
&lt;br /&gt;
Чтобы открыть порт на вашем брандмауэре для какого-либо сервера, например, Apache   (HTTP), вам нужно сначала узнать, какой порт и протокол этот сервер использует. Эту информацию обычно можно найти в документации сервера; пригодится также наша небольшая таблица. &lt;br /&gt;
&lt;br /&gt;
И SUSE, и Mandriva используют собственные инструменты настройки брандмауэра, доступные из панели управления. В SUSE, например, откройте Yast, выберите «Security and Users» и щелкните на кнопку «Firewall». Появится новое окно, и для открытия порта просто щелкните на вкладку «Allowed Services» слева. SUSE поставляется с несколькими предварительно настроенными сервисами, которые можно просто выбрать из выпадающего меню «Services to Allow», либо добавить ваш собственный, щёлкнув по кнопке «Advanced». Если вы предпочитаете действовать самостоятельно, то Guarddog (http://www.simonzone.com/software/guarddog) – прекрасная графическая оболочка для настройки вашего брандмауэра.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; &lt;br /&gt;
 !bgcolor=#CCCCFF| Сервис ||bgcolor=#CCCCFF| Протокол||bgcolor=#CCCCFF|Порт&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |SSH||TCP||22&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |HTTP||TCP||80&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |Squid||UDP, TCP||3128, 3130&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Общайтесь при помощи Jabber==&lt;br /&gt;
&lt;br /&gt;
Соберите друзей поболтать через ваш личный сервер обмена мгновенными сообщениями.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы держать свои сообщения в секрете&lt;br /&gt;
&lt;br /&gt;
Чтобы сохранять все важные «диалоги»&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить собственную страничку сообщества&lt;br /&gt;
&lt;br /&gt;
Чтобы избавиться от рекламы&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Если не считать голосовое общение, то мгновенные сообщения (IM) лучше всего подходят для проведения групповых дискуссий. Они заслуженно популярны, и существует ряд конкурирующих протоколов, серверов и клиентов для IM. Поскольку мы используем Linux, мы можем выбрать лучшее – по нашему мнению, это Jabber.&lt;br /&gt;
&lt;br /&gt;
''Jabber'' – не название какой-то программы как таковой. Это обозначение протокола, поддерживающего взаимодействие клиентов и серверов для создания чата. Вообще-то протокол называется не Jabber, более точное его наименование – XMPP, он поддерживает открытый стандарт для сообщений. Однако довольно путаницы, перейдем к делу.     Протоколами Jabber пользуются несколько серверов. Некоторые из них коммерческие, хватает и открытых; одни написаны на Java, другие – на С, и т.д. Со списком различных вариантов можно ознакомиться на сайте JFSF [http://www.jabber.org/software/servers.shtml]. Мы выбрали Wildfire, сервер от Jive Software, по трём причинам – этот сервер:&lt;br /&gt;
* свободное ПО, распространяемое подлицензией GPL;&lt;br /&gt;
* основан на Java и является кросс-платформным (Mac/Windows/Unix);&lt;br /&gt;
* способен работать как автономно, так и в составе сервера приложений.&lt;br /&gt;
&lt;br /&gt;
Есть и четвёртая причина: его очень просто настраивать и использовать! Чтобы раздобыть последнюю версию исходных кодов и RPM-пакеты, зайдите на http://www.jivesoftware.org/wildfire/ или возьмите версию с нашего диска, которую будем использовать мы. Установка RPM-пакета совершенно стандартная, так что у вас все получится (сервер будет поставлен в '''/opt/wildfire'''). Tar-архив содержит статически собранную версию, которую вы можете распаковать и скопировать в '''/opt''' или другое место. запустите сервер:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /opt/wildfire/bin/wildfire&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дальнейшую настройку может выполнить сам сервер. Наберите в адресной строке адреса вашего браузера http://localhost:9090 (или укажите имя сервера, если вы выполняете настройку удалённо). Углубившись в опции (для простоты выберите встроенную базу данных – Embedded Database), вы за несколько шагов достигнете главной панели администрирования. Здесь доступна уйма опций, но в первую очередь надо бы завести нескольких пользователей и протестировать систему. Ваш сервер – частный и закрытый, поэтому вы, вероятно, исключите регистрацию извне и будете создавать нужных пользователей самостоятельно.&lt;br /&gt;
&lt;br /&gt;
Чтобы сервис ''Wildfire'' запускался при старте системы, в каталоге '''/bin/extra''' предсмотрен скрипт ''wildfired''. Для его запуска на вашей системе, отредактируйте строку, начинающуюся с '''export WILDFILRE_HOME=''', чтобы она указывала на каталог установки, затем скопируйте его в '''/etc/init.d''' и сделайте ссылку из каталога соответствующего уровня исполнения (runlevel). точный способ сделать это зависит от вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
Вот и всё. Пользователи смогут самостоятельно подключаться к вашему серверу и беседовать, пока фирма не обанкротится. Кстати говоря, в корпоративной сети вы можете подсоединить ''Wildfire'' к LDAP – учётные записи для всего персонала будут получены автоматически! (См. Http://www.jivesoftware.org/builds/wildfire/docs/latest/documentation/ldap-guide.html).&lt;br /&gt;
&lt;br /&gt;
===Выбирайте клиент===&lt;br /&gt;
Существует множество клиентов, способных работать с Jabber-серверами – поскольку это открытый стандарт, их достаточно легко подключить. Вот несколько популярных совместимых клиентов для основных операционных систем:&lt;br /&gt;
* Linux: Gaim, Kopete, Gush, Gabber;&lt;br /&gt;
* Mac OS X: iCat, Gush, Gabber;&lt;br /&gt;
* Windows: Miranda IM, Trillian Pro, IRJabber,Gush;&lt;br /&gt;
&lt;br /&gt;
Не забывайте, что вам нужно создавать учётные записи на сервере или разрешить клиентам регистрироваться самостоятельно. Приятного общения!&lt;br /&gt;
&lt;br /&gt;
===Настройки SYSCTL===&lt;br /&gt;
&lt;br /&gt;
Ядра многих дистрибутивов настроены на   баланс между серверным и «настольным» применением. Но если вы запускаете силь но загруженный сервер, то можно подстроить    некоторые опции ядра для получения прироста скорости при помощи утилиты sysctl,   которая изменяет параметры ядра «на лету». (Вы можете также сохранить настройки в /etc/sysctl.conf). Введите sysctl -a, чтобы увидеть все параметры. Ряд опций могут увеличить производительность сервера, их следует вводить от имени root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w kernel.threads-max=65526&lt;br /&gt;
 sysctl -w fs.file-max=8192&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эти команды устанавливают число активных потоков, которое ядро может обслуживать, и число файлов, которые можно открыть одновременно. Увеличьте эти значения, если в логфайлах появятся сообщения о нехватке данных ресурсов.&lt;br /&gt;
&lt;br /&gt;
Следующая опция увеличивает объем памяти, выделяемой для сетевых буферов отправки – если нужно обслуживать большие файлы, то это значительно ускорит машинуработу (web,&lt;br /&gt;
FTP, Samba и т.д.):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w net.core.wmem_&lt;br /&gt;
 max=1048576&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее, установите число соединений, которые сохраняются в ожидании подтверждения клиентом. Обычно это число – 1024; увеличьте его, если ваш сервер часто оказывается перегружен соединениями:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w net.ipv4.tcp_max_syn_backlog=4096&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последняя опция определяет, как страницы памяти ядра сохраняются на диске (в виртуальной памяти), когда объем ОЗУ недостаточен. Обычно этот параметр устанавливается в значение 3. Более высокое значение увеличит время отклика настольных приложений (нехорошо!), но может быть полезно на сервере, где общая пропускная способность важнее, чем мгновенный отклик:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w vm/page-cluster=8&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Запустите собственную IRC-сеть==&lt;br /&gt;
&lt;br /&gt;
Откройте чат-салон на IrC-сервере – можно обсуждать открытое ПО, проекты Linux, судейство в турине&lt;br /&gt;
&lt;br /&gt;
Internet Relay Chat (IRC) – предшественник всемирной паутины. В далёком 1988-м году программист Яаркко Ойкаринен (Jarkko Oikarinen) создал альтернативу общению через доски объявлений, разработав IRC – простой и быстрый протокол, основанный на обычном тексте, который позволил пользователям во всём мире подключаться к сети серверов и беседовать в режиме реального времени. Благодаря простоте протокола IRC, даже программисты-любители могли разработать собственные клиенты – так что довольно быстро система уже насчитывала тысячи пользователей.&lt;br /&gt;
&lt;br /&gt;
Сегодня рынок захвачен преимущественно чат-салонами, основанными на web (типа Yahoo Chat), но IRC всё ещё очень популярен среди опытных пользователей. Основные IRC-сети, EFnet и Freenode, размещают тысячи «каналов» (аналог чатсалона) по темам от разработок на Perl до воскрешения мёртвых. IRC выработал свои собственные обычаи и нормы этикета, и пользователи, которые хамят и высказывают неуважение к правилам, рискуют нарваться на довольно жёсткие санкции. Это диковатый и эксцентричный мир – но только не в вопросах функционирования, и один из лучших способов поддерживать связь с людьми.&lt;br /&gt;
&lt;br /&gt;
===Зачем запускать IRCD?===&lt;br /&gt;
Демон IRC, известный также как IRC-сервер, позволяет пользователям подключаться к вашей машине через своих клиентов и взаимодействовать с вами как с хостом. Вы можете запустить автономный IRC-сервер для внутреннего пользования или присоединиться к большой сети, что-бы распределить загрузку – если у вас, к примеру, есть право на присоединение вашего сервера к Freenode, то вы сможете обслуживать пользователей, которые будут общаться с пользователями других Freenode-серверов. так… а свой-то зачем настраивать? По нескольким причинам: вы можете работать над программным проектом и пожелать работать с собственными каналами, чтоб самому устанавливать правила (вместо создания канала в чужой сети). Или, возможно, вы хотите общаться с друзьями «частным» образом, подальше от различных «асек» и основанных на web чат-салонов. а может быть, вы просто хотите поддержать существующую IRC-сеть, добавив к ней ещё одну лошадиную (в смысле, серверную) силу.&lt;br /&gt;
&lt;br /&gt;
Многие нынешние IRC-серверы являются переработкой исходного кода IRCD, с набором функций, добавленных поверх него. Некоторые были созданы с нуля. Ниже мы приводим три шага, показывающие, как собрать, настроить и запустить ''IRCD-Hybrid'', один из наиболее гибких серверов IRC, широко использующийся в сети Efnet.&lt;br /&gt;
&lt;br /&gt;
Когда ваш сервер будет запущен, вашим пользователям понадобятся IRC-клиенты, чтобы подключиться к нему. Пользователям KDE следует попробовать прекрасный ''Konversation'', в то время как фанаты Gnome/GTK могут выбрать не менее удачный ''X-Chat''. Для работы в командной строке хорошим выбором будут ''Irssi'' и ''BitchX'', и есть даже web-оболочка в виде CGI:IRC. Полный список можно найти на http://www.freshmeat.net/.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1 Завести IRCD-HYBRID===&lt;br /&gt;
Вы можете найти его на нашем диске в разделе '''Server''' или на сайте http://www.ircd-hybrid.com. распакуйте '''ircd-hybrid-7.2.0.tgz''', перейдите в созданный каталог и введите '''./configure'''. Здесь нет скрытых зависимостей, и опции, выставленные по умолчанию, превосходны. Но если вы пожелаете изменить максимальную длину имени пользователя или наименования канала, это можно сделать, используя ключи '''--with-nicklen''' и '''--with-topiclen''' соответственно в команде '''./configure'''. Введите make и make install (как root) для установки в '''/usr/local/ircd''' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
===Шаг 2 Настроить===&lt;br /&gt;
Перейдите в '''/usr/local/ircd/etc/''' и скопируйте файл '''example.conf''' под именем '''ircd.conf'''. теперь откройте ircd.conf в вашем любимом редакторе, и познакомьтесь поближе с его форматом. Задайте имя вашего сервера и его SID (уникальный идентификатор, например, «8XZ») в секции «serverinfo» в самом верху. Вам нужно также найти и удалить строку '''havent_read_conf''', которая предотвращает запуск сервера с настройками по умолчанию – это будет на строке 1073. Для начала вполне достаточно; позже вы сможете почитать описания других опций.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3 Пуск!===&lt;br /&gt;
Введите команду '''/usr/local/ircd/bin/ircd -logfile ~/ircd.log''', она запустит сервер (и будет записывать информацию о любых проблемах в файл '''ircd.log''' вашего домашнего каталога). теперь вы можете подключиться к вашей машине локально (по адресу 127.0.0.1) с помощью IRC-клиента, создать каналы и установить права доступа. затем сообщайте друзьям ваш IP-адрес или доменное имя, и они смогут подключаться через Интернет (убедитесь, что порт 6667 не заблокирован брандмауэром). Если вы хотите присоединиться к другой IRC-сети, свяжитесь с её администраторами – как правило, вы можете найти их адреса электронной почты на сайте сети или проекта. Наконец, более полную информацию по использованию IRC можно получить на http://www.irchelp.org.&lt;br /&gt;
&lt;br /&gt;
==Нужна поддержка?==&lt;br /&gt;
Наша прогулка по IrC была последней в представленном материале. Мы надеемся, что вы попробуете хотя бы одну из предложенных идей. Прыжок на первую ступеньку администрирования сервера совершить непросто, так что если вы сражаетесь с пошаговыми инструкциями или нуждаетесь в совете, что дальше, мы рекомендуем вам посетить http://www.linuxforum.ru. Даже если вы просто хотите пожаловаться, что ваш любимый сервер обделили вниманием, мы все равно ждем вашего отклика!&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-12-17T07:47:19Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Запустите собственную IRC-сеть */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;br /&gt;
&lt;br /&gt;
==Строим файловое хранилище на Samba==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы получить доступ к своим файлам с любого ПК в сети.&lt;br /&gt;
&lt;br /&gt;
Чтобы предоставить ваш принтер в общее пользование.&lt;br /&gt;
&lt;br /&gt;
Чтобы упростить создание резервных копий.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* http://www.samba.org/samba/docs/man/Samba-hOWTO-Collection&lt;br /&gt;
* http://hr.uoregon.edu/decidrl/samba.html&lt;br /&gt;
* http://samba.anu.edu.au/cifs/docs/what-is-smb.html&lt;br /&gt;
* ftp://ftp.samba.org/pub/samba/docs/Samba24hc13.pdf&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Совместное проживание OS X, Windows и Linux – дурдом? только не при Samba.&lt;br /&gt;
&lt;br /&gt;
Наиболее частая операция, выполняемая в небольших или домашних сетях – обобществление ресурсов. Общим может быть подключение к Интернету или что-нибудь попроще – например, принтер или вообще файл. Прежде чем рассылать 5 мБ-документы по всему дому через Gmail, подумайте о безопасной и простой альтернативе – вашем собственном файловом сервере.&lt;br /&gt;
&lt;br /&gt;
Есть несколько способов создать его в Linux, но, вероятно, простейший и самый надежный способ – это использование ''Samba''. Ко всему прочему, Samba поддерживает протокол SMB, который используется в сетях Windows для предоставления файлов в общий доступ – так что вы сможете работать с общими файлами не только на Linux-машинах, но и на Windows, и на Mac!&lt;br /&gt;
&lt;br /&gt;
===Здравствуй, Samba!===&lt;br /&gt;
&lt;br /&gt;
Наилучший способ установить Samba на ваш Linux-компьютер – это воспользоваться пакетами, включенными в ваш дистрибутив: Samba имеется в любом дистрибутиве, претендующем на популярность. Итак, пусть ваш менеджер пакетов отыщет и установит соответствующие программы. многие дистрибутивы разделяют клиентское и серверное ПО – убедитесь, что установлено и то, и другое. На «чистом» сервере клиент, конечно, не обязателен, но он пригодится для тестирования.&lt;br /&gt;
&lt;br /&gt;
После установки настает время создать конфигурационный файл. Пакет Samba обычно снабжен файлом настроек по умолчанию, и достаточно лишь слегка подправить его. Впрочем, вы можете начать и с нуля. Краткий пример показывает, как мало этому файлу надо (кстати, его имя – /etc/samba/smb.conf):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = LINUX&lt;br /&gt;
 netbios name = MYSHARE&lt;br /&gt;
 &lt;br /&gt;
 [share1]&lt;br /&gt;
 path = /tmp&lt;br /&gt;
 [share2]&lt;br /&gt;
 path = /share&lt;br /&gt;
 comment = Some random files&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция '''global''' обязательна и определяет имя рабочей группы (используется в Windows для объединения общих файлов — группировки ресурсов) и имя NetBIOS, под этим именем ваш сервер будет фигурировать на других компьютерах. По умолчанию берется имя вашего хоста (hostname).&lt;br /&gt;
&lt;br /&gt;
Секции '''share''' в приведённом примере – это имена общих папок [частенько называемых «шарами», – прим. ред.], которые обслуживаются данной машиной. Опции не ограничиваются простой ссылкой на каталог. Вы можете допустить к общим папкам только лиц из определенного круга или даже сделать список файлов невидимым для неавторизованных пользователей. За дополнительной информацией обращайтесь к демонстрационному конфигурационному файлу или врезке «Полезные ссылки».&lt;br /&gt;
&lt;br /&gt;
Наконец, для запуска сервера выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вероятно, вам захочется, чтобы этот сервис сам активизировался при каждой перезагрузке, так что либо вручную свяжите его с runlevel, либо включите в конфигурацию загрузки компьютера. Используйте для этого инструменты вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
В Linux, вы теперь можете монтировать общие каталоги и сетевые ресурсы, используя команду smbmount, или обычную mount с ключом '''-t cifs''' (smbfs уже устарела, пользуйтесь cifs):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount //HOSTNAME/sharename /mnt/share -t cifs -o user&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Windows и Mac вы можете использовать обычные сетевые инструменты. &lt;br /&gt;
&lt;br /&gt;
===Кое-что о принтере===&lt;br /&gt;
Помните, мы вскользь отметили, что в общее пользование часто предоставляется принтер? Конфигурационный файл Samba и с этим способен справиться, причем несколькими способами, в зависимости от того, работает ли у вас CUPS (Common Unix Printing System) и сколько у вас принтеров. мы будем иметь дело с простым сценарием, без CUPS (хотя CUPS, между прочим, тоже присутствует во многих дистрибутивах Linux, и это лучший способ управлять принтерами в Linux). CUPS тоже мог бы настроить сетевую печать, но раз уж запущен Samba, то проще поддерживать один набор файлов.&lt;br /&gt;
&lt;br /&gt;
Обычно файл '''smb.conf''', устанавливаемый по умолчанию, содержит следующие строки (проверьте, что они раскомментированы, т.е. символы «#» есть только там, где показано):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = All Printers&lt;br /&gt;
 path = /var/spool/samba&lt;br /&gt;
 browseable = no&lt;br /&gt;
 # чтобы разрешить «гостевой» доступ к печати&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
 printable = yes&lt;br /&gt;
 create mode = 0700&lt;br /&gt;
 #=============================&lt;br /&gt;
 # команда печати, подробности см. выше&lt;br /&gt;
 #=============================&lt;br /&gt;
 print command = lpr-cups -P %p -o raw %s -r&lt;br /&gt;
 # используются драйверы печати на  стороне пользователя&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот код, в общем-то, разрешает пользоваться принтерами всем. Но бывают обстоятельства, когда лучше позаботиться, чтобы на принтер покушались только штатные пользователи – в этом случае просто замените строку «''guest ok = yes''» на «''guest ok = no''».&lt;br /&gt;
&lt;br /&gt;
Данные настройки всего лишь позволяют передавать данные – на клиентских машинах, естественно, должен иметься правильный драйвер принтера.&lt;br /&gt;
&lt;br /&gt;
==Запрягаем базу данных==&lt;br /&gt;
Ваш собственный сервер баз данных MySQL в подкрепление к OpenOffice.org Base.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы сэкономить деньги на хостинге баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить прочную основу для графических систем баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы наконец изучить SQL.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Баз данных в мире заметно больше, чем web-серверов. Они гораздо дольше окружают нас, содержат на порядок больше данных и поставляют больше критичных сервисов, чем все прочие. а почему бы вам не завести собственную базу данных? В отличие от серверов Samba и Apache, серверы баз данных не гонятся за славой – запустите такой, и он будет сидеть себе потихоньку в фоновом режиме, дожидаясь запроса.&lt;br /&gt;
&lt;br /&gt;
Web-хостыеры обычно предоставляют базы данных весьма скромных размеров (заполучить 100 мБ считается удачей) – вот вам и повод сделать сервер самому. Потратив некоторое время на освоение SQL, вы сможете настроить ваш сервер и запросто предоставлять его также и вашим друзьям. &lt;br /&gt;
&lt;br /&gt;
===Ваше руководство по установке===&lt;br /&gt;
Мы продемонстрируем вам, как настроить сервер MySQL. MySQL 5.0 имеется на нашем диске, так что скопируйте его, распакуйте и перейдите в созданный каталог, где выполните ./configure --prefix=/usr/local/mysql, затем make, переключитесь в режим root, и наконец, запустите make install. теперь перейдите в каталог /usr/local/mysql, выполните там команду bin/mysql_install_db, затем chown -R mysql var. Итак, MySQL установлена. Выполните команду bin/mysqld_safe &amp;amp;, чтобы запустить ваш MySQL-сервер.&lt;br /&gt;
&lt;br /&gt;
По умолчанию MySQL не устанавливает пароль для своего суперпользователя, так что вам нужно ввести несколько команд от имени непривилегированного пользователя:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим на сервер&lt;br /&gt;
 /usr/loca/mysql/bin/mysql -u root mysql&lt;br /&gt;
 # зададим пароль для root — желательно, чтоб угадать его было нелегко!&lt;br /&gt;
 UPDATE user SET Pasword =&lt;br /&gt;
 PASSWORD(‘frosties’) WHERE User = ‘root’;&lt;br /&gt;
 # Создайте базу данных, которая нам понадобится в дальнейшем&lt;br /&gt;
 CREATE DATABASE lxfdb;&lt;br /&gt;
 # Добавьте учетную запись непривилегированного пользователя&lt;br /&gt;
 INSERT INTO user (Host, User, Password)&lt;br /&gt;
 VALUES (‘localhost’, ‘lxf’,&lt;br /&gt;
 PASSWORD(‘orangutan’));&lt;br /&gt;
 # Предоставьте новому пользователю доступ к созданной базе данных&lt;br /&gt;
 GRANT ALL PRIVILEGES ON lxfdb.* TO lxf;&lt;br /&gt;
 # Обновите привилегии MySQL &lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 # Выйдите из MySQL; негоже лазить везде с правами root&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы вернулись к нашей командной строке, теперь осталось убедиться, что новая учётная запись работает. Введите:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим под именем нашего пользователя&lt;br /&gt;
 /usr/local/bysql/bin/mysql -u lxf -p lxfdb&lt;br /&gt;
 # Посмотрим список имеющихся таблиц (пока у нас ничего нет)&lt;br /&gt;
 SHOW TABLES;&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, значит, учётная запись создалась нормально.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать учётные записи ещё для кого-нибудь, просто повторите команду INSERT INTO, замените имя пользователя и пароль новыми значениями, плюс установите значение Host в «%» (предоставление доступа к локальному хосту извне с удаленных хостов). Вы можете создать сколько угодно баз данных и предоставлять пользователям различные уровни доступа. MySQL работает на порту 3306, так что вам нужно будет открыть доступ к нему на вашем брандмауэре, чтобы другие могли подключаться беспрепятственно.&lt;br /&gt;
&lt;br /&gt;
===Жизнь-служение===&lt;br /&gt;
По общему признанию, серверы баз данных не богаты приложениями, преимуществами которых можно воспользоваться прямо с ходу, но некоторые всё же существуют. Например, можно настроить OpenOffice.org Base на взаимодействие с вашим новым сервером для всех её баз данных – вы получите ту же самую дружественную оболочку, но надёжно подкрепленную прекрасно масштабируемым MySQL.&lt;br /&gt;
&lt;br /&gt;
Если душа просит чего-то более «продвинутого», то как насчет возможности доступа к вашим данным из любой точки? Лучше всего вооружиться программой типа PhpMyAdmin: это основанный на PHP инструмент администрирования MySQL-сервера, позволяющий вам создавать данные и управлять ими через Интернет. Будьте осторожны с правами доступа; лучше всего установить отдельную копию phpMyAdmin для каждого пользователя, чтобы быть уверенным в надлежащем разграничении прав.&lt;br /&gt;
&lt;br /&gt;
Многие скрипты используют MySQL для хранения своих данных (wiki и дневники, пожалуй, наиболее яркие представители), но, бесспорно, лучшее применение MySQL – это разработка собственных PHP-скриптов на базе MySQL.&lt;br /&gt;
&lt;br /&gt;
===Межсетевые экраны===&lt;br /&gt;
Запуская собственный сервер, вы вынуждены «продырявить» свой брандмауэр (firewall), чтобы ваш интернет-сервис мог работать, потому что брандмауэр зачастую блокирует все   входящие соединения – беспрепятственно проходят только исходящие.&lt;br /&gt;
&lt;br /&gt;
Чтобы открыть порт на вашем брандмауэре для какого-либо сервера, например, Apache   (HTTP), вам нужно сначала узнать, какой порт и протокол этот сервер использует. Эту информацию обычно можно найти в документации сервера; пригодится также наша небольшая таблица. &lt;br /&gt;
&lt;br /&gt;
И SUSE, и Mandriva используют собственные инструменты настройки брандмауэра, доступные из панели управления. В SUSE, например, откройте Yast, выберите «Security and Users» и щелкните на кнопку «Firewall». Появится новое окно, и для открытия порта просто щелкните на вкладку «Allowed Services» слева. SUSE поставляется с несколькими предварительно настроенными сервисами, которые можно просто выбрать из выпадающего меню «Services to Allow», либо добавить ваш собственный, щёлкнув по кнопке «Advanced». Если вы предпочитаете действовать самостоятельно, то Guarddog (http://www.simonzone.com/software/guarddog) – прекрасная графическая оболочка для настройки вашего брандмауэра.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; &lt;br /&gt;
 !bgcolor=#CCCCFF| Сервис ||bgcolor=#CCCCFF| Протокол||bgcolor=#CCCCFF|Порт&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |SSH||TCP||22&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |HTTP||TCP||80&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |Squid||UDP, TCP||3128, 3130&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Общайтесь при помощи Jabber==&lt;br /&gt;
&lt;br /&gt;
Соберите друзей поболтать через ваш личный сервер обмена мгновенными сообщениями.&lt;br /&gt;
&lt;br /&gt;
Если не считать голосовое общение, то мгновенные сообщения (IM) лучше всего подходят для проведения групповых дискуссий. Они заслуженно популярны, и существует ряд конкурирующих протоколов, серверов и клиентов для IM. Поскольку мы используем Linux, мы можем выбрать лучшее – по нашему мнению, это Jabber.&lt;br /&gt;
&lt;br /&gt;
''Jabber'' – не название какой-то программы как таковой. Это обозначение протокола, поддерживающего взаимодействие клиентов и серверов для создания чата. Вообще-то протокол называется не Jabber, более точное его наименование – XMPP, он поддерживает открытый стандарт для сообщений. Однако довольно путаницы, перейдем к делу.     Протоколами Jabber пользуются несколько серверов. Некоторые из них коммерческие, хватает и открытых; одни написаны на Java, другие – на С, и т.д. Со списком различных вариантов можно ознакомиться на сайте JFSF [http://www.jabber.org/software/servers.shtml]. Мы выбрали Wildfire, сервер от Jive Software, по трём причинам – этот сервер:&lt;br /&gt;
* свободное ПО, распространяемое подлицензией GPL;&lt;br /&gt;
* основан на Java и является кросс-платформным (Mac/Windows/Unix);&lt;br /&gt;
* способен работать как автономно, так и в составе сервера приложений.&lt;br /&gt;
&lt;br /&gt;
Есть и четвёртая причина: его очень просто настраивать и использовать! Чтобы раздобыть последнюю версию исходных кодов и RPM-пакеты, зайдите на http://www.jivesoftware.org/wildfire/ или возьмите версию с нашего диска, которую будем использовать мы. Установка RPM-пакета совершенно стандартная, так что у вас все получится (сервер будет поставлен в '''/opt/wildfire'''). Tar-архив содержит статически собранную версию, которую вы можете распаковать и скопировать в '''/opt''' или другое место. запустите сервер:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /opt/wildfire/bin/wildfire&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дальнейшую настройку может выполнить сам сервер. Наберите в адресной строке адреса вашего браузера http://localhost:9090 (или укажите имя сервера, если вы выполняете настройку удалённо). Углубившись в опции (для простоты выберите встроенную базу данных – Embedded Database), вы за несколько шагов достигнете главной панели администрирования. Здесь доступна уйма опций, но в первую очередь надо бы завести нескольких пользователей и протестировать систему. Ваш сервер – частный и закрытый, поэтому вы, вероятно, исключите регистрацию извне и будете создавать нужных пользователей самостоятельно.&lt;br /&gt;
&lt;br /&gt;
Чтобы сервис ''Wildfire'' запускался при старте системы, в каталоге '''/bin/extra''' предсмотрен скрипт ''wildfired''. Для его запуска на вашей системе, отредактируйте строку, начинающуюся с '''export WILDFILRE_HOME=''', чтобы она указывала на каталог установки, затем скопируйте его в '''/etc/init.d''' и сделайте ссылку из каталога соответствующего уровня исполнения (runlevel). точный способ сделать это зависит от вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
Вот и всё. Пользователи смогут самостоятельно подключаться к вашему серверу и беседовать, пока фирма не обанкротится. Кстати говоря, в корпоративной сети вы можете подсоединить ''Wildfire'' к LDAP – учётные записи для всего персонала будут получены автоматически! (См. Http://www.jivesoftware.org/builds/wildfire/docs/latest/documentation/ldap-guide.html).&lt;br /&gt;
&lt;br /&gt;
===Выбирайте клиент===&lt;br /&gt;
Существует множество клиентов, способных работать с Jabber-серверами – поскольку это открытый стандарт, их достаточно легко подключить. Вот несколько популярных совместимых клиентов для основных операционных систем:&lt;br /&gt;
* Linux: Gaim, Kopete, Gush, Gabber;&lt;br /&gt;
* Mac OS X: iCat, Gush, Gabber;&lt;br /&gt;
* Windows: Miranda IM, Trillian Pro, IRJabber,Gush;&lt;br /&gt;
&lt;br /&gt;
Не забывайте, что вам нужно создавать учётные записи на сервере или разрешить клиентам регистрироваться самостоятельно. Приятного общения!&lt;br /&gt;
&lt;br /&gt;
===Настройки SYSCTL===&lt;br /&gt;
&lt;br /&gt;
Ядра многих дистрибутивов настроены на   баланс между серверным и «настольным» применением. Но если вы запускаете силь но загруженный сервер, то можно подстроить    некоторые опции ядра для получения прироста скорости при помощи утилиты sysctl,   которая изменяет параметры ядра «на лету». (Вы можете также сохранить настройки в /etc/sysctl.conf). Введите sysctl -a, чтобы увидеть все параметры. Ряд опций могут увеличить производительность сервера, их следует вводить от имени root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w kernel.threads-max=65526&lt;br /&gt;
 sysctl -w fs.file-max=8192&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эти команды устанавливают число активных потоков, которое ядро может обслуживать, и число файлов, которые можно открыть одновременно. Увеличьте эти значения, если в логфайлах появятся сообщения о нехватке данных ресурсов.&lt;br /&gt;
&lt;br /&gt;
Следующая опция увеличивает объем памяти, выделяемой для сетевых буферов отправки – если нужно обслуживать большие файлы, то это значительно ускорит машинуработу (web,&lt;br /&gt;
FTP, Samba и т.д.):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w net.core.wmem_&lt;br /&gt;
 max=1048576&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее, установите число соединений, которые сохраняются в ожидании подтверждения клиентом. Обычно это число – 1024; увеличьте его, если ваш сервер часто оказывается перегружен соединениями:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w net.ipv4.tcp_max_syn_backlog=4096&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последняя опция определяет, как страницы памяти ядра сохраняются на диске (в виртуальной памяти), когда объем ОЗУ недостаточен. Обычно этот параметр устанавливается в значение 3. Более высокое значение увеличит время отклика настольных приложений (нехорошо!), но может быть полезно на сервере, где общая пропускная способность важнее, чем мгновенный отклик:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w vm/page-cluster=8&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Запустите собственную IRC-сеть==&lt;br /&gt;
&lt;br /&gt;
Откройте чат-салон на IrC-сервере – можно обсуждать открытое ПО, проекты Linux, судейство в турине&lt;br /&gt;
&lt;br /&gt;
Internet Relay Chat (IRC) – предшественник всемирной паутины. В далёком 1988-м году программист Яаркко Ойкаринен (Jarkko Oikarinen) создал альтернативу общению через доски объявлений, разработав IRC – простой и быстрый протокол, основанный на обычном тексте, который позволил пользователям во всём мире подключаться к сети серверов и беседовать в режиме реального времени. Благодаря простоте протокола IRC, даже программисты-любители могли разработать собственные клиенты – так что довольно быстро система уже насчитывала тысячи пользователей.&lt;br /&gt;
&lt;br /&gt;
Сегодня рынок захвачен преимущественно чат-салонами, основанными на web (типа Yahoo Chat), но IRC всё ещё очень популярен среди опытных пользователей. Основные IRC-сети, EFnet и Freenode, размещают тысячи «каналов» (аналог чатсалона) по темам от разработок на Perl до воскрешения мёртвых. IRC выработал свои собственные обычаи и нормы этикета, и пользователи, которые хамят и высказывают неуважение к правилам, рискуют нарваться на довольно жёсткие санкции. Это диковатый и эксцентричный мир – но только не в вопросах функционирования, и один из лучших способов поддерживать связь с людьми.&lt;br /&gt;
&lt;br /&gt;
===Зачем запускать IRCD?===&lt;br /&gt;
Демон IRC, известный также как IRC-сервер, позволяет пользователям подключаться к вашей машине через своих клиентов и взаимодействовать с вами как с хостом. Вы можете запустить автономный IRC-сервер для внутреннего пользования или присоединиться к большой сети, что-бы распределить загрузку – если у вас, к примеру, есть право на присоединение вашего сервера к Freenode, то вы сможете обслуживать пользователей, которые будут общаться с пользователями других Freenode-серверов. так… а свой-то зачем настраивать? По нескольким причинам: вы можете работать над программным проектом и пожелать работать с собственными каналами, чтоб самому устанавливать правила (вместо создания канала в чужой сети). Или, возможно, вы хотите общаться с друзьями «частным» образом, подальше от различных «асек» и основанных на web чат-салонов. а может быть, вы просто хотите поддержать существующую IRC-сеть, добавив к ней ещё одну лошадиную (в смысле, серверную) силу.&lt;br /&gt;
&lt;br /&gt;
Многие нынешние IRC-серверы являются переработкой исходного кода IRCD, с набором функций, добавленных поверх него. Некоторые были созданы с нуля. Ниже мы приводим три шага, показывающие, как собрать, настроить и запустить ''IRCD-Hybrid'', один из наиболее гибких серверов IRC, широко использующийся в сети Efnet.&lt;br /&gt;
&lt;br /&gt;
Когда ваш сервер будет запущен, вашим пользователям понадобятся IRC-клиенты, чтобы подключиться к нему. Пользователям KDE следует попробовать прекрасный ''Konversation'', в то время как фанаты Gnome/GTK могут выбрать не менее удачный ''X-Chat''. Для работы в командной строке хорошим выбором будут ''Irssi'' и ''BitchX'', и есть даже web-оболочка в виде CGI:IRC. Полный список можно найти на http://www.freshmeat.net/.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1 Завести IRCD-HYBRID===&lt;br /&gt;
Вы можете найти его на нашем диске в разделе '''Server''' или на сайте http://www.ircd-hybrid.com. распакуйте '''ircd-hybrid-7.2.0.tgz''', перейдите в созданный каталог и введите '''./configure'''. Здесь нет скрытых зависимостей, и опции, выставленные по умолчанию, превосходны. Но если вы пожелаете изменить максимальную длину имени пользователя или наименования канала, это можно сделать, используя ключи '''--with-nicklen''' и '''--with-topiclen''' соответственно в команде '''./configure'''. Введите make и make install (как root) для установки в '''/usr/local/ircd''' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
===Шаг 2 Настроить===&lt;br /&gt;
Перейдите в '''/usr/local/ircd/etc/''' и скопируйте файл '''example.conf''' под именем '''ircd.conf'''. теперь откройте ircd.conf в вашем любимом редакторе, и познакомьтесь поближе с его форматом. Задайте имя вашего сервера и его SID (уникальный идентификатор, например, «8XZ») в секции «serverinfo» в самом верху. Вам нужно также найти и удалить строку '''havent_read_conf''', которая предотвращает запуск сервера с настройками по умолчанию – это будет на строке 1073. Для начала вполне достаточно; позже вы сможете почитать описания других опций.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3 Пуск!===&lt;br /&gt;
Введите команду '''/usr/local/ircd/bin/ircd -logfile ~/ircd.log''', она запустит сервер (и будет записывать информацию о любых проблемах в файл '''ircd.log''' вашего домашнего каталога). теперь вы можете подключиться к вашей машине локально (по адресу 127.0.0.1) с помощью IRC-клиента, создать каналы и установить права доступа. затем сообщайте друзьям ваш IP-адрес или доменное имя, и они смогут подключаться через Интернет (убедитесь, что порт 6667 не заблокирован брандмауэром). Если вы хотите присоединиться к другой IRC-сети, свяжитесь с её администраторами – как правило, вы можете найти их адреса электронной почты на сайте сети или проекта. Наконец, более полную информацию по использованию IRC можно получить на http://www.irchelp.org.&lt;br /&gt;
&lt;br /&gt;
==Нужна поддержка?==&lt;br /&gt;
Наша прогулка по IrC была последней в представленном материале. Мы надеемся, что вы попробуете хотя бы одну из предложенных идей. Прыжок на первую ступеньку администрирования сервера совершить непросто, так что если вы сражаетесь с пошаговыми инструкциями или нуждаетесь в совете, что дальше, мы рекомендуем вам посетить http://www.linuxforum.ru. Даже если вы просто хотите пожаловаться, что ваш любимый сервер обделили вниманием, мы все равно ждем вашего отклика!&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-12-17T03:41:38Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Общайтесь при помощи Jabber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;br /&gt;
&lt;br /&gt;
==Строим файловое хранилище на Samba==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы получить доступ к своим файлам с любого ПК в сети.&lt;br /&gt;
&lt;br /&gt;
Чтобы предоставить ваш принтер в общее пользование.&lt;br /&gt;
&lt;br /&gt;
Чтобы упростить создание резервных копий.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* http://www.samba.org/samba/docs/man/Samba-hOWTO-Collection&lt;br /&gt;
* http://hr.uoregon.edu/decidrl/samba.html&lt;br /&gt;
* http://samba.anu.edu.au/cifs/docs/what-is-smb.html&lt;br /&gt;
* ftp://ftp.samba.org/pub/samba/docs/Samba24hc13.pdf&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Совместное проживание OS X, Windows и Linux – дурдом? только не при Samba.&lt;br /&gt;
&lt;br /&gt;
Наиболее частая операция, выполняемая в небольших или домашних сетях – обобществление ресурсов. Общим может быть подключение к Интернету или что-нибудь попроще – например, принтер или вообще файл. Прежде чем рассылать 5 мБ-документы по всему дому через Gmail, подумайте о безопасной и простой альтернативе – вашем собственном файловом сервере.&lt;br /&gt;
&lt;br /&gt;
Есть несколько способов создать его в Linux, но, вероятно, простейший и самый надежный способ – это использование ''Samba''. Ко всему прочему, Samba поддерживает протокол SMB, который используется в сетях Windows для предоставления файлов в общий доступ – так что вы сможете работать с общими файлами не только на Linux-машинах, но и на Windows, и на Mac!&lt;br /&gt;
&lt;br /&gt;
===Здравствуй, Samba!===&lt;br /&gt;
&lt;br /&gt;
Наилучший способ установить Samba на ваш Linux-компьютер – это воспользоваться пакетами, включенными в ваш дистрибутив: Samba имеется в любом дистрибутиве, претендующем на популярность. Итак, пусть ваш менеджер пакетов отыщет и установит соответствующие программы. многие дистрибутивы разделяют клиентское и серверное ПО – убедитесь, что установлено и то, и другое. На «чистом» сервере клиент, конечно, не обязателен, но он пригодится для тестирования.&lt;br /&gt;
&lt;br /&gt;
После установки настает время создать конфигурационный файл. Пакет Samba обычно снабжен файлом настроек по умолчанию, и достаточно лишь слегка подправить его. Впрочем, вы можете начать и с нуля. Краткий пример показывает, как мало этому файлу надо (кстати, его имя – /etc/samba/smb.conf):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = LINUX&lt;br /&gt;
 netbios name = MYSHARE&lt;br /&gt;
 &lt;br /&gt;
 [share1]&lt;br /&gt;
 path = /tmp&lt;br /&gt;
 [share2]&lt;br /&gt;
 path = /share&lt;br /&gt;
 comment = Some random files&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция '''global''' обязательна и определяет имя рабочей группы (используется в Windows для объединения общих файлов — группировки ресурсов) и имя NetBIOS, под этим именем ваш сервер будет фигурировать на других компьютерах. По умолчанию берется имя вашего хоста (hostname).&lt;br /&gt;
&lt;br /&gt;
Секции '''share''' в приведённом примере – это имена общих папок [частенько называемых «шарами», – прим. ред.], которые обслуживаются данной машиной. Опции не ограничиваются простой ссылкой на каталог. Вы можете допустить к общим папкам только лиц из определенного круга или даже сделать список файлов невидимым для неавторизованных пользователей. За дополнительной информацией обращайтесь к демонстрационному конфигурационному файлу или врезке «Полезные ссылки».&lt;br /&gt;
&lt;br /&gt;
Наконец, для запуска сервера выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вероятно, вам захочется, чтобы этот сервис сам активизировался при каждой перезагрузке, так что либо вручную свяжите его с runlevel, либо включите в конфигурацию загрузки компьютера. Используйте для этого инструменты вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
В Linux, вы теперь можете монтировать общие каталоги и сетевые ресурсы, используя команду smbmount, или обычную mount с ключом '''-t cifs''' (smbfs уже устарела, пользуйтесь cifs):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount //HOSTNAME/sharename /mnt/share -t cifs -o user&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Windows и Mac вы можете использовать обычные сетевые инструменты. &lt;br /&gt;
&lt;br /&gt;
===Кое-что о принтере===&lt;br /&gt;
Помните, мы вскользь отметили, что в общее пользование часто предоставляется принтер? Конфигурационный файл Samba и с этим способен справиться, причем несколькими способами, в зависимости от того, работает ли у вас CUPS (Common Unix Printing System) и сколько у вас принтеров. мы будем иметь дело с простым сценарием, без CUPS (хотя CUPS, между прочим, тоже присутствует во многих дистрибутивах Linux, и это лучший способ управлять принтерами в Linux). CUPS тоже мог бы настроить сетевую печать, но раз уж запущен Samba, то проще поддерживать один набор файлов.&lt;br /&gt;
&lt;br /&gt;
Обычно файл '''smb.conf''', устанавливаемый по умолчанию, содержит следующие строки (проверьте, что они раскомментированы, т.е. символы «#» есть только там, где показано):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = All Printers&lt;br /&gt;
 path = /var/spool/samba&lt;br /&gt;
 browseable = no&lt;br /&gt;
 # чтобы разрешить «гостевой» доступ к печати&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
 printable = yes&lt;br /&gt;
 create mode = 0700&lt;br /&gt;
 #=============================&lt;br /&gt;
 # команда печати, подробности см. выше&lt;br /&gt;
 #=============================&lt;br /&gt;
 print command = lpr-cups -P %p -o raw %s -r&lt;br /&gt;
 # используются драйверы печати на  стороне пользователя&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот код, в общем-то, разрешает пользоваться принтерами всем. Но бывают обстоятельства, когда лучше позаботиться, чтобы на принтер покушались только штатные пользователи – в этом случае просто замените строку «''guest ok = yes''» на «''guest ok = no''».&lt;br /&gt;
&lt;br /&gt;
Данные настройки всего лишь позволяют передавать данные – на клиентских машинах, естественно, должен иметься правильный драйвер принтера.&lt;br /&gt;
&lt;br /&gt;
==Запрягаем базу данных==&lt;br /&gt;
Ваш собственный сервер баз данных MySQL в подкрепление к OpenOffice.org Base.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы сэкономить деньги на хостинге баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить прочную основу для графических систем баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы наконец изучить SQL.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Баз данных в мире заметно больше, чем web-серверов. Они гораздо дольше окружают нас, содержат на порядок больше данных и поставляют больше критичных сервисов, чем все прочие. а почему бы вам не завести собственную базу данных? В отличие от серверов Samba и Apache, серверы баз данных не гонятся за славой – запустите такой, и он будет сидеть себе потихоньку в фоновом режиме, дожидаясь запроса.&lt;br /&gt;
&lt;br /&gt;
Web-хостыеры обычно предоставляют базы данных весьма скромных размеров (заполучить 100 мБ считается удачей) – вот вам и повод сделать сервер самому. Потратив некоторое время на освоение SQL, вы сможете настроить ваш сервер и запросто предоставлять его также и вашим друзьям. &lt;br /&gt;
&lt;br /&gt;
===Ваше руководство по установке===&lt;br /&gt;
Мы продемонстрируем вам, как настроить сервер MySQL. MySQL 5.0 имеется на нашем диске, так что скопируйте его, распакуйте и перейдите в созданный каталог, где выполните ./configure --prefix=/usr/local/mysql, затем make, переключитесь в режим root, и наконец, запустите make install. теперь перейдите в каталог /usr/local/mysql, выполните там команду bin/mysql_install_db, затем chown -R mysql var. Итак, MySQL установлена. Выполните команду bin/mysqld_safe &amp;amp;, чтобы запустить ваш MySQL-сервер.&lt;br /&gt;
&lt;br /&gt;
По умолчанию MySQL не устанавливает пароль для своего суперпользователя, так что вам нужно ввести несколько команд от имени непривилегированного пользователя:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим на сервер&lt;br /&gt;
 /usr/loca/mysql/bin/mysql -u root mysql&lt;br /&gt;
 # зададим пароль для root — желательно, чтоб угадать его было нелегко!&lt;br /&gt;
 UPDATE user SET Pasword =&lt;br /&gt;
 PASSWORD(‘frosties’) WHERE User = ‘root’;&lt;br /&gt;
 # Создайте базу данных, которая нам понадобится в дальнейшем&lt;br /&gt;
 CREATE DATABASE lxfdb;&lt;br /&gt;
 # Добавьте учетную запись непривилегированного пользователя&lt;br /&gt;
 INSERT INTO user (Host, User, Password)&lt;br /&gt;
 VALUES (‘localhost’, ‘lxf’,&lt;br /&gt;
 PASSWORD(‘orangutan’));&lt;br /&gt;
 # Предоставьте новому пользователю доступ к созданной базе данных&lt;br /&gt;
 GRANT ALL PRIVILEGES ON lxfdb.* TO lxf;&lt;br /&gt;
 # Обновите привилегии MySQL &lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 # Выйдите из MySQL; негоже лазить везде с правами root&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы вернулись к нашей командной строке, теперь осталось убедиться, что новая учётная запись работает. Введите:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим под именем нашего пользователя&lt;br /&gt;
 /usr/local/bysql/bin/mysql -u lxf -p lxfdb&lt;br /&gt;
 # Посмотрим список имеющихся таблиц (пока у нас ничего нет)&lt;br /&gt;
 SHOW TABLES;&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, значит, учётная запись создалась нормально.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать учётные записи ещё для кого-нибудь, просто повторите команду INSERT INTO, замените имя пользователя и пароль новыми значениями, плюс установите значение Host в «%» (предоставление доступа к локальному хосту извне с удаленных хостов). Вы можете создать сколько угодно баз данных и предоставлять пользователям различные уровни доступа. MySQL работает на порту 3306, так что вам нужно будет открыть доступ к нему на вашем брандмауэре, чтобы другие могли подключаться беспрепятственно.&lt;br /&gt;
&lt;br /&gt;
===Жизнь-служение===&lt;br /&gt;
По общему признанию, серверы баз данных не богаты приложениями, преимуществами которых можно воспользоваться прямо с ходу, но некоторые всё же существуют. Например, можно настроить OpenOffice.org Base на взаимодействие с вашим новым сервером для всех её баз данных – вы получите ту же самую дружественную оболочку, но надёжно подкрепленную прекрасно масштабируемым MySQL.&lt;br /&gt;
&lt;br /&gt;
Если душа просит чего-то более «продвинутого», то как насчет возможности доступа к вашим данным из любой точки? Лучше всего вооружиться программой типа PhpMyAdmin: это основанный на PHP инструмент администрирования MySQL-сервера, позволяющий вам создавать данные и управлять ими через Интернет. Будьте осторожны с правами доступа; лучше всего установить отдельную копию phpMyAdmin для каждого пользователя, чтобы быть уверенным в надлежащем разграничении прав.&lt;br /&gt;
&lt;br /&gt;
Многие скрипты используют MySQL для хранения своих данных (wiki и дневники, пожалуй, наиболее яркие представители), но, бесспорно, лучшее применение MySQL – это разработка собственных PHP-скриптов на базе MySQL.&lt;br /&gt;
&lt;br /&gt;
===Межсетевые экраны===&lt;br /&gt;
Запуская собственный сервер, вы вынуждены «продырявить» свой брандмауэр (firewall), чтобы ваш интернет-сервис мог работать, потому что брандмауэр зачастую блокирует все   входящие соединения – беспрепятственно проходят только исходящие.&lt;br /&gt;
&lt;br /&gt;
Чтобы открыть порт на вашем брандмауэре для какого-либо сервера, например, Apache   (HTTP), вам нужно сначала узнать, какой порт и протокол этот сервер использует. Эту информацию обычно можно найти в документации сервера; пригодится также наша небольшая таблица. &lt;br /&gt;
&lt;br /&gt;
И SUSE, и Mandriva используют собственные инструменты настройки брандмауэра, доступные из панели управления. В SUSE, например, откройте Yast, выберите «Security and Users» и щелкните на кнопку «Firewall». Появится новое окно, и для открытия порта просто щелкните на вкладку «Allowed Services» слева. SUSE поставляется с несколькими предварительно настроенными сервисами, которые можно просто выбрать из выпадающего меню «Services to Allow», либо добавить ваш собственный, щёлкнув по кнопке «Advanced». Если вы предпочитаете действовать самостоятельно, то Guarddog (http://www.simonzone.com/software/guarddog) – прекрасная графическая оболочка для настройки вашего брандмауэра.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; &lt;br /&gt;
 !bgcolor=#CCCCFF| Сервис ||bgcolor=#CCCCFF| Протокол||bgcolor=#CCCCFF|Порт&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |SSH||TCP||22&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |HTTP||TCP||80&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |Squid||UDP, TCP||3128, 3130&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Общайтесь при помощи Jabber==&lt;br /&gt;
&lt;br /&gt;
Соберите друзей поболтать через ваш личный сервер обмена мгновенными сообщениями.&lt;br /&gt;
&lt;br /&gt;
Если не считать голосовое общение, то мгновенные сообщения (IM) лучше всего подходят для проведения групповых дискуссий. Они заслуженно популярны, и существует ряд конкурирующих протоколов, серверов и клиентов для IM. Поскольку мы используем Linux, мы можем выбрать лучшее – по нашему мнению, это Jabber.&lt;br /&gt;
&lt;br /&gt;
''Jabber'' – не название какой-то программы как таковой. Это обозначение протокола, поддерживающего взаимодействие клиентов и серверов для создания чата. Вообще-то протокол называется не Jabber, более точное его наименование – XMPP, он поддерживает открытый стандарт для сообщений. Однако довольно путаницы, перейдем к делу.     Протоколами Jabber пользуются несколько серверов. Некоторые из них коммерческие, хватает и открытых; одни написаны на Java, другие – на С, и т.д. Со списком различных вариантов можно ознакомиться на сайте JFSF [http://www.jabber.org/software/servers.shtml]. Мы выбрали Wildfire, сервер от Jive Software, по трём причинам – этот сервер:&lt;br /&gt;
* свободное ПО, распространяемое подлицензией GPL;&lt;br /&gt;
* основан на Java и является кросс-платформным (Mac/Windows/Unix);&lt;br /&gt;
* способен работать как автономно, так и в составе сервера приложений.&lt;br /&gt;
&lt;br /&gt;
Есть и четвёртая причина: его очень просто настраивать и использовать! Чтобы раздобыть последнюю версию исходных кодов и RPM-пакеты, зайдите на http://www.jivesoftware.org/wildfire/ или возьмите версию с нашего диска, которую будем использовать мы. Установка RPM-пакета совершенно стандартная, так что у вас все получится (сервер будет поставлен в '''/opt/wildfire'''). Tar-архив содержит статически собранную версию, которую вы можете распаковать и скопировать в '''/opt''' или другое место. запустите сервер:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /opt/wildfire/bin/wildfire&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дальнейшую настройку может выполнить сам сервер. Наберите в адресной строке адреса вашего браузера http://localhost:9090 (или укажите имя сервера, если вы выполняете настройку удалённо). Углубившись в опции (для простоты выберите встроенную базу данных – Embedded Database), вы за несколько шагов достигнете главной панели администрирования. Здесь доступна уйма опций, но в первую очередь надо бы завести нескольких пользователей и протестировать систему. Ваш сервер – частный и закрытый, поэтому вы, вероятно, исключите регистрацию извне и будете создавать нужных пользователей самостоятельно.&lt;br /&gt;
&lt;br /&gt;
Чтобы сервис ''Wildfire'' запускался при старте системы, в каталоге '''/bin/extra''' предсмотрен скрипт ''wildfired''. Для его запуска на вашей системе, отредактируйте строку, начинающуюся с '''export WILDFILRE_HOME=''', чтобы она указывала на каталог установки, затем скопируйте его в '''/etc/init.d''' и сделайте ссылку из каталога соответствующего уровня исполнения (runlevel). точный способ сделать это зависит от вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
Вот и всё. Пользователи смогут самостоятельно подключаться к вашему серверу и беседовать, пока фирма не обанкротится. Кстати говоря, в корпоративной сети вы можете подсоединить ''Wildfire'' к LDAP – учётные записи для всего персонала будут получены автоматически! (См. Http://www.jivesoftware.org/builds/wildfire/docs/latest/documentation/ldap-guide.html).&lt;br /&gt;
&lt;br /&gt;
===Выбирайте клиент===&lt;br /&gt;
Существует множество клиентов, способных работать с Jabber-серверами – поскольку это открытый стандарт, их достаточно легко подключить. Вот несколько популярных совместимых клиентов для основных операционных систем:&lt;br /&gt;
* Linux: Gaim, Kopete, Gush, Gabber;&lt;br /&gt;
* Mac OS X: iCat, Gush, Gabber;&lt;br /&gt;
* Windows: Miranda IM, Trillian Pro, IRJabber,Gush;&lt;br /&gt;
&lt;br /&gt;
Не забывайте, что вам нужно создавать учётные записи на сервере или разрешить клиентам регистрироваться самостоятельно. Приятного общения!&lt;br /&gt;
&lt;br /&gt;
===Настройки SYSCTL===&lt;br /&gt;
&lt;br /&gt;
Ядра многих дистрибутивов настроены на   баланс между серверным и «настольным» применением. Но если вы запускаете силь но загруженный сервер, то можно подстроить    некоторые опции ядра для получения прироста скорости при помощи утилиты sysctl,   которая изменяет параметры ядра «на лету». (Вы можете также сохранить настройки в /etc/sysctl.conf). Введите sysctl -a, чтобы увидеть все параметры. Ряд опций могут увеличить производительность сервера, их следует вводить от имени root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w kernel.threads-max=65526&lt;br /&gt;
 sysctl -w fs.file-max=8192&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эти команды устанавливают число активных потоков, которое ядро может обслуживать, и число файлов, которые можно открыть одновременно. Увеличьте эти значения, если в логфайлах появятся сообщения о нехватке данных ресурсов.&lt;br /&gt;
&lt;br /&gt;
Следующая опция увеличивает объем памяти, выделяемой для сетевых буферов отправки – если нужно обслуживать большие файлы, то это значительно ускорит машинуработу (web,&lt;br /&gt;
FTP, Samba и т.д.):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w net.core.wmem_&lt;br /&gt;
 max=1048576&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее, установите число соединений, которые сохраняются в ожидании подтверждения клиентом. Обычно это число – 1024; увеличьте его, если ваш сервер часто оказывается перегружен соединениями:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w net.ipv4.tcp_max_syn_backlog=4096&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последняя опция определяет, как страницы памяти ядра сохраняются на диске (в виртуальной памяти), когда объем ОЗУ недостаточен. Обычно этот параметр устанавливается в значение 3. Более высокое значение увеличит время отклика настольных приложений (нехорошо!), но может быть полезно на сервере, где общая пропускная способность важнее, чем мгновенный отклик:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w vm/page-cluster=8&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Запустите собственную IRC-сеть==&lt;br /&gt;
&lt;br /&gt;
Откройте чат-салон на IrC-сервере – можно обсуждать открытое ПО, проекты Linux, судейство в турине&lt;br /&gt;
&lt;br /&gt;
Internet Relay Chat (IRC) – предшественник всемирной паутины. В далёком 1988-м году программист Яаркко Ойкаринен (Jarkko Oikarinen) создал альтернативу общению через доски объявлений, разработав IRC – простой и быстрый протокол, основанный на обычном тексте, который позволил пользователям во всём мире подключаться к сети серверов и беседовать в режиме реального времени. Благодаря простоте протокола IRC, даже программисты-любители могли разработать собственные клиенты – так что довольно быстро система уже насчитывала тысячи пользователей.&lt;br /&gt;
&lt;br /&gt;
Сегодня рынок захвачен преимущественно чат-салонами, основанными на web (типа Yahoo Chat), но IRC всё ещё очень популярен среди опытных пользователей. Основные IRC-сети, EFnet и Freenode, размещают тысячи «каналов» (аналог чатсалона) по темам от разработок на Perl до воскрешения мёртвых. IRC выработал свои собственные обычаи и нормы этикета, и пользователи, которые хамят и высказывают неуважение к правилам, рискуют нарваться на довольно жёсткие санкции. Это диковатый и эксцентричный мир – но только не в вопросах функционирования, и один из лучших способов поддерживать связь с людьми.&lt;br /&gt;
&lt;br /&gt;
===Зачем запускать IRCD?===&lt;br /&gt;
Демон IRC, известный также как IRC-сервер, позволяет пользователям подключаться к вашей машине через своих клиентов и взаимодействовать с вами как с хостом. Вы можете запустить автономный IRC-сервер для внутреннего пользования или присоединиться к большой сети, что-бы распределить загрузку – если у вас, к примеру, есть право на присоединение вашего сервера к Freenode, то вы сможете обслуживать пользователей, которые будут общаться с пользователями других Freenode-серверов. так… а свой-то зачем настраивать? По нескольким причинам: вы можете работать над программным проектом и пожелать работать с собственными каналами, чтоб самому устанавливать правила (вместо создания канала в чужой сети). Или, возможно, вы хотите общаться с друзьями «частным» образом, подальше от различных «асек» и основанных на web чат-салонов. а может быть, вы просто хотите поддержать существующую IRC-сеть, добавив к ней ещё одну лошадиную (в смысле, серверную) силу.&lt;br /&gt;
&lt;br /&gt;
Многие нынешние IRC-серверы являются переработкой исходного кода IRCD, с набором функций, добавленных поверх него. Некоторые были созданы с нуля. Ниже мы приводим три шага, показывающие, как собрать, настроить и запустить ''IRCD-Hybrid'', один из наиболее гибких серверов IRC, широко использующийся в сети Efnet.&lt;br /&gt;
&lt;br /&gt;
Когда ваш сервер будет запущен, вашим пользователям понадобятся IRC-клиенты, чтобы подключиться к нему. Пользователям KDE следует попробовать прекрасный ''Konversation'', в то время как фанаты Gnome/GTK могут выбрать не менее удачный ''X-Chat''. Для работы в командной строке хорошим выбором будут ''Irssi'' и ''BitchX'', и есть даже web-оболочка в виде CGI:IRC. Полный список можно найти на http://www.freshmeat.net/.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-12-17T03:29:43Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Общайтесь при помощи Jabber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;br /&gt;
&lt;br /&gt;
==Строим файловое хранилище на Samba==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы получить доступ к своим файлам с любого ПК в сети.&lt;br /&gt;
&lt;br /&gt;
Чтобы предоставить ваш принтер в общее пользование.&lt;br /&gt;
&lt;br /&gt;
Чтобы упростить создание резервных копий.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* http://www.samba.org/samba/docs/man/Samba-hOWTO-Collection&lt;br /&gt;
* http://hr.uoregon.edu/decidrl/samba.html&lt;br /&gt;
* http://samba.anu.edu.au/cifs/docs/what-is-smb.html&lt;br /&gt;
* ftp://ftp.samba.org/pub/samba/docs/Samba24hc13.pdf&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Совместное проживание OS X, Windows и Linux – дурдом? только не при Samba.&lt;br /&gt;
&lt;br /&gt;
Наиболее частая операция, выполняемая в небольших или домашних сетях – обобществление ресурсов. Общим может быть подключение к Интернету или что-нибудь попроще – например, принтер или вообще файл. Прежде чем рассылать 5 мБ-документы по всему дому через Gmail, подумайте о безопасной и простой альтернативе – вашем собственном файловом сервере.&lt;br /&gt;
&lt;br /&gt;
Есть несколько способов создать его в Linux, но, вероятно, простейший и самый надежный способ – это использование ''Samba''. Ко всему прочему, Samba поддерживает протокол SMB, который используется в сетях Windows для предоставления файлов в общий доступ – так что вы сможете работать с общими файлами не только на Linux-машинах, но и на Windows, и на Mac!&lt;br /&gt;
&lt;br /&gt;
===Здравствуй, Samba!===&lt;br /&gt;
&lt;br /&gt;
Наилучший способ установить Samba на ваш Linux-компьютер – это воспользоваться пакетами, включенными в ваш дистрибутив: Samba имеется в любом дистрибутиве, претендующем на популярность. Итак, пусть ваш менеджер пакетов отыщет и установит соответствующие программы. многие дистрибутивы разделяют клиентское и серверное ПО – убедитесь, что установлено и то, и другое. На «чистом» сервере клиент, конечно, не обязателен, но он пригодится для тестирования.&lt;br /&gt;
&lt;br /&gt;
После установки настает время создать конфигурационный файл. Пакет Samba обычно снабжен файлом настроек по умолчанию, и достаточно лишь слегка подправить его. Впрочем, вы можете начать и с нуля. Краткий пример показывает, как мало этому файлу надо (кстати, его имя – /etc/samba/smb.conf):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = LINUX&lt;br /&gt;
 netbios name = MYSHARE&lt;br /&gt;
 &lt;br /&gt;
 [share1]&lt;br /&gt;
 path = /tmp&lt;br /&gt;
 [share2]&lt;br /&gt;
 path = /share&lt;br /&gt;
 comment = Some random files&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция '''global''' обязательна и определяет имя рабочей группы (используется в Windows для объединения общих файлов — группировки ресурсов) и имя NetBIOS, под этим именем ваш сервер будет фигурировать на других компьютерах. По умолчанию берется имя вашего хоста (hostname).&lt;br /&gt;
&lt;br /&gt;
Секции '''share''' в приведённом примере – это имена общих папок [частенько называемых «шарами», – прим. ред.], которые обслуживаются данной машиной. Опции не ограничиваются простой ссылкой на каталог. Вы можете допустить к общим папкам только лиц из определенного круга или даже сделать список файлов невидимым для неавторизованных пользователей. За дополнительной информацией обращайтесь к демонстрационному конфигурационному файлу или врезке «Полезные ссылки».&lt;br /&gt;
&lt;br /&gt;
Наконец, для запуска сервера выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вероятно, вам захочется, чтобы этот сервис сам активизировался при каждой перезагрузке, так что либо вручную свяжите его с runlevel, либо включите в конфигурацию загрузки компьютера. Используйте для этого инструменты вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
В Linux, вы теперь можете монтировать общие каталоги и сетевые ресурсы, используя команду smbmount, или обычную mount с ключом '''-t cifs''' (smbfs уже устарела, пользуйтесь cifs):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount //HOSTNAME/sharename /mnt/share -t cifs -o user&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Windows и Mac вы можете использовать обычные сетевые инструменты. &lt;br /&gt;
&lt;br /&gt;
===Кое-что о принтере===&lt;br /&gt;
Помните, мы вскользь отметили, что в общее пользование часто предоставляется принтер? Конфигурационный файл Samba и с этим способен справиться, причем несколькими способами, в зависимости от того, работает ли у вас CUPS (Common Unix Printing System) и сколько у вас принтеров. мы будем иметь дело с простым сценарием, без CUPS (хотя CUPS, между прочим, тоже присутствует во многих дистрибутивах Linux, и это лучший способ управлять принтерами в Linux). CUPS тоже мог бы настроить сетевую печать, но раз уж запущен Samba, то проще поддерживать один набор файлов.&lt;br /&gt;
&lt;br /&gt;
Обычно файл '''smb.conf''', устанавливаемый по умолчанию, содержит следующие строки (проверьте, что они раскомментированы, т.е. символы «#» есть только там, где показано):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = All Printers&lt;br /&gt;
 path = /var/spool/samba&lt;br /&gt;
 browseable = no&lt;br /&gt;
 # чтобы разрешить «гостевой» доступ к печати&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
 printable = yes&lt;br /&gt;
 create mode = 0700&lt;br /&gt;
 #=============================&lt;br /&gt;
 # команда печати, подробности см. выше&lt;br /&gt;
 #=============================&lt;br /&gt;
 print command = lpr-cups -P %p -o raw %s -r&lt;br /&gt;
 # используются драйверы печати на  стороне пользователя&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот код, в общем-то, разрешает пользоваться принтерами всем. Но бывают обстоятельства, когда лучше позаботиться, чтобы на принтер покушались только штатные пользователи – в этом случае просто замените строку «''guest ok = yes''» на «''guest ok = no''».&lt;br /&gt;
&lt;br /&gt;
Данные настройки всего лишь позволяют передавать данные – на клиентских машинах, естественно, должен иметься правильный драйвер принтера.&lt;br /&gt;
&lt;br /&gt;
==Запрягаем базу данных==&lt;br /&gt;
Ваш собственный сервер баз данных MySQL в подкрепление к OpenOffice.org Base.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы сэкономить деньги на хостинге баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить прочную основу для графических систем баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы наконец изучить SQL.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Баз данных в мире заметно больше, чем web-серверов. Они гораздо дольше окружают нас, содержат на порядок больше данных и поставляют больше критичных сервисов, чем все прочие. а почему бы вам не завести собственную базу данных? В отличие от серверов Samba и Apache, серверы баз данных не гонятся за славой – запустите такой, и он будет сидеть себе потихоньку в фоновом режиме, дожидаясь запроса.&lt;br /&gt;
&lt;br /&gt;
Web-хостыеры обычно предоставляют базы данных весьма скромных размеров (заполучить 100 мБ считается удачей) – вот вам и повод сделать сервер самому. Потратив некоторое время на освоение SQL, вы сможете настроить ваш сервер и запросто предоставлять его также и вашим друзьям. &lt;br /&gt;
&lt;br /&gt;
===Ваше руководство по установке===&lt;br /&gt;
Мы продемонстрируем вам, как настроить сервер MySQL. MySQL 5.0 имеется на нашем диске, так что скопируйте его, распакуйте и перейдите в созданный каталог, где выполните ./configure --prefix=/usr/local/mysql, затем make, переключитесь в режим root, и наконец, запустите make install. теперь перейдите в каталог /usr/local/mysql, выполните там команду bin/mysql_install_db, затем chown -R mysql var. Итак, MySQL установлена. Выполните команду bin/mysqld_safe &amp;amp;, чтобы запустить ваш MySQL-сервер.&lt;br /&gt;
&lt;br /&gt;
По умолчанию MySQL не устанавливает пароль для своего суперпользователя, так что вам нужно ввести несколько команд от имени непривилегированного пользователя:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим на сервер&lt;br /&gt;
 /usr/loca/mysql/bin/mysql -u root mysql&lt;br /&gt;
 # зададим пароль для root — желательно, чтоб угадать его было нелегко!&lt;br /&gt;
 UPDATE user SET Pasword =&lt;br /&gt;
 PASSWORD(‘frosties’) WHERE User = ‘root’;&lt;br /&gt;
 # Создайте базу данных, которая нам понадобится в дальнейшем&lt;br /&gt;
 CREATE DATABASE lxfdb;&lt;br /&gt;
 # Добавьте учетную запись непривилегированного пользователя&lt;br /&gt;
 INSERT INTO user (Host, User, Password)&lt;br /&gt;
 VALUES (‘localhost’, ‘lxf’,&lt;br /&gt;
 PASSWORD(‘orangutan’));&lt;br /&gt;
 # Предоставьте новому пользователю доступ к созданной базе данных&lt;br /&gt;
 GRANT ALL PRIVILEGES ON lxfdb.* TO lxf;&lt;br /&gt;
 # Обновите привилегии MySQL &lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 # Выйдите из MySQL; негоже лазить везде с правами root&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы вернулись к нашей командной строке, теперь осталось убедиться, что новая учётная запись работает. Введите:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим под именем нашего пользователя&lt;br /&gt;
 /usr/local/bysql/bin/mysql -u lxf -p lxfdb&lt;br /&gt;
 # Посмотрим список имеющихся таблиц (пока у нас ничего нет)&lt;br /&gt;
 SHOW TABLES;&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, значит, учётная запись создалась нормально.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать учётные записи ещё для кого-нибудь, просто повторите команду INSERT INTO, замените имя пользователя и пароль новыми значениями, плюс установите значение Host в «%» (предоставление доступа к локальному хосту извне с удаленных хостов). Вы можете создать сколько угодно баз данных и предоставлять пользователям различные уровни доступа. MySQL работает на порту 3306, так что вам нужно будет открыть доступ к нему на вашем брандмауэре, чтобы другие могли подключаться беспрепятственно.&lt;br /&gt;
&lt;br /&gt;
===Жизнь-служение===&lt;br /&gt;
По общему признанию, серверы баз данных не богаты приложениями, преимуществами которых можно воспользоваться прямо с ходу, но некоторые всё же существуют. Например, можно настроить OpenOffice.org Base на взаимодействие с вашим новым сервером для всех её баз данных – вы получите ту же самую дружественную оболочку, но надёжно подкрепленную прекрасно масштабируемым MySQL.&lt;br /&gt;
&lt;br /&gt;
Если душа просит чего-то более «продвинутого», то как насчет возможности доступа к вашим данным из любой точки? Лучше всего вооружиться программой типа PhpMyAdmin: это основанный на PHP инструмент администрирования MySQL-сервера, позволяющий вам создавать данные и управлять ими через Интернет. Будьте осторожны с правами доступа; лучше всего установить отдельную копию phpMyAdmin для каждого пользователя, чтобы быть уверенным в надлежащем разграничении прав.&lt;br /&gt;
&lt;br /&gt;
Многие скрипты используют MySQL для хранения своих данных (wiki и дневники, пожалуй, наиболее яркие представители), но, бесспорно, лучшее применение MySQL – это разработка собственных PHP-скриптов на базе MySQL.&lt;br /&gt;
&lt;br /&gt;
===Межсетевые экраны===&lt;br /&gt;
Запуская собственный сервер, вы вынуждены «продырявить» свой брандмауэр (firewall), чтобы ваш интернет-сервис мог работать, потому что брандмауэр зачастую блокирует все   входящие соединения – беспрепятственно проходят только исходящие.&lt;br /&gt;
&lt;br /&gt;
Чтобы открыть порт на вашем брандмауэре для какого-либо сервера, например, Apache   (HTTP), вам нужно сначала узнать, какой порт и протокол этот сервер использует. Эту информацию обычно можно найти в документации сервера; пригодится также наша небольшая таблица. &lt;br /&gt;
&lt;br /&gt;
И SUSE, и Mandriva используют собственные инструменты настройки брандмауэра, доступные из панели управления. В SUSE, например, откройте Yast, выберите «Security and Users» и щелкните на кнопку «Firewall». Появится новое окно, и для открытия порта просто щелкните на вкладку «Allowed Services» слева. SUSE поставляется с несколькими предварительно настроенными сервисами, которые можно просто выбрать из выпадающего меню «Services to Allow», либо добавить ваш собственный, щёлкнув по кнопке «Advanced». Если вы предпочитаете действовать самостоятельно, то Guarddog (http://www.simonzone.com/software/guarddog) – прекрасная графическая оболочка для настройки вашего брандмауэра.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; &lt;br /&gt;
 !bgcolor=#CCCCFF| Сервис ||bgcolor=#CCCCFF| Протокол||bgcolor=#CCCCFF|Порт&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |SSH||TCP||22&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |HTTP||TCP||80&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |Squid||UDP, TCP||3128, 3130&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Общайтесь при помощи Jabber==&lt;br /&gt;
&lt;br /&gt;
Соберите друзей поболтать через ваш личный сервер обмена мгновенными сообщениями.&lt;br /&gt;
&lt;br /&gt;
Если не считать голосовое общение, то мгновенные сообщения (IM) лучше всего подходят для проведения групповых дискуссий. Они заслуженно популярны, и существует ряд конкурирующих протоколов, серверов и клиентов для IM. Поскольку мы используем Linux, мы можем выбрать лучшее – по нашему мнению, это Jabber.&lt;br /&gt;
&lt;br /&gt;
''Jabber'' – не название какой-то программы как таковой. Это обозначение протокола, поддерживающего взаимодействие клиентов и серверов для создания чата. Вообще-то протокол называется не Jabber, более точное его наименование – XMPP, он поддерживает открытый стандарт для сообщений. Однако довольно путаницы, перейдем к делу.     Протоколами Jabber пользуются несколько серверов. Некоторые из них коммерческие, хватает и открытых; одни написаны на Java, другие – на С, и т.д. Со списком различных вариантов можно ознакомиться на сайте JFSF [http://www.jabber.org/software/servers.shtml]. Мы выбрали Wildfire, сервер от Jive Software, по трём причинам – этот сервер:&lt;br /&gt;
* свободное ПО, распространяемое подлицензией GPL;&lt;br /&gt;
* основан на Java и является кросс-платформным (Mac/Windows/Unix);&lt;br /&gt;
* способен работать как автономно, так и в составе сервера приложений.&lt;br /&gt;
&lt;br /&gt;
Есть и четвёртая причина: его очень просто настраивать и использовать! Чтобы раздобыть последнюю версию исходных кодов и RPM-пакеты, зайдите на http://www.jivesoftware.org/wildfire/ или возьмите версию с нашего диска, которую будем использовать мы. Установка RPM-пакета совершенно стандартная, так что у вас все получится (сервер будет поставлен в '''/opt/wildfire'''). Tar-архив содержит статически собранную версию, которую вы можете распаковать и скопировать в '''/opt''' или другое место. запустите сервер:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /opt/wildfire/bin/wildfire&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дальнейшую настройку может выполнить сам сервер. Наберите в адресной строке адреса вашего браузера http://localhost:9090 (или укажите имя сервера, если вы выполняете настройку удалённо). Углубившись в опции (для простоты выберите встроенную базу данных – Embedded Database), вы за несколько шагов достигнете главной панели администрирования. Здесь доступна уйма опций, но в первую очередь надо бы завести нескольких пользователей и протестировать систему. Ваш сервер – частный и закрытый, поэтому вы, вероятно, исключите регистрацию извне и будете создавать нужных пользователей самостоятельно.&lt;br /&gt;
&lt;br /&gt;
Чтобы сервис ''Wildfire'' запускался при старте системы, в каталоге '''/bin/extra''' предсмотрен скрипт ''wildfired''. Для его запуска на вашей системе, отредактируйте строку, начинающуюся с '''export WILDFILRE_HOME=''', чтобы она указывала на каталог установки, затем скопируйте его в '''/etc/init.d''' и сделайте ссылку из каталога соответствующего уровня исполнения (runlevel). точный способ сделать это зависит от вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
Вот и всё. Пользователи смогут самостоятельно подключаться к вашему серверу и беседовать, пока фирма не обанкротится. Кстати говоря, в корпоративной сети вы можете подсоединить ''Wildfire'' к LDAP – учётные записи для всего персонала будут получены автоматически! (См. Http://www.jivesoftware.org/builds/wildfire/docs/latest/documentation/ldap-guide.html).&lt;br /&gt;
&lt;br /&gt;
===Выбирайте клиент===&lt;br /&gt;
Существует множество клиентов, способных работать с Jabber-серверами – поскольку это открытый стандарт, их достаточно легко подключить. Вот несколько популярных совместимых клиентов для основных операционных систем:&lt;br /&gt;
* Linux: Gaim, Kopete, Gush, Gabber;&lt;br /&gt;
* Mac OS X: iCat, Gush, Gabber;&lt;br /&gt;
* Windows: Miranda IM, Trillian Pro, IRJabber,Gush;&lt;br /&gt;
&lt;br /&gt;
Не забывайте, что вам нужно создавать учётные записи на сервере или разрешить клиентам регистрироваться самостоятельно. Приятного общения!&lt;br /&gt;
&lt;br /&gt;
===Настройки SYSCTL===&lt;br /&gt;
&lt;br /&gt;
Ядра многих дистрибутивов настроены на   баланс между серверным и «настольным» применением. Но если вы запускаете силь но загруженный сервер, то можно подстроить    некоторые опции ядра для получения прироста скорости при помощи утилиты sysctl,   которая изменяет параметры ядра «на лету». (Вы можете также сохранить настройки в /etc/sysctl.conf). Введите sysctl -a, чтобы увидеть все параметры. Ряд опций могут увеличить производительность сервера, их следует вводить от имени root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w kernel.threads-max=65526&lt;br /&gt;
 sysctl -w fs.file-max=8192&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эти команды устанавливают число активных потоков, которое ядро может обслуживать, и число файлов, которые можно открыть одновременно. Увеличьте эти значения, если в логфайлах появятся сообщения о нехватке данных ресурсов.&lt;br /&gt;
&lt;br /&gt;
Следующая опция увеличивает объем памяти, выделяемой для сетевых буферов отправки – если нужно обслуживать большие файлы, то это значительно ускорит машинуработу (web,&lt;br /&gt;
FTP, Samba и т.д.):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w net.core.wmem_&lt;br /&gt;
 max=1048576&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее, установите число соединений, которые сохраняются в ожидании подтверждения клиентом. Обычно это число – 1024; увеличьте его, если ваш сервер часто оказывается перегружен соединениями:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w net.ipv4.tcp_max_syn_backlog=4096&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последняя опция определяет, как страницы памяти ядра сохраняются на диске (в виртуальной памяти), когда объем ОЗУ недостаточен. Обычно этот параметр устанавливается в значение 3. Более высокое значение увеличит время отклика настольных приложений (нехорошо!), но может быть полезно на сервере, где общая пропускная способность важнее, чем мгновенный отклик:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl -w vm/page-cluster=8&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-12-17T03:06:05Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Общайтесь при помощи Jabber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;br /&gt;
&lt;br /&gt;
==Строим файловое хранилище на Samba==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы получить доступ к своим файлам с любого ПК в сети.&lt;br /&gt;
&lt;br /&gt;
Чтобы предоставить ваш принтер в общее пользование.&lt;br /&gt;
&lt;br /&gt;
Чтобы упростить создание резервных копий.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* http://www.samba.org/samba/docs/man/Samba-hOWTO-Collection&lt;br /&gt;
* http://hr.uoregon.edu/decidrl/samba.html&lt;br /&gt;
* http://samba.anu.edu.au/cifs/docs/what-is-smb.html&lt;br /&gt;
* ftp://ftp.samba.org/pub/samba/docs/Samba24hc13.pdf&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Совместное проживание OS X, Windows и Linux – дурдом? только не при Samba.&lt;br /&gt;
&lt;br /&gt;
Наиболее частая операция, выполняемая в небольших или домашних сетях – обобществление ресурсов. Общим может быть подключение к Интернету или что-нибудь попроще – например, принтер или вообще файл. Прежде чем рассылать 5 мБ-документы по всему дому через Gmail, подумайте о безопасной и простой альтернативе – вашем собственном файловом сервере.&lt;br /&gt;
&lt;br /&gt;
Есть несколько способов создать его в Linux, но, вероятно, простейший и самый надежный способ – это использование ''Samba''. Ко всему прочему, Samba поддерживает протокол SMB, который используется в сетях Windows для предоставления файлов в общий доступ – так что вы сможете работать с общими файлами не только на Linux-машинах, но и на Windows, и на Mac!&lt;br /&gt;
&lt;br /&gt;
===Здравствуй, Samba!===&lt;br /&gt;
&lt;br /&gt;
Наилучший способ установить Samba на ваш Linux-компьютер – это воспользоваться пакетами, включенными в ваш дистрибутив: Samba имеется в любом дистрибутиве, претендующем на популярность. Итак, пусть ваш менеджер пакетов отыщет и установит соответствующие программы. многие дистрибутивы разделяют клиентское и серверное ПО – убедитесь, что установлено и то, и другое. На «чистом» сервере клиент, конечно, не обязателен, но он пригодится для тестирования.&lt;br /&gt;
&lt;br /&gt;
После установки настает время создать конфигурационный файл. Пакет Samba обычно снабжен файлом настроек по умолчанию, и достаточно лишь слегка подправить его. Впрочем, вы можете начать и с нуля. Краткий пример показывает, как мало этому файлу надо (кстати, его имя – /etc/samba/smb.conf):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = LINUX&lt;br /&gt;
 netbios name = MYSHARE&lt;br /&gt;
 &lt;br /&gt;
 [share1]&lt;br /&gt;
 path = /tmp&lt;br /&gt;
 [share2]&lt;br /&gt;
 path = /share&lt;br /&gt;
 comment = Some random files&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция '''global''' обязательна и определяет имя рабочей группы (используется в Windows для объединения общих файлов — группировки ресурсов) и имя NetBIOS, под этим именем ваш сервер будет фигурировать на других компьютерах. По умолчанию берется имя вашего хоста (hostname).&lt;br /&gt;
&lt;br /&gt;
Секции '''share''' в приведённом примере – это имена общих папок [частенько называемых «шарами», – прим. ред.], которые обслуживаются данной машиной. Опции не ограничиваются простой ссылкой на каталог. Вы можете допустить к общим папкам только лиц из определенного круга или даже сделать список файлов невидимым для неавторизованных пользователей. За дополнительной информацией обращайтесь к демонстрационному конфигурационному файлу или врезке «Полезные ссылки».&lt;br /&gt;
&lt;br /&gt;
Наконец, для запуска сервера выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вероятно, вам захочется, чтобы этот сервис сам активизировался при каждой перезагрузке, так что либо вручную свяжите его с runlevel, либо включите в конфигурацию загрузки компьютера. Используйте для этого инструменты вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
В Linux, вы теперь можете монтировать общие каталоги и сетевые ресурсы, используя команду smbmount, или обычную mount с ключом '''-t cifs''' (smbfs уже устарела, пользуйтесь cifs):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount //HOSTNAME/sharename /mnt/share -t cifs -o user&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Windows и Mac вы можете использовать обычные сетевые инструменты. &lt;br /&gt;
&lt;br /&gt;
===Кое-что о принтере===&lt;br /&gt;
Помните, мы вскользь отметили, что в общее пользование часто предоставляется принтер? Конфигурационный файл Samba и с этим способен справиться, причем несколькими способами, в зависимости от того, работает ли у вас CUPS (Common Unix Printing System) и сколько у вас принтеров. мы будем иметь дело с простым сценарием, без CUPS (хотя CUPS, между прочим, тоже присутствует во многих дистрибутивах Linux, и это лучший способ управлять принтерами в Linux). CUPS тоже мог бы настроить сетевую печать, но раз уж запущен Samba, то проще поддерживать один набор файлов.&lt;br /&gt;
&lt;br /&gt;
Обычно файл '''smb.conf''', устанавливаемый по умолчанию, содержит следующие строки (проверьте, что они раскомментированы, т.е. символы «#» есть только там, где показано):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = All Printers&lt;br /&gt;
 path = /var/spool/samba&lt;br /&gt;
 browseable = no&lt;br /&gt;
 # чтобы разрешить «гостевой» доступ к печати&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
 printable = yes&lt;br /&gt;
 create mode = 0700&lt;br /&gt;
 #=============================&lt;br /&gt;
 # команда печати, подробности см. выше&lt;br /&gt;
 #=============================&lt;br /&gt;
 print command = lpr-cups -P %p -o raw %s -r&lt;br /&gt;
 # используются драйверы печати на  стороне пользователя&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот код, в общем-то, разрешает пользоваться принтерами всем. Но бывают обстоятельства, когда лучше позаботиться, чтобы на принтер покушались только штатные пользователи – в этом случае просто замените строку «''guest ok = yes''» на «''guest ok = no''».&lt;br /&gt;
&lt;br /&gt;
Данные настройки всего лишь позволяют передавать данные – на клиентских машинах, естественно, должен иметься правильный драйвер принтера.&lt;br /&gt;
&lt;br /&gt;
==Запрягаем базу данных==&lt;br /&gt;
Ваш собственный сервер баз данных MySQL в подкрепление к OpenOffice.org Base.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы сэкономить деньги на хостинге баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить прочную основу для графических систем баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы наконец изучить SQL.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Баз данных в мире заметно больше, чем web-серверов. Они гораздо дольше окружают нас, содержат на порядок больше данных и поставляют больше критичных сервисов, чем все прочие. а почему бы вам не завести собственную базу данных? В отличие от серверов Samba и Apache, серверы баз данных не гонятся за славой – запустите такой, и он будет сидеть себе потихоньку в фоновом режиме, дожидаясь запроса.&lt;br /&gt;
&lt;br /&gt;
Web-хостыеры обычно предоставляют базы данных весьма скромных размеров (заполучить 100 мБ считается удачей) – вот вам и повод сделать сервер самому. Потратив некоторое время на освоение SQL, вы сможете настроить ваш сервер и запросто предоставлять его также и вашим друзьям. &lt;br /&gt;
&lt;br /&gt;
===Ваше руководство по установке===&lt;br /&gt;
Мы продемонстрируем вам, как настроить сервер MySQL. MySQL 5.0 имеется на нашем диске, так что скопируйте его, распакуйте и перейдите в созданный каталог, где выполните ./configure --prefix=/usr/local/mysql, затем make, переключитесь в режим root, и наконец, запустите make install. теперь перейдите в каталог /usr/local/mysql, выполните там команду bin/mysql_install_db, затем chown -R mysql var. Итак, MySQL установлена. Выполните команду bin/mysqld_safe &amp;amp;, чтобы запустить ваш MySQL-сервер.&lt;br /&gt;
&lt;br /&gt;
По умолчанию MySQL не устанавливает пароль для своего суперпользователя, так что вам нужно ввести несколько команд от имени непривилегированного пользователя:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим на сервер&lt;br /&gt;
 /usr/loca/mysql/bin/mysql -u root mysql&lt;br /&gt;
 # зададим пароль для root — желательно, чтоб угадать его было нелегко!&lt;br /&gt;
 UPDATE user SET Pasword =&lt;br /&gt;
 PASSWORD(‘frosties’) WHERE User = ‘root’;&lt;br /&gt;
 # Создайте базу данных, которая нам понадобится в дальнейшем&lt;br /&gt;
 CREATE DATABASE lxfdb;&lt;br /&gt;
 # Добавьте учетную запись непривилегированного пользователя&lt;br /&gt;
 INSERT INTO user (Host, User, Password)&lt;br /&gt;
 VALUES (‘localhost’, ‘lxf’,&lt;br /&gt;
 PASSWORD(‘orangutan’));&lt;br /&gt;
 # Предоставьте новому пользователю доступ к созданной базе данных&lt;br /&gt;
 GRANT ALL PRIVILEGES ON lxfdb.* TO lxf;&lt;br /&gt;
 # Обновите привилегии MySQL &lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 # Выйдите из MySQL; негоже лазить везде с правами root&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы вернулись к нашей командной строке, теперь осталось убедиться, что новая учётная запись работает. Введите:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим под именем нашего пользователя&lt;br /&gt;
 /usr/local/bysql/bin/mysql -u lxf -p lxfdb&lt;br /&gt;
 # Посмотрим список имеющихся таблиц (пока у нас ничего нет)&lt;br /&gt;
 SHOW TABLES;&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, значит, учётная запись создалась нормально.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать учётные записи ещё для кого-нибудь, просто повторите команду INSERT INTO, замените имя пользователя и пароль новыми значениями, плюс установите значение Host в «%» (предоставление доступа к локальному хосту извне с удаленных хостов). Вы можете создать сколько угодно баз данных и предоставлять пользователям различные уровни доступа. MySQL работает на порту 3306, так что вам нужно будет открыть доступ к нему на вашем брандмауэре, чтобы другие могли подключаться беспрепятственно.&lt;br /&gt;
&lt;br /&gt;
===Жизнь-служение===&lt;br /&gt;
По общему признанию, серверы баз данных не богаты приложениями, преимуществами которых можно воспользоваться прямо с ходу, но некоторые всё же существуют. Например, можно настроить OpenOffice.org Base на взаимодействие с вашим новым сервером для всех её баз данных – вы получите ту же самую дружественную оболочку, но надёжно подкрепленную прекрасно масштабируемым MySQL.&lt;br /&gt;
&lt;br /&gt;
Если душа просит чего-то более «продвинутого», то как насчет возможности доступа к вашим данным из любой точки? Лучше всего вооружиться программой типа PhpMyAdmin: это основанный на PHP инструмент администрирования MySQL-сервера, позволяющий вам создавать данные и управлять ими через Интернет. Будьте осторожны с правами доступа; лучше всего установить отдельную копию phpMyAdmin для каждого пользователя, чтобы быть уверенным в надлежащем разграничении прав.&lt;br /&gt;
&lt;br /&gt;
Многие скрипты используют MySQL для хранения своих данных (wiki и дневники, пожалуй, наиболее яркие представители), но, бесспорно, лучшее применение MySQL – это разработка собственных PHP-скриптов на базе MySQL.&lt;br /&gt;
&lt;br /&gt;
===Межсетевые экраны===&lt;br /&gt;
Запуская собственный сервер, вы вынуждены «продырявить» свой брандмауэр (firewall), чтобы ваш интернет-сервис мог работать, потому что брандмауэр зачастую блокирует все   входящие соединения – беспрепятственно проходят только исходящие.&lt;br /&gt;
&lt;br /&gt;
Чтобы открыть порт на вашем брандмауэре для какого-либо сервера, например, Apache   (HTTP), вам нужно сначала узнать, какой порт и протокол этот сервер использует. Эту информацию обычно можно найти в документации сервера; пригодится также наша небольшая таблица. &lt;br /&gt;
&lt;br /&gt;
И SUSE, и Mandriva используют собственные инструменты настройки брандмауэра, доступные из панели управления. В SUSE, например, откройте Yast, выберите «Security and Users» и щелкните на кнопку «Firewall». Появится новое окно, и для открытия порта просто щелкните на вкладку «Allowed Services» слева. SUSE поставляется с несколькими предварительно настроенными сервисами, которые можно просто выбрать из выпадающего меню «Services to Allow», либо добавить ваш собственный, щёлкнув по кнопке «Advanced». Если вы предпочитаете действовать самостоятельно, то Guarddog (http://www.simonzone.com/software/guarddog) – прекрасная графическая оболочка для настройки вашего брандмауэра.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; &lt;br /&gt;
 !bgcolor=#CCCCFF| Сервис ||bgcolor=#CCCCFF| Протокол||bgcolor=#CCCCFF|Порт&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |SSH||TCP||22&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |HTTP||TCP||80&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |Squid||UDP, TCP||3128, 3130&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Общайтесь при помощи Jabber==&lt;br /&gt;
&lt;br /&gt;
Соберите друзей поболтать через ваш личный сервер обмена мгновенными сообщениями.&lt;br /&gt;
&lt;br /&gt;
Если не считать голосовое общение, то мгновенные сообщения (IM) лучше всего подходят для проведения групповых дискуссий. Они заслуженно популярны, и существует ряд конкурирующих протоколов, серверов и клиентов для IM. Поскольку мы используем Linux, мы можем выбрать лучшее – по нашему мнению, это Jabber.&lt;br /&gt;
&lt;br /&gt;
''Jabber'' – не название какой-то программы как таковой. Это обозначение протокола, поддерживающего взаимодействие клиентов и серверов для создания чата. Вообще-то протокол называется не Jabber, более точное его наименование – XMPP, он поддерживает открытый стандарт для сообщений. Однако довольно путаницы, перейдем к делу.     Протоколами Jabber пользуются несколько серверов. Некоторые из них коммерческие, хватает и открытых; одни написаны на Java, другие – на С, и т.д. Со списком различных вариантов можно ознакомиться на сайте JFSF [http://www.jabber.org/software/servers.shtml]. Мы выбрали Wildfire, сервер от Jive Software, по трём причинам – этот сервер:&lt;br /&gt;
* свободное ПО, распространяемое подлицензией GPL;&lt;br /&gt;
* основан на Java и является кросс-платформным (Mac/Windows/Unix);&lt;br /&gt;
* способен работать как автономно, так и в составе сервера приложений.&lt;br /&gt;
&lt;br /&gt;
Есть и четвёртая причина: его очень просто настраивать и использовать! Чтобы раздобыть последнюю версию исходных кодов и RPM-пакеты, зайдите на www.&lt;br /&gt;
&lt;br /&gt;
===Настройи SYSCTL===&lt;br /&gt;
&lt;br /&gt;
Ядра многих дистрибутивов настроены на   баланс между серверным и «настольным» применением. Но если вы запускаете силь но загруженный сервер, то можно подстроить    некоторые опции ядра для получения прироста скорости при помощи утилиты sysctl,   которая изменяет параметры ядра «на лету». (Вы можете также сохранить настройки в /etc/sysctl.conf). Введите sysctl -a, чтобы увидеть все параметры. Ряд опций могут увеличить производительность сервера, их следует вводить от имени root:&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-17T01:37:48Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Запрягаем базу данных */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;br /&gt;
&lt;br /&gt;
==Строим файловое хранилище на Samba==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы получить доступ к своим файлам с любого ПК в сети.&lt;br /&gt;
&lt;br /&gt;
Чтобы предоставить ваш принтер в общее пользование.&lt;br /&gt;
&lt;br /&gt;
Чтобы упростить создание резервных копий.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* http://www.samba.org/samba/docs/man/Samba-hOWTO-Collection&lt;br /&gt;
* http://hr.uoregon.edu/decidrl/samba.html&lt;br /&gt;
* http://samba.anu.edu.au/cifs/docs/what-is-smb.html&lt;br /&gt;
* ftp://ftp.samba.org/pub/samba/docs/Samba24hc13.pdf&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Совместное проживание OS X, Windows и Linux – дурдом? только не при Samba.&lt;br /&gt;
&lt;br /&gt;
Наиболее частая операция, выполняемая в небольших или домашних сетях – обобществление ресурсов. Общим может быть подключение к Интернету или что-нибудь попроще – например, принтер или вообще файл. Прежде чем рассылать 5 мБ-документы по всему дому через Gmail, подумайте о безопасной и простой альтернативе – вашем собственном файловом сервере.&lt;br /&gt;
&lt;br /&gt;
Есть несколько способов создать его в Linux, но, вероятно, простейший и самый надежный способ – это использование ''Samba''. Ко всему прочему, Samba поддерживает протокол SMB, который используется в сетях Windows для предоставления файлов в общий доступ – так что вы сможете работать с общими файлами не только на Linux-машинах, но и на Windows, и на Mac!&lt;br /&gt;
&lt;br /&gt;
===Здравствуй, Samba!===&lt;br /&gt;
&lt;br /&gt;
Наилучший способ установить Samba на ваш Linux-компьютер – это воспользоваться пакетами, включенными в ваш дистрибутив: Samba имеется в любом дистрибутиве, претендующем на популярность. Итак, пусть ваш менеджер пакетов отыщет и установит соответствующие программы. многие дистрибутивы разделяют клиентское и серверное ПО – убедитесь, что установлено и то, и другое. На «чистом» сервере клиент, конечно, не обязателен, но он пригодится для тестирования.&lt;br /&gt;
&lt;br /&gt;
После установки настает время создать конфигурационный файл. Пакет Samba обычно снабжен файлом настроек по умолчанию, и достаточно лишь слегка подправить его. Впрочем, вы можете начать и с нуля. Краткий пример показывает, как мало этому файлу надо (кстати, его имя – /etc/samba/smb.conf):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = LINUX&lt;br /&gt;
 netbios name = MYSHARE&lt;br /&gt;
 &lt;br /&gt;
 [share1]&lt;br /&gt;
 path = /tmp&lt;br /&gt;
 [share2]&lt;br /&gt;
 path = /share&lt;br /&gt;
 comment = Some random files&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция '''global''' обязательна и определяет имя рабочей группы (используется в Windows для объединения общих файлов — группировки ресурсов) и имя NetBIOS, под этим именем ваш сервер будет фигурировать на других компьютерах. По умолчанию берется имя вашего хоста (hostname).&lt;br /&gt;
&lt;br /&gt;
Секции '''share''' в приведённом примере – это имена общих папок [частенько называемых «шарами», – прим. ред.], которые обслуживаются данной машиной. Опции не ограничиваются простой ссылкой на каталог. Вы можете допустить к общим папкам только лиц из определенного круга или даже сделать список файлов невидимым для неавторизованных пользователей. За дополнительной информацией обращайтесь к демонстрационному конфигурационному файлу или врезке «Полезные ссылки».&lt;br /&gt;
&lt;br /&gt;
Наконец, для запуска сервера выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вероятно, вам захочется, чтобы этот сервис сам активизировался при каждой перезагрузке, так что либо вручную свяжите его с runlevel, либо включите в конфигурацию загрузки компьютера. Используйте для этого инструменты вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
В Linux, вы теперь можете монтировать общие каталоги и сетевые ресурсы, используя команду smbmount, или обычную mount с ключом '''-t cifs''' (smbfs уже устарела, пользуйтесь cifs):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount //HOSTNAME/sharename /mnt/share -t cifs -o user&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Windows и Mac вы можете использовать обычные сетевые инструменты. &lt;br /&gt;
&lt;br /&gt;
===Кое-что о принтере===&lt;br /&gt;
Помните, мы вскользь отметили, что в общее пользование часто предоставляется принтер? Конфигурационный файл Samba и с этим способен справиться, причем несколькими способами, в зависимости от того, работает ли у вас CUPS (Common Unix Printing System) и сколько у вас принтеров. мы будем иметь дело с простым сценарием, без CUPS (хотя CUPS, между прочим, тоже присутствует во многих дистрибутивах Linux, и это лучший способ управлять принтерами в Linux). CUPS тоже мог бы настроить сетевую печать, но раз уж запущен Samba, то проще поддерживать один набор файлов.&lt;br /&gt;
&lt;br /&gt;
Обычно файл '''smb.conf''', устанавливаемый по умолчанию, содержит следующие строки (проверьте, что они раскомментированы, т.е. символы «#» есть только там, где показано):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = All Printers&lt;br /&gt;
 path = /var/spool/samba&lt;br /&gt;
 browseable = no&lt;br /&gt;
 # чтобы разрешить «гостевой» доступ к печати&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
 printable = yes&lt;br /&gt;
 create mode = 0700&lt;br /&gt;
 #=============================&lt;br /&gt;
 # команда печати, подробности см. выше&lt;br /&gt;
 #=============================&lt;br /&gt;
 print command = lpr-cups -P %p -o raw %s -r&lt;br /&gt;
 # используются драйверы печати на  стороне пользователя&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот код, в общем-то, разрешает пользоваться принтерами всем. Но бывают обстоятельства, когда лучше позаботиться, чтобы на принтер покушались только штатные пользователи – в этом случае просто замените строку «''guest ok = yes''» на «''guest ok = no''».&lt;br /&gt;
&lt;br /&gt;
Данные настройки всего лишь позволяют передавать данные – на клиентских машинах, естественно, должен иметься правильный драйвер принтера.&lt;br /&gt;
&lt;br /&gt;
==Запрягаем базу данных==&lt;br /&gt;
Ваш собственный сервер баз данных MySQL в подкрепление к OpenOffice.org Base.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы сэкономить деньги на хостинге баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить прочную основу для графических систем баз данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы наконец изучить SQL.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Баз данных в мире заметно больше, чем web-серверов. Они гораздо дольше окружают нас, содержат на порядок больше данных и поставляют больше критичных сервисов, чем все прочие. а почему бы вам не завести собственную базу данных? В отличие от серверов Samba и Apache, серверы баз данных не гонятся за славой – запустите такой, и он будет сидеть себе потихоньку в фоновом режиме, дожидаясь запроса.&lt;br /&gt;
&lt;br /&gt;
Web-хостыеры обычно предоставляют базы данных весьма скромных размеров (заполучить 100 мБ считается удачей) – вот вам и повод сделать сервер самому. Потратив некоторое время на освоение SQL, вы сможете настроить ваш сервер и запросто предоставлять его также и вашим друзьям. &lt;br /&gt;
&lt;br /&gt;
===Ваше руководство по установке===&lt;br /&gt;
Мы продемонстрируем вам, как настроить сервер MySQL. MySQL 5.0 имеется на нашем диске, так что скопируйте его, распакуйте и перейдите в созданный каталог, где выполните ./configure --prefix=/usr/local/mysql, затем make, переключитесь в режим root, и наконец, запустите make install. теперь перейдите в каталог /usr/local/mysql, выполните там команду bin/mysql_install_db, затем chown -R mysql var. Итак, MySQL установлена. Выполните команду bin/mysqld_safe &amp;amp;, чтобы запустить ваш MySQL-сервер.&lt;br /&gt;
&lt;br /&gt;
По умолчанию MySQL не устанавливает пароль для своего суперпользователя, так что вам нужно ввести несколько команд от имени непривилегированного пользователя:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим на сервер&lt;br /&gt;
 /usr/loca/mysql/bin/mysql -u root mysql&lt;br /&gt;
 # зададим пароль для root — желательно, чтоб угадать его было нелегко!&lt;br /&gt;
 UPDATE user SET Pasword =&lt;br /&gt;
 PASSWORD(‘frosties’) WHERE User = ‘root’;&lt;br /&gt;
 # Создайте базу данных, которая нам понадобится в дальнейшем&lt;br /&gt;
 CREATE DATABASE lxfdb;&lt;br /&gt;
 # Добавьте учетную запись непривилегированного пользователя&lt;br /&gt;
 INSERT INTO user (Host, User, Password)&lt;br /&gt;
 VALUES (‘localhost’, ‘lxf’,&lt;br /&gt;
 PASSWORD(‘orangutan’));&lt;br /&gt;
 # Предоставьте новому пользователю доступ к созданной базе данных&lt;br /&gt;
 GRANT ALL PRIVILEGES ON lxfdb.* TO lxf;&lt;br /&gt;
 # Обновите привилегии MySQL &lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 # Выйдите из MySQL; негоже лазить везде с правами root&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы вернулись к нашей командной строке, теперь осталось убедиться, что новая учётная запись работает. Введите:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим под именем нашего пользователя&lt;br /&gt;
 /usr/local/bysql/bin/mysql -u lxf -p lxfdb&lt;br /&gt;
 # Посмотрим список имеющихся таблиц (пока у нас ничего нет)&lt;br /&gt;
 SHOW TABLES;&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, значит, учётная запись создалась нормально.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать учётные записи ещё для кого-нибудь, просто повторите команду INSERT INTO, замените имя пользователя и пароль новыми значениями, плюс установите значение Host в «%» (предоставление доступа к локальному хосту извне с удаленных хостов). Вы можете создать сколько угодно баз данных и предоставлять пользователям различные уровни доступа. MySQL работает на порту 3306, так что вам нужно будет открыть доступ к нему на вашем брандмауэре, чтобы другие могли подключаться беспрепятственно.&lt;br /&gt;
&lt;br /&gt;
===Жизнь-служение===&lt;br /&gt;
По общему признанию, серверы баз данных не богаты приложениями, преимуществами которых можно воспользоваться прямо с ходу, но некоторые всё же существуют. Например, можно настроить OpenOffice.org Base на взаимодействие с вашим новым сервером для всех её баз данных – вы получите ту же самую дружественную оболочку, но надёжно подкрепленную прекрасно масштабируемым MySQL.&lt;br /&gt;
&lt;br /&gt;
Если душа просит чего-то более «продвинутого», то как насчет возможности доступа к вашим данным из любой точки? Лучше всего вооружиться программой типа PhpMyAdmin: это основанный на PHP инструмент администрирования MySQL-сервера, позволяющий вам создавать данные и управлять ими через Интернет. Будьте осторожны с правами доступа; лучше всего установить отдельную копию phpMyAdmin для каждого пользователя, чтобы быть уверенным в надлежащем разграничении прав.&lt;br /&gt;
&lt;br /&gt;
Многие скрипты используют MySQL для хранения своих данных (wiki и дневники, пожалуй, наиболее яркие представители), но, бесспорно, лучшее применение MySQL – это разработка собственных PHP-скриптов на базе MySQL.&lt;br /&gt;
&lt;br /&gt;
===Межсетевые экраны===&lt;br /&gt;
Запуская собственный сервер, вы вынуждены «продырявить» свой брандмауэр (firewall), чтобы ваш интернет-сервис мог работать, потому что брандмауэр зачастую блокирует все   входящие соединения – беспрепятственно проходят только исходящие.&lt;br /&gt;
&lt;br /&gt;
Чтобы открыть порт на вашем брандмауэре для какого-либо сервера, например, Apache   (HTTP), вам нужно сначала узнать, какой порт и протокол этот сервер использует. Эту информацию обычно можно найти в документации сервера; пригодится также наша небольшая таблица. &lt;br /&gt;
&lt;br /&gt;
И SUSE, и Mandriva используют собственные инструменты настройки брандмауэра, доступные из панели управления. В SUSE, например, откройте Yast, выберите «Security and Users» и щелкните на кнопку «Firewall». Появится новое окно, и для открытия порта просто щелкните на вкладку «Allowed Services» слева. SUSE поставляется с несколькими предварительно настроенными сервисами, которые можно просто выбрать из выпадающего меню «Services to Allow», либо добавить ваш собственный, щёлкнув по кнопке «Advanced». Если вы предпочитаете действовать самостоятельно, то Guarddog (http://www.simonzone.com/software/guarddog) – прекрасная графическая оболочка для настройки вашего брандмауэра.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; &lt;br /&gt;
 !bgcolor=#CCCCFF| Сервис ||bgcolor=#CCCCFF| Протокол||bgcolor=#CCCCFF|Порт&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |SSH||TCP||22&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |HTTP||TCP||80&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |Squid||UDP, TCP||3128, 3130&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Общайтесь при помощи Jabber==&lt;br /&gt;
&lt;br /&gt;
Соберите друзей поболтать через ваш личный сервер обмена мгновенными сообщениями.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-17T01:32:03Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Запрягаем базу данных */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;br /&gt;
&lt;br /&gt;
==Строим файловое хранилище на Samba==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы получить доступ к своим файлам с любого ПК в сети.&lt;br /&gt;
&lt;br /&gt;
Чтобы предоставить ваш принтер в общее пользование.&lt;br /&gt;
&lt;br /&gt;
Чтобы упростить создание резервных копий.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* http://www.samba.org/samba/docs/man/Samba-hOWTO-Collection&lt;br /&gt;
* http://hr.uoregon.edu/decidrl/samba.html&lt;br /&gt;
* http://samba.anu.edu.au/cifs/docs/what-is-smb.html&lt;br /&gt;
* ftp://ftp.samba.org/pub/samba/docs/Samba24hc13.pdf&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Совместное проживание OS X, Windows и Linux – дурдом? только не при Samba.&lt;br /&gt;
&lt;br /&gt;
Наиболее частая операция, выполняемая в небольших или домашних сетях – обобществление ресурсов. Общим может быть подключение к Интернету или что-нибудь попроще – например, принтер или вообще файл. Прежде чем рассылать 5 мБ-документы по всему дому через Gmail, подумайте о безопасной и простой альтернативе – вашем собственном файловом сервере.&lt;br /&gt;
&lt;br /&gt;
Есть несколько способов создать его в Linux, но, вероятно, простейший и самый надежный способ – это использование ''Samba''. Ко всему прочему, Samba поддерживает протокол SMB, который используется в сетях Windows для предоставления файлов в общий доступ – так что вы сможете работать с общими файлами не только на Linux-машинах, но и на Windows, и на Mac!&lt;br /&gt;
&lt;br /&gt;
===Здравствуй, Samba!===&lt;br /&gt;
&lt;br /&gt;
Наилучший способ установить Samba на ваш Linux-компьютер – это воспользоваться пакетами, включенными в ваш дистрибутив: Samba имеется в любом дистрибутиве, претендующем на популярность. Итак, пусть ваш менеджер пакетов отыщет и установит соответствующие программы. многие дистрибутивы разделяют клиентское и серверное ПО – убедитесь, что установлено и то, и другое. На «чистом» сервере клиент, конечно, не обязателен, но он пригодится для тестирования.&lt;br /&gt;
&lt;br /&gt;
После установки настает время создать конфигурационный файл. Пакет Samba обычно снабжен файлом настроек по умолчанию, и достаточно лишь слегка подправить его. Впрочем, вы можете начать и с нуля. Краткий пример показывает, как мало этому файлу надо (кстати, его имя – /etc/samba/smb.conf):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = LINUX&lt;br /&gt;
 netbios name = MYSHARE&lt;br /&gt;
 &lt;br /&gt;
 [share1]&lt;br /&gt;
 path = /tmp&lt;br /&gt;
 [share2]&lt;br /&gt;
 path = /share&lt;br /&gt;
 comment = Some random files&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция '''global''' обязательна и определяет имя рабочей группы (используется в Windows для объединения общих файлов — группировки ресурсов) и имя NetBIOS, под этим именем ваш сервер будет фигурировать на других компьютерах. По умолчанию берется имя вашего хоста (hostname).&lt;br /&gt;
&lt;br /&gt;
Секции '''share''' в приведённом примере – это имена общих папок [частенько называемых «шарами», – прим. ред.], которые обслуживаются данной машиной. Опции не ограничиваются простой ссылкой на каталог. Вы можете допустить к общим папкам только лиц из определенного круга или даже сделать список файлов невидимым для неавторизованных пользователей. За дополнительной информацией обращайтесь к демонстрационному конфигурационному файлу или врезке «Полезные ссылки».&lt;br /&gt;
&lt;br /&gt;
Наконец, для запуска сервера выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вероятно, вам захочется, чтобы этот сервис сам активизировался при каждой перезагрузке, так что либо вручную свяжите его с runlevel, либо включите в конфигурацию загрузки компьютера. Используйте для этого инструменты вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
В Linux, вы теперь можете монтировать общие каталоги и сетевые ресурсы, используя команду smbmount, или обычную mount с ключом '''-t cifs''' (smbfs уже устарела, пользуйтесь cifs):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount //HOSTNAME/sharename /mnt/share -t cifs -o user&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Windows и Mac вы можете использовать обычные сетевые инструменты. &lt;br /&gt;
&lt;br /&gt;
===Кое-что о принтере===&lt;br /&gt;
Помните, мы вскользь отметили, что в общее пользование часто предоставляется принтер? Конфигурационный файл Samba и с этим способен справиться, причем несколькими способами, в зависимости от того, работает ли у вас CUPS (Common Unix Printing System) и сколько у вас принтеров. мы будем иметь дело с простым сценарием, без CUPS (хотя CUPS, между прочим, тоже присутствует во многих дистрибутивах Linux, и это лучший способ управлять принтерами в Linux). CUPS тоже мог бы настроить сетевую печать, но раз уж запущен Samba, то проще поддерживать один набор файлов.&lt;br /&gt;
&lt;br /&gt;
Обычно файл '''smb.conf''', устанавливаемый по умолчанию, содержит следующие строки (проверьте, что они раскомментированы, т.е. символы «#» есть только там, где показано):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = All Printers&lt;br /&gt;
 path = /var/spool/samba&lt;br /&gt;
 browseable = no&lt;br /&gt;
 # чтобы разрешить «гостевой» доступ к печати&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
 printable = yes&lt;br /&gt;
 create mode = 0700&lt;br /&gt;
 #=============================&lt;br /&gt;
 # команда печати, подробности см. выше&lt;br /&gt;
 #=============================&lt;br /&gt;
 print command = lpr-cups -P %p -o raw %s -r&lt;br /&gt;
 # используются драйверы печати на  стороне пользователя&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот код, в общем-то, разрешает пользоваться принтерами всем. Но бывают обстоятельства, когда лучше позаботиться, чтобы на принтер покушались только штатные пользователи – в этом случае просто замените строку «''guest ok = yes''» на «''guest ok = no''».&lt;br /&gt;
&lt;br /&gt;
Данные настройки всего лишь позволяют передавать данные – на клиентских машинах, естественно, должен иметься правильный драйвер принтера.&lt;br /&gt;
&lt;br /&gt;
==Запрягаем базу данных==&lt;br /&gt;
Ваш собственный сервер баз данных MySQL в подкрепление к OpenOffice.org Base.&lt;br /&gt;
&lt;br /&gt;
Баз данных в мире заметно больше, чем web-серверов. Они гораздо дольше окружают нас, содержат на порядок больше данных и поставляют больше критичных сервисов, чем все прочие. а почему бы вам не завести собственную базу данных? В отличие от серверов Samba и Apache, серверы баз данных не гонятся за славой – запустите такой, и он будет сидеть себе потихоньку в фоновом режиме, дожидаясь запроса.&lt;br /&gt;
&lt;br /&gt;
Web-хостыеры обычно предоставляют базы данных весьма скромных размеров (заполучить 100 мБ считается удачей) – вот вам и повод сделать сервер самому. Потратив некоторое время на освоение SQL, вы сможете настроить ваш сервер и запросто предоставлять его также и вашим друзьям. &lt;br /&gt;
&lt;br /&gt;
===Ваше руководство по установке===&lt;br /&gt;
Мы продемонстрируем вам, как настроить сервер MySQL. MySQL 5.0 имеется на нашем диске, так что скопируйте его, распакуйте и перейдите в созданный каталог, где выполните ./configure --prefix=/usr/local/mysql, затем make, переключитесь в режим root, и наконец, запустите make install. теперь перейдите в каталог /usr/local/mysql, выполните там команду bin/mysql_install_db, затем chown -R mysql var. Итак, MySQL установлена. Выполните команду bin/mysqld_safe &amp;amp;, чтобы запустить ваш MySQL-сервер.&lt;br /&gt;
&lt;br /&gt;
По умолчанию MySQL не устанавливает пароль для своего суперпользователя, так что вам нужно ввести несколько команд от имени непривилегированного пользователя:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим на сервер&lt;br /&gt;
 /usr/loca/mysql/bin/mysql -u root mysql&lt;br /&gt;
 # зададим пароль для root — желательно, чтоб угадать его было нелегко!&lt;br /&gt;
 UPDATE user SET Pasword =&lt;br /&gt;
 PASSWORD(‘frosties’) WHERE User = ‘root’;&lt;br /&gt;
 # Создайте базу данных, которая нам понадобится в дальнейшем&lt;br /&gt;
 CREATE DATABASE lxfdb;&lt;br /&gt;
 # Добавьте учетную запись непривилегированного пользователя&lt;br /&gt;
 INSERT INTO user (Host, User, Password)&lt;br /&gt;
 VALUES (‘localhost’, ‘lxf’,&lt;br /&gt;
 PASSWORD(‘orangutan’));&lt;br /&gt;
 # Предоставьте новому пользователю доступ к созданной базе данных&lt;br /&gt;
 GRANT ALL PRIVILEGES ON lxfdb.* TO lxf;&lt;br /&gt;
 # Обновите привилегии MySQL &lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 # Выйдите из MySQL; негоже лазить везде с правами root&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы вернулись к нашей командной строке, теперь осталось убедиться, что новая учётная запись работает. Введите:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # Входим под именем нашего пользователя&lt;br /&gt;
 /usr/local/bysql/bin/mysql -u lxf -p lxfdb&lt;br /&gt;
 # Посмотрим список имеющихся таблиц (пока у нас ничего нет)&lt;br /&gt;
 SHOW TABLES;&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, значит, учётная запись создалась нормально.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать учётные записи ещё для кого-нибудь, просто повторите команду INSERT INTO, замените имя пользователя и пароль новыми значениями, плюс установите значение Host в «%» (предоставление доступа к локальному хосту извне с удаленных хостов). Вы можете создать сколько угодно баз данных и предоставлять пользователям различные уровни доступа. MySQL работает на порту 3306, так что вам нужно будет открыть доступ к нему на вашем брандмауэре, чтобы другие могли подключаться беспрепятственно.&lt;br /&gt;
&lt;br /&gt;
===Жизнь-служение===&lt;br /&gt;
По общему признанию, серверы баз данных не богаты приложениями, преимуществами которых можно воспользоваться прямо с ходу, но некоторые всё же существуют. Например, можно настроить OpenOffice.org Base на взаимодействие с вашим новым сервером для всех её баз данных – вы получите ту же самую дружественную оболочку, но надёжно подкрепленную прекрасно масштабируемым MySQL.&lt;br /&gt;
&lt;br /&gt;
Если душа просит чего-то более «продвинутого», то как насчет возможности доступа к вашим данным из любой точки? Лучше всего вооружиться программой типа PhpMyAdmin: это основанный на PHP инструмент администрирования MySQL-сервера, позволяющий вам создавать данные и управлять ими через Интернет. Будьте осторожны с правами доступа; лучше всего установить отдельную копию phpMyAdmin для каждого пользователя, чтобы быть уверенным в надлежащем разграничении прав.&lt;br /&gt;
&lt;br /&gt;
Многие скрипты используют MySQL для хранения своих данных (wiki и дневники, пожалуй, наиболее яркие представители), но, бесспорно, лучшее применение MySQL – это разработка собственных PHP-скриптов на базе MySQL.&lt;br /&gt;
&lt;br /&gt;
===Межсетевые экраны===&lt;br /&gt;
Запуская собственный сервер, вы вынуждены «продырявить» свой брандмауэр (firewall), чтобы ваш интернет-сервис мог работать, потому что брандмауэр зачастую блокирует все   входящие соединения – беспрепятственно проходят только исходящие.&lt;br /&gt;
&lt;br /&gt;
Чтобы открыть порт на вашем брандмауэре для какого-либо сервера, например, Apache   (HTTP), вам нужно сначала узнать, какой порт и протокол этот сервер использует. Эту информацию обычно можно найти в документации сервера; пригодится также наша небольшая таблица. &lt;br /&gt;
&lt;br /&gt;
И SUSE, и Mandriva используют собственные инструменты настройки брандмауэра, доступные из панели управления. В SUSE, например, откройте Yast, выберите «Security and Users» и щелкните на кнопку «Firewall». Появится новое окно, и для открытия порта просто щелкните на вкладку «Allowed Services» слева. SUSE поставляется с несколькими предварительно настроенными сервисами, которые можно просто выбрать из выпадающего меню «Services to Allow», либо добавить ваш собственный, щёлкнув по кнопке «Advanced». Если вы предпочитаете действовать самостоятельно, то Guarddog (http://www.simonzone.com/software/guarddog) – прекрасная графическая оболочка для настройки вашего брандмауэра.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot; &lt;br /&gt;
 !bgcolor=#CCCCFF| Сервис ||bgcolor=#CCCCFF| Протокол||bgcolor=#CCCCFF|Порт&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |SSH||TCP||22&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |HTTP||TCP||80&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 |Squid||UDP, TCP||3128, 3130&lt;br /&gt;
 |}&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-08T01:59:25Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Строим файловое хранилище на Samba */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;br /&gt;
&lt;br /&gt;
==Строим файловое хранилище на Samba==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы получить доступ к своим файлам с любого ПК в сети.&lt;br /&gt;
&lt;br /&gt;
Чтобы предоставить ваш принтер в общее пользование.&lt;br /&gt;
&lt;br /&gt;
Чтобы упростить создание резервных копий.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
* http://www.samba.org/samba/docs/man/Samba-hOWTO-Collection&lt;br /&gt;
* http://hr.uoregon.edu/decidrl/samba.html&lt;br /&gt;
* http://samba.anu.edu.au/cifs/docs/what-is-smb.html&lt;br /&gt;
* ftp://ftp.samba.org/pub/samba/docs/Samba24hc13.pdf&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Совместное проживание OS X, Windows и Linux – дурдом? только не при Samba.&lt;br /&gt;
&lt;br /&gt;
Наиболее частая операция, выполняемая в небольших или домашних сетях – обобществление ресурсов. Общим может быть подключение к Интернету или что-нибудь попроще – например, принтер или вообще файл. Прежде чем рассылать 5 мБ-документы по всему дому через Gmail, подумайте о безопасной и простой альтернативе – вашем собственном файловом сервере.&lt;br /&gt;
&lt;br /&gt;
Есть несколько способов создать его в Linux, но, вероятно, простейший и самый надежный способ – это использование ''Samba''. Ко всему прочему, Samba поддерживает протокол SMB, который используется в сетях Windows для предоставления файлов в общий доступ – так что вы сможете работать с общими файлами не только на Linux-машинах, но и на Windows, и на Mac!&lt;br /&gt;
&lt;br /&gt;
===Здравствуй, Samba!===&lt;br /&gt;
&lt;br /&gt;
Наилучший способ установить Samba на ваш Linux-компьютер – это воспользоваться пакетами, включенными в ваш дистрибутив: Samba имеется в любом дистрибутиве, претендующем на популярность. Итак, пусть ваш менеджер пакетов отыщет и установит соответствующие программы. многие дистрибутивы разделяют клиентское и серверное ПО – убедитесь, что установлено и то, и другое. На «чистом» сервере клиент, конечно, не обязателен, но он пригодится для тестирования.&lt;br /&gt;
&lt;br /&gt;
После установки настает время создать конфигурационный файл. Пакет Samba обычно снабжен файлом настроек по умолчанию, и достаточно лишь слегка подправить его. Впрочем, вы можете начать и с нуля. Краткий пример показывает, как мало этому файлу надо (кстати, его имя – /etc/samba/smb.conf):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = LINUX&lt;br /&gt;
 netbios name = MYSHARE&lt;br /&gt;
 &lt;br /&gt;
 [share1]&lt;br /&gt;
 path = /tmp&lt;br /&gt;
 [share2]&lt;br /&gt;
 path = /share&lt;br /&gt;
 comment = Some random files&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция '''global''' обязательна и определяет имя рабочей группы (используется в Windows для объединения общих файлов — группировки ресурсов) и имя NetBIOS, под этим именем ваш сервер будет фигурировать на других компьютерах. По умолчанию берется имя вашего хоста (hostname).&lt;br /&gt;
&lt;br /&gt;
Секции '''share''' в приведённом примере – это имена общих папок [частенько называемых «шарами», – прим. ред.], которые обслуживаются данной машиной. Опции не ограничиваются простой ссылкой на каталог. Вы можете допустить к общим папкам только лиц из определенного круга или даже сделать список файлов невидимым для неавторизованных пользователей. За дополнительной информацией обращайтесь к демонстрационному конфигурационному файлу или врезке «Полезные ссылки».&lt;br /&gt;
&lt;br /&gt;
Наконец, для запуска сервера выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вероятно, вам захочется, чтобы этот сервис сам активизировался при каждой перезагрузке, так что либо вручную свяжите его с runlevel, либо включите в конфигурацию загрузки компьютера. Используйте для этого инструменты вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
В Linux, вы теперь можете монтировать общие каталоги и сетевые ресурсы, используя команду smbmount, или обычную mount с ключом '''-t cifs''' (smbfs уже устарела, пользуйтесь cifs):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount //HOSTNAME/sharename /mnt/share -t cifs -o user&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Windows и Mac вы можете использовать обычные сетевые инструменты. &lt;br /&gt;
&lt;br /&gt;
===Кое-что о принтере===&lt;br /&gt;
Помните, мы вскользь отметили, что в общее пользование часто предоставляется принтер? Конфигурационный файл Samba и с этим способен справиться, причем несколькими способами, в зависимости от того, работает ли у вас CUPS (Common Unix Printing System) и сколько у вас принтеров. мы будем иметь дело с простым сценарием, без CUPS (хотя CUPS, между прочим, тоже присутствует во многих дистрибутивах Linux, и это лучший способ управлять принтерами в Linux). CUPS тоже мог бы настроить сетевую печать, но раз уж запущен Samba, то проще поддерживать один набор файлов.&lt;br /&gt;
&lt;br /&gt;
Обычно файл '''smb.conf''', устанавливаемый по умолчанию, содержит следующие строки (проверьте, что они раскомментированы, т.е. символы «#» есть только там, где показано):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = All Printers&lt;br /&gt;
 path = /var/spool/samba&lt;br /&gt;
 browseable = no&lt;br /&gt;
 # чтобы разрешить «гостевой» доступ к печати&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
 printable = yes&lt;br /&gt;
 create mode = 0700&lt;br /&gt;
 #=============================&lt;br /&gt;
 # команда печати, подробности см. выше&lt;br /&gt;
 #=============================&lt;br /&gt;
 print command = lpr-cups -P %p -o raw %s -r&lt;br /&gt;
 # используются драйверы печати на  стороне пользователя&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот код, в общем-то, разрешает пользоваться принтерами всем. Но бывают обстоятельства, когда лучше позаботиться, чтобы на принтер покушались только штатные пользователи – в этом случае просто замените строку «''guest ok = yes''» на «''guest ok = no''».&lt;br /&gt;
&lt;br /&gt;
Данные настройки всего лишь позволяют передавать данные – на клиентских машинах, естественно, должен иметься правильный драйвер принтера.&lt;br /&gt;
&lt;br /&gt;
==Запрягаем базу данных==&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-08T01:56:55Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Здравствуй, Samba! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;br /&gt;
&lt;br /&gt;
==Строим файловое хранилище на Samba==&lt;br /&gt;
&lt;br /&gt;
Совместное проживание OS X, Windows и Linux – дурдом? только не при Samba.&lt;br /&gt;
&lt;br /&gt;
Наиболее частая операция, выполняемая в небольших или домашних сетях – обобществление ресурсов. Общим может быть подключение к Интернету или что-нибудь попроще – например, принтер или вообще файл. Прежде чем рассылать 5 мБ-документы по всему дому через Gmail, подумайте о безопасной и простой альтернативе – вашем собственном файловом сервере.&lt;br /&gt;
&lt;br /&gt;
Есть несколько способов создать его в Linux, но, вероятно, простейший и самый надежный способ – это использование ''Samba''. Ко всему прочему, Samba поддерживает протокол SMB, который используется в сетях Windows для предоставления файлов в общий доступ – так что вы сможете работать с общими файлами не только на Linux-машинах, но и на Windows, и на Mac!&lt;br /&gt;
&lt;br /&gt;
===Здравствуй, Samba!===&lt;br /&gt;
&lt;br /&gt;
Наилучший способ установить Samba на ваш Linux-компьютер – это воспользоваться пакетами, включенными в ваш дистрибутив: Samba имеется в любом дистрибутиве, претендующем на популярность. Итак, пусть ваш менеджер пакетов отыщет и установит соответствующие программы. многие дистрибутивы разделяют клиентское и серверное ПО – убедитесь, что установлено и то, и другое. На «чистом» сервере клиент, конечно, не обязателен, но он пригодится для тестирования.&lt;br /&gt;
&lt;br /&gt;
После установки настает время создать конфигурационный файл. Пакет Samba обычно снабжен файлом настроек по умолчанию, и достаточно лишь слегка подправить его. Впрочем, вы можете начать и с нуля. Краткий пример показывает, как мало этому файлу надо (кстати, его имя – /etc/samba/smb.conf):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = LINUX&lt;br /&gt;
 netbios name = MYSHARE&lt;br /&gt;
 &lt;br /&gt;
 [share1]&lt;br /&gt;
 path = /tmp&lt;br /&gt;
 [share2]&lt;br /&gt;
 path = /share&lt;br /&gt;
 comment = Some random files&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция '''global''' обязательна и определяет имя рабочей группы (используется в Windows для объединения общих файлов — группировки ресурсов) и имя NetBIOS, под этим именем ваш сервер будет фигурировать на других компьютерах. По умолчанию берется имя вашего хоста (hostname).&lt;br /&gt;
&lt;br /&gt;
Секции '''share''' в приведённом примере – это имена общих папок [частенько называемых «шарами», – прим. ред.], которые обслуживаются данной машиной. Опции не ограничиваются простой ссылкой на каталог. Вы можете допустить к общим папкам только лиц из определенного круга или даже сделать список файлов невидимым для неавторизованных пользователей. За дополнительной информацией обращайтесь к демонстрационному конфигурационному файлу или врезке «Полезные ссылки».&lt;br /&gt;
&lt;br /&gt;
Наконец, для запуска сервера выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вероятно, вам захочется, чтобы этот сервис сам активизировался при каждой перезагрузке, так что либо вручную свяжите его с runlevel, либо включите в конфигурацию загрузки компьютера. Используйте для этого инструменты вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
В Linux, вы теперь можете монтировать общие каталоги и сетевые ресурсы, используя команду smbmount, или обычную mount с ключом '''-t cifs''' (smbfs уже устарела, пользуйтесь cifs):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount //HOSTNAME/sharename /mnt/share -t cifs -o user&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Windows и Mac вы можете использовать обычные сетевые инструменты. &lt;br /&gt;
&lt;br /&gt;
===Кое-что о принтере===&lt;br /&gt;
Помните, мы вскользь отметили, что в общее пользование часто предоставляется принтер? Конфигурационный файл Samba и с этим способен справиться, причем несколькими способами, в зависимости от того, работает ли у вас CUPS (Common Unix Printing System) и сколько у вас принтеров. мы будем иметь дело с простым сценарием, без CUPS (хотя CUPS, между прочим, тоже присутствует во многих дистрибутивах Linux, и это лучший способ управлять принтерами в Linux). CUPS тоже мог бы настроить сетевую печать, но раз уж запущен Samba, то проще поддерживать один набор файлов.&lt;br /&gt;
&lt;br /&gt;
Обычно файл '''smb.conf''', устанавливаемый по умолчанию, содержит следующие строки (проверьте, что они раскомментированы, т.е. символы «#» есть только там, где показано):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = All Printers&lt;br /&gt;
 path = /var/spool/samba&lt;br /&gt;
 browseable = no&lt;br /&gt;
 # чтобы разрешить «гостевой» доступ к печати&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
 printable = yes&lt;br /&gt;
 create mode = 0700&lt;br /&gt;
 #=============================&lt;br /&gt;
 # команда печати, подробности см. выше&lt;br /&gt;
 #=============================&lt;br /&gt;
 print command = lpr-cups -P %p -o raw %s -r&lt;br /&gt;
 # используются драйверы печати на  стороне пользователя&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот код, в общем-то, разрешает пользоваться принтерами всем. Но бывают обстоятельства, когда лучше позаботиться, чтобы на принтер покушались только штатные пользователи – в этом случае просто замените строку «''guest ok = yes''» на «''guest ok = no''».&lt;br /&gt;
&lt;br /&gt;
Данные настройки всего лишь позволяют передавать данные – на клиентских машинах, естественно, должен иметься правильный драйвер принтера.&lt;br /&gt;
&lt;br /&gt;
==Запрягаем базу данных==&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-08T01:56:24Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Запустите web-сервер */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;br /&gt;
&lt;br /&gt;
==Строим файловое хранилище на Samba==&lt;br /&gt;
&lt;br /&gt;
Совместное проживание OS X, Windows и Linux – дурдом? только не при Samba.&lt;br /&gt;
&lt;br /&gt;
Наиболее частая операция, выполняемая в небольших или домашних сетях – обобществление ресурсов. Общим может быть подключение к Интернету или что-нибудь попроще – например, принтер или вообще файл. Прежде чем рассылать 5 мБ-документы по всему дому через Gmail, подумайте о безопасной и простой альтернативе – вашем собственном файловом сервере.&lt;br /&gt;
&lt;br /&gt;
Есть несколько способов создать его в Linux, но, вероятно, простейший и самый надежный способ – это использование ''Samba''. Ко всему прочему, Samba поддерживает протокол SMB, который используется в сетях Windows для предоставления файлов в общий доступ – так что вы сможете работать с общими файлами не только на Linux-машинах, но и на Windows, и на Mac!&lt;br /&gt;
&lt;br /&gt;
==Здравствуй, Samba!==&lt;br /&gt;
&lt;br /&gt;
Наилучший способ установить Samba на ваш Linux-компьютер – это воспользоваться пакетами, включенными в ваш дистрибутив: Samba имеется в любом дистрибутиве, претендующем на популярность. Итак, пусть ваш менеджер пакетов отыщет и установит соответствующие программы. многие дистрибутивы разделяют клиентское и серверное ПО – убедитесь, что установлено и то, и другое. На «чистом» сервере клиент, конечно, не обязателен, но он пригодится для тестирования.&lt;br /&gt;
&lt;br /&gt;
После установки настает время создать конфигурационный файл. Пакет Samba обычно снабжен файлом настроек по умолчанию, и достаточно лишь слегка подправить его. Впрочем, вы можете начать и с нуля. Краткий пример показывает, как мало этому файлу надо (кстати, его имя – /etc/samba/smb.conf):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = LINUX&lt;br /&gt;
 netbios name = MYSHARE&lt;br /&gt;
 &lt;br /&gt;
 [share1]&lt;br /&gt;
 path = /tmp&lt;br /&gt;
 [share2]&lt;br /&gt;
 path = /share&lt;br /&gt;
 comment = Some random files&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция '''global''' обязательна и определяет имя рабочей группы (используется в Windows для объединения общих файлов — группировки ресурсов) и имя NetBIOS, под этим именем ваш сервер будет фигурировать на других компьютерах. По умолчанию берется имя вашего хоста (hostname).&lt;br /&gt;
&lt;br /&gt;
Секции '''share''' в приведённом примере – это имена общих папок [частенько называемых «шарами», – прим. ред.], которые обслуживаются данной машиной. Опции не ограничиваются простой ссылкой на каталог. Вы можете допустить к общим папкам только лиц из определенного круга или даже сделать список файлов невидимым для неавторизованных пользователей. За дополнительной информацией обращайтесь к демонстрационному конфигурационному файлу или врезке «Полезные ссылки».&lt;br /&gt;
&lt;br /&gt;
Наконец, для запуска сервера выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вероятно, вам захочется, чтобы этот сервис сам активизировался при каждой перезагрузке, так что либо вручную свяжите его с runlevel, либо включите в конфигурацию загрузки компьютера. Используйте для этого инструменты вашего дистрибутива.&lt;br /&gt;
&lt;br /&gt;
В Linux, вы теперь можете монтировать общие каталоги и сетевые ресурсы, используя команду smbmount, или обычную mount с ключом '''-t cifs''' (smbfs уже устарела, пользуйтесь cifs):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount //HOSTNAME/sharename /mnt/share -t cifs -o user&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В Windows и Mac вы можете использовать обычные сетевые инструменты. &lt;br /&gt;
&lt;br /&gt;
===Кое-что о принтере===&lt;br /&gt;
Помните, мы вскользь отметили, что в общее пользование часто предоставляется принтер? Конфигурационный файл Samba и с этим способен справиться, причем несколькими способами, в зависимости от того, работает ли у вас CUPS (Common Unix Printing System) и сколько у вас принтеров. мы будем иметь дело с простым сценарием, без CUPS (хотя CUPS, между прочим, тоже присутствует во многих дистрибутивах Linux, и это лучший способ управлять принтерами в Linux). CUPS тоже мог бы настроить сетевую печать, но раз уж запущен Samba, то проще поддерживать один набор файлов.&lt;br /&gt;
&lt;br /&gt;
Обычно файл '''smb.conf''', устанавливаемый по умолчанию, содержит следующие строки (проверьте, что они раскомментированы, т.е. символы «#» есть только там, где показано):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = All Printers&lt;br /&gt;
 path = /var/spool/samba&lt;br /&gt;
 browseable = no&lt;br /&gt;
 # чтобы разрешить «гостевой» доступ к печати&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 writable = no&lt;br /&gt;
 printable = yes&lt;br /&gt;
 create mode = 0700&lt;br /&gt;
 #=============================&lt;br /&gt;
 # команда печати, подробности см. выше&lt;br /&gt;
 #=============================&lt;br /&gt;
 print command = lpr-cups -P %p -o raw %s -r&lt;br /&gt;
 # используются драйверы печати на  стороне пользователя&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот код, в общем-то, разрешает пользоваться принтерами всем. Но бывают обстоятельства, когда лучше позаботиться, чтобы на принтер покушались только штатные пользователи – в этом случае просто замените строку «''guest ok = yes''» на «''guest ok = no''».&lt;br /&gt;
&lt;br /&gt;
Данные настройки всего лишь позволяют передавать данные – на клиентских машинах, естественно, должен иметься правильный драйвер принтера. &lt;br /&gt;
&lt;br /&gt;
==Запрягаем базу данных==&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-08T01:39:28Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Запустите web-сервер */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-08T01:38:37Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Запустите web-сервер */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы самостоятельно размещать сайт.&lt;br /&gt;
&lt;br /&gt;
Чтобы при поддержке PHP создавать динамический контент.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить RSS-каналы, wiki-страницы, форумы и другие компоненты.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-08T01:35:07Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Принимаем гостей */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;br /&gt;
&lt;br /&gt;
===Позаботьтесь о безопасности с nmap===&lt;br /&gt;
&lt;br /&gt;
Представьте себе: вы один из последних представителей свободной человеческой расы, в то время как другие порабощены расой злобных машин и используются в качестве источников питания. вам нужно проникнуть в центральный компьютер, добраться до проводов и рвануться в атаку. Чем вы воспользуетесь? Конечно же, ''Nmap''.&lt;br /&gt;
&lt;br /&gt;
Всё верно: в фильме «''Матрица:Перезагрузка''» Тринити сканирует Матрицу на предмет доступных OpenSSH-серверов и взламывает их, используя реальную уязвимость. Работа Nmap как раз и заключается в сканировании одного или нескольких IP-адресов и выдаче информации о том, какие порты открыты и какие ОС используются. конечно, Nmap нельзя рассматривать только как лучшего друга хакера, ведь это также прекрасный инструмент для анализа вашей собственной сети на предмет возможных уязвимостей.&lt;br /&gt;
&lt;br /&gt;
Eсли вы пробуете всё, что написано в этой статье, то вы установите всевозможные программы, которые открывают порты на вашем компьютерае. Очень важно отслеживать, какие порты открыты, чтобы не запустить какой-то ненужный сервис, а также чтобы вовремя заметить, что в ваш компьютер кто-то нашел лазейку.&lt;br /&gt;
&lt;br /&gt;
Мы включили последнюю версию Nmap в наш диск, так что распакуйте архив, перейдите в полученный каталог и выполните '''./configure''', '''make''', '''su''', затем '''make install''', и можно приступать.&lt;br /&gt;
&lt;br /&gt;
Nmap лучше всего запускать от имени суперпользователя, потому что она использует специальные режимы соединения с TCP/IP-сокетами для обеспечения пика производительности. итак, из-под root запустите следующую простую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 nmap -O localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По этой команде будут просканированы все порты вашей машины и выведен отчет об открытых портах. если вы запустили Apache, вы увидите, что порт 80 находится в состоянии «open» (открыт), и что Nmap сопоставила этот порт с сервисом «http». Изучите весь список, пожалуйста: нет ли незнакомого порта? Сравните вывод с тем, что выдает '''ps aux''', чтобы увидеть, не запущена ли какая-нибудь «приблудная» программа или обычно неиспользуемый сервис. Грамотные администраторы содержат «закрытый» сервер, запретив всё, что не требуется для работы — так безопаснее.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-08T01:27:30Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Добавим скрипты */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|frame|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-08T01:24:59Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Добавим скрипты */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
[[Изображение:Apache-phpinfo.png|thumb|Установка PHP удалась, но этому скрипту рано в отставку: он предоставляет много ценной информации.]]&lt;br /&gt;
&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Apache-phpinfo.png</id>
		<title>Файл:Apache-phpinfo.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Apache-phpinfo.png"/>
				<updated>2008-07-08T01:21:44Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-08T01:15:47Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Запустите web-сервер */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время сборки Apache – теперь можно делать разные замечательные штуки, например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Nano conf/httpd.conf.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Найдите строку ''dav'' и удалите комментарий в начале строки «''#include conf/extra/httpd-dav.conf''». &lt;br /&gt;
&lt;br /&gt;
Выполните следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /usr/local/apache/htdocs&lt;br /&gt;
 mkdir uploads&lt;br /&gt;
 chgrp daemon uploads&lt;br /&gt;
 cd ..&lt;br /&gt;
 bin/htpasswd -c user.passwd admin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Откройте в редакторе файл '''conf/extra/httpd- dav.conf''':&lt;br /&gt;
* Измените DavLockDB на «/tmp/DavLock»&lt;br /&gt;
* Измените /usr/local/apache/uploads на /usr/&lt;br /&gt;
* local/apache/htdocs/uploads&lt;br /&gt;
* Измените AuthType на Basic&lt;br /&gt;
* Измените AuthName с DAV-upload на «My WebDAV Area»&lt;br /&gt;
&lt;br /&gt;
Выполните '''bin/apachectl restart'''&lt;br /&gt;
&lt;br /&gt;
Многие современные операционные системы имеют поддержку WebDAV в ядре, так что сетевые каталоги рассматриваются как локальные. Попробуем это в Gnome. Пройдите в меню ''Places &amp;gt; Connect To Server'' (Переход &amp;gt; Подключение к серверу), выберите тип сервиса WebDAV (HTTP), введите сервер «localhost», папку «uploads», имя пользователя «admin» и «My WebDAV» в качестве имени соединения, затем щелкните на Connect (Соединиться). На ваш рабочий стол будет помещена небольшая иконка; по двойному щелчку на ней у вас будет запрошен пароль, и вы, вероятно, сможете сохранить пароль на время текущей сессии, чтобы не пришлось вводить его заново.&lt;br /&gt;
&lt;br /&gt;
После ввода пароля появится новое окно, открывшееся в ''Nautilus'' – файловом менеджере Gnome. Теперь можно копировать все файлы, какие пожелаете, в это окно; они будут размещаться в каталоге '''htdocs/uploads''' вашей системы. WebDAV обладает замечательным свойством: хотя Nautilus рассматривает его как каталог, но если вы запустите Firefox и укажете http://localhost/uploads, то увидите стандартный листинг каталогов Apache.&lt;br /&gt;
&lt;br /&gt;
===Сетевые календари===&lt;br /&gt;
Теперь попробуем ещё одну интересную возможность: опубликуем в сети календарь с помощью приложения ''Sunbird'', разработанного Mozilla Foundation. Это очень полезно, если вы работаете, скажем, над групповым проектом и хотите, чтобы каждый имел доступ к плану работ. Да мало ли причин, по которым может понадобиться календарь на сервере.&lt;br /&gt;
&lt;br /&gt;
Заберите '''tar.bz2'''-архив с Sunbird с нашего диска и распакуйте его куда-нибудь, затем запустите в этом каталоге команду sunbird. Sunbird может работать и с локальными календарями, публикуя их там, где вы скажете, и с удаленными, автоматически выполняя синхронизацию.&lt;br /&gt;
&lt;br /&gt;
На левой панели найдите вкладку Calendars; выберите её, и увидите локальный «домашний» календарь (Home), приготовленный для вас по умолчанию. Независимо от того, хотите ли вы использовать локальные календари или сетевые, первым делом опубликуем эту заготовку&lt;br /&gt;
в сети.&lt;br /&gt;
&lt;br /&gt;
Щелкните правой кнопкой мыши на Home и выберите Publish entire Calendar (Публиковать весь календарь). В строке адреса, которая появится, введите http://localhost/uploads/mycal.ics и щелкните Publish. Введите имя пользователя «admin» и свой пароль, и ваш (пустой) календарь будет теперь доступен другим для чтения и скачивания.&lt;br /&gt;
&lt;br /&gt;
Теперь заполняйте его событиями. Но это статический календарь, поэтому локально сделанные в нем изменения не отразятся в сети, пока его не опубликуют повторно, что означает лишнюю мороку. Гораздо лучше завести удалённый календарь, так что уничтожьте календарь Home (щёлкните правой кнопкой и выберите Delete Calendar), затем ещё раз нажмите правую кнопку и выберите New Calendar. Выберите remote, затем – WebDAV. Введите http://localhost/uploads/mycal.ics в поле URL, затем щёлкните Next. задайте ему имя, например, «Удаленный календарь», и цвет поинтереснее серого.&lt;br /&gt;
&lt;br /&gt;
===Добавим скрипты===&lt;br /&gt;
WebDAV – очень хороший способ работать с файлами в Сети, но наш web-сервер пока что обслуживает только статические HTML-файлы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfj php-5.1.1.tar.bz2&lt;br /&gt;
 cd php-5.1.1&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache/&lt;br /&gt;
 bin/apxs&lt;br /&gt;
 make&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная последовательность команд добавляет модуль PHP к Apache, но нам ещё нужно подправить файл '''httpd.conf''', чтобы сопоставить .php-файлы с интерпретатором PHP. Переключитесь в режим суперпользователя, выполнив команду '''su – ''', затем откройте '''/usr/local/apache/conf/httpd.conf''' в вашем любимом текстовом редакторе, найдите строки AddType и листайте их до тех пор, пока не увидите «''AddType application/x-compress .Z''». Под существующими строками AddType добавьте ещё одну: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните изменения и выйдите из редактора, затем запустите команду '''/usr/local/apache/bin/apachectl restart'''. Теперь создайте файл info.php в каталоге '''/usr/local/apache/htdocs''' следующего содержания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 	phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё сработало правильно (код-то незатейливый), вы увидите экран, похожий на показанный справа. теперь у вас есть всё для программирования на PHP!&lt;br /&gt;
&lt;br /&gt;
===Принимаем гостей===&lt;br /&gt;
И последнее (но не по значению!): что за радость, если на собственном сервере нельзя выделить местечко для друзей? Не бойтесь, полный доступ им давать необязательно. Apache включает модуль ''mod_userdir'', который позволяет размещать веб-страницы в пользовательских домашних каталогах. Чтобы активизировать mod_userdir, потребуется только одно небольшое изменение: откройте '''httpd.conf''' и удалите комментарий в начале строки «''#include conf/extra/httpd-userdir.conf''».&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache командой '''/usr/local/apache/bin/apachectl restart''' и откройте терминал с правами обычного пользователя. Вы попадёте в свой домашний каталог, например, '''/home/bob'''. Выполните команду '''mkdir public_html''' – она создаст новый каталог, где Apache будет искать вашу домашнюю страницу. Создайте в этом каталоге файл '''index.html''' и поместите в него какой-нибудь комментарий. Теперь, чтобы почитать сайт, мы просто наберём в браузере http://localhost/~username. &lt;br /&gt;
&lt;br /&gt;
Apache предоставляет пользователям все расширения, загруженные ранее, а следовательно, пользователь Bob, если пожелает, сможет использовать PHP-сценарии. Предоставление пользователю web-страницы через пользовательскую учётную запись означает, что пользователи получат полный SSH-доступ для загрузки своих файлов и управления своим пространством, а обо всём остальном позаботится Apache.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-08T00:52:14Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Собственная радиостанция */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;br /&gt;
&lt;br /&gt;
==Запустите web-сервер==&lt;br /&gt;
&lt;br /&gt;
Apache — самый популярный web-сервер в мире. Давайте выясним, почему.&lt;br /&gt;
&lt;br /&gt;
Управление личным веб-сервером обычно считается низшим этапом на пути становления системного администратора, но это не значит, что от него мало пользы. Истина в том, что наибольшее наслаждение от webвеб-сервера приходит не от простой установки Apache и созданиия нескольких HTML-страничек. Настоящее удовольствие – это создание динамических скриптов, включение поддержки WebDAV, «вставка» Wiki и сетевых дневников (blog), чтобы сервер заработал в полную силу.&lt;br /&gt;
&lt;br /&gt;
Мы начнём с компиляции PHP и Apache с нуля, сделаем несколько базовых страничек, затем посмотрим, какие из существующих инструментов можно применить, чтобы добавить нашему сайту изюминку.&lt;br /&gt;
&lt;br /&gt;
===Первые шаги===&lt;br /&gt;
Мы поместили на наш диск архив с Apache 2.2, так что скопируйте его на ваш диск и распакуйте:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvf httpd-2.2.0.tar.bz2&lt;br /&gt;
 cd http-2.2.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливать наш сервер мы будем в '''/usr/local/apache''', так что созданный при распаковке каталог вы сможете его удалить, если он вам станет не нужен. Однако желательно включить поддержку WebDAV и модуля обеспечения параллельных процессов (multi-proccess module, MPM). &lt;br /&gt;
&lt;br /&gt;
Последнее очень важно, ибо ядро PHP и базовые его расширения поддерживают потоки, а, стало быть, замечательно работают в новом потоковом окружении Apache 2.x. Но многие унаследованные сторонние PHP-расширения небезопасны при использовании потоков, и могут вызывать серьёзные проблемы, если ваш Apache использует потоки при обработке запросов. Потребуйте '''mpm=prefork''': тогда гарантируется, что Apache будет работать в режиме совместимости с версией 1.3, и использование расширений будет безопасным.&lt;br /&gt;
&lt;br /&gt;
Чтобы подготовиться к такой установке, выполните следующую конфигурационную команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --prefix=/usr/local/apache --enable-dav --with-mpm=prefork —enable-so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем выполните '''make''', переключитесь в режим суперпользователя и выполните '''make install'''. запустите Apache на 80-м порту (по умолчанию), выполнив команду '''/usr/local/apache/bin/apachectl start''', потом запустите ваш браузер и введите http://localhost. Если всё работает правильно, браузер так и сообщит. &lt;br /&gt;
&lt;br /&gt;
===Поделиться файлами===&lt;br /&gt;
Мы включили поддержку WebDAV во время&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T02:12:49Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Публикуем файлы в BitTorrent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T02:12:19Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Строим трекер */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T02:12:01Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Поделитесь потоком */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=30%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T02:11:31Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Собственная радиостанция */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=30%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=30%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Живите на волне вашей любимой музыки.&lt;br /&gt;
&lt;br /&gt;
Поделитесь своей музыкой и миксами с друзьями.&lt;br /&gt;
&lt;br /&gt;
Размещайте собственные podcast’ы.&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
&lt;br /&gt;
http://xiph.org/vorbis/ -- Vorbis&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Требования&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''libxml2''' http://xmlsoft.org/&lt;br /&gt;
&lt;br /&gt;
'''libxslt''' http://xmlsoft.org/XSLT/&lt;br /&gt;
&lt;br /&gt;
'''curl''' http://curl.haxx.se&lt;br /&gt;
&lt;br /&gt;
'''Ogg Vorbis''' http://xiph.org/vorbis/&lt;br /&gt;
&lt;br /&gt;
'''Ices2''' http://www.icecast.org/ices.php&lt;br /&gt;
&lt;br /&gt;
'''libshout''' http://www.icecast.org/download.php&lt;br /&gt;
&lt;br /&gt;
'''Icecast''' http://www.icecast.org/download.php&lt;br /&gt;
|Ширина=20%}}&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T02:04:31Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Поделитесь потоком */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=30%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Полезные ссылки&lt;br /&gt;
|Содержание=&lt;br /&gt;
http://sourceforge.net/projects/xbnbt – домашняя страница XBNBT.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net – домашняя страница Azureus.&lt;br /&gt;
&lt;br /&gt;
http://azureus.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org&lt;br /&gt;
&lt;br /&gt;
http://xmlsoft.org/XSLT&lt;br /&gt;
&lt;br /&gt;
http://curl.haxx.se&lt;br /&gt;
|Ширина=30%}}&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T02:00:38Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Строим трекер */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Терминология&lt;br /&gt;
|Содержание=&lt;br /&gt;
'''Трекер (tracker)''' – сервер, управляющий распространением файла&lt;br /&gt;
&lt;br /&gt;
'''Сидер (seeder)''' – тот, кто отдает фрагменты файла&lt;br /&gt;
&lt;br /&gt;
'''Личер (leecher)''' – тот, кто скачивает фрагмент файла&lt;br /&gt;
|Ширина=30%}}&lt;br /&gt;
&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T01:57:34Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Публикуем файлы в BitTorrent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Зачем мне это?&lt;br /&gt;
|Содержание=&lt;br /&gt;
Чтобы распространять файлы, не перегружая ваш интернет-канал.&lt;br /&gt;
&lt;br /&gt;
Чтобы отслеживать популярность файлов, настроив трекер.&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать RSS-каналы для размещения новых данных для ваших пользователей.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T01:52:45Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Шаг 5. Play-лист ices2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Icecast-amarok.png|frame|Amarok неплохо воспроизводит потоки Icecast, но не показывает метаданные.]]&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Icecast-amarok.png</id>
		<title>Файл:Icecast-amarok.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Icecast-amarok.png"/>
				<updated>2008-07-07T01:50:54Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T01:50:26Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Шаг 3. Что-НибудЬ послушаем */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|frame|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T01:49:27Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Шаг 3. Что-НибудЬ послушаем */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
[[Изображение:Icecast-admin.png|right|Icecast имеет собственную администраторскую веб-страницу.]]&lt;br /&gt;
&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Icecast-admin.png</id>
		<title>Файл:Icecast-admin.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Icecast-admin.png"/>
				<updated>2008-07-07T01:45:14Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: Icecast имеет собственную администраторскую веб-страницу.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Icecast имеет собственную администраторскую веб-страницу.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T01:42:42Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Шаг 5. Play-лист ices2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=Радио GA GA&lt;br /&gt;
|Содержание=&lt;br /&gt;
Как вы могли заметить, в конфигурационных файлах гораздо больше информации, чем мы исследовали. Большинство радиостанций в Сети, например, используют «живое вещание», подмешивая к потоку данные со звуковой карты, прямо как настоящие ди-джеи. Это хороший способ сделать вещание менее механистичным, чем простая перетасовка play-листа. Но наш пример более полезен, если вы хотите послушать свою музыкальную коллекцию, находясь вдали от своего компьютера.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T01:38:21Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Шаг 1. Скачайте и установите Icecast */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;br /&gt;
Если у вас нет удобного пакета Icecast в вашем дистрибутиве (например, RPM- или Deb-файла в менеджере пакетов), вам нужно будет скачать последнюю версию исходного кода с сайта http://www.icecast.org/download.php. Скачав, распакуйте архив, перейдите в созданный каталог и запустите '''./configure''', а затем '''make install''', как показано в следующем примере:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvzf ~/Desktop/icecast.tar.gz&lt;br /&gt;
 cd icecast&lt;br /&gt;
 ./configure –prefix=/usr&lt;br /&gt;
 make install (с правами root)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Шаг 2. Настройка===&lt;br /&gt;
В Icecast источником аудиопотока является так называемая точка доступа (mountpoint), и у каждого потока, который вы предоставляете, она должна быть своя. Для потока можно выбирать не только различную музыку, но и различную частоту дискретизации. От этой частоты и от полосы пропускания зависит качество звучания. Настройки, как и у других серверов Linux, выполняются ручным редактированием нескольких текстовых файлов. Для большинства дистрибутивов они расположены в '''/usr/share/icecast''', за исключением файла '''icecast.xml''', который находится в '''/etc/icecast.xml'''. &lt;br /&gt;
&lt;br /&gt;
Откройте '''icecast.xml''' в вашем любимом редакторе, да хоть и в Emacs. Вам потребуется кое-что поменять. Убедитесь в правильности путей к другим конфигурационным файлам, особенно к файлу журнала, который обычно указывает куда-то наподобие '''/var/log/icecast'''. Поскольку Icecast запускается от имени обычного пользователя (не суперпользователя), нужно убедиться, что каталог '''/var/log/icecast''' существует и ваш пользователь Icecast имеет права на доступ к нему.&lt;br /&gt;
&lt;br /&gt;
Например, ниже мы даём пользователю «graham» право записи в каталог лог-файлов:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /var/log/icecast&lt;br /&gt;
 chown graham:users .	# в случае SUSE&lt;br /&gt;
 chown graham:graham .	# в случае Mandriva&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы запускаете общедоступный сервер, рекомендуется создать пользователя «icecast» исключительно для целей запуска сервера. Также рекомендуется изменить пароли «source-password» и «admin-password» в файле '''icecast.xml''' (по умолчанию они смеха ради установлены как «hackme») и поменять параметр «hostname» на доменное имя вашей машины. Проделав всё это, протестируйте сервер, выполнив команду '''icecast -c /etc/icecast.xml''' от имени вашего пользователя Icecast. В типичном для Linux ответе, если всё работает как нужно, смотреть будет не на что.&lt;br /&gt;
&lt;br /&gt;
===Шаг 3. Что-НибудЬ послушаем===&lt;br /&gt;
Итак, сервер запущен. можете проверить его работу, открыв браузер на сервере и введя адрес http://localhost:8000/admin. Имя пользователя будет «admin», а пароль – тот, который вы вписали в конфигурационный файл icecast.xml.&lt;br /&gt;
&lt;br /&gt;
А теперь – волнующий момент. Введите в адресной строке вашего браузера http://localhost:8000/test. ogg. И... ничего не произойдет, поскольку Icecast ищет файл '''test.ogg''' в каталоге '''/usr/share/icecast'''. Вы можете убедиться в этом, открыв файл '''error.log''' (туда следует заглядывать в первую очередь, если вы наткнулись на проблему). Понятно, что нужно сделать, чтобы ваша музыка зазвучала: просто скопируйте звуковой файл из вашей коллекции в '''/usr/share/icecast/test.ogg''' и перезагрузите поток. теперь вы должны услышать файл, воспроизводимый с помощью Icecast. Страница администрирования обновится, чтобы показать новых слушателей.&lt;br /&gt;
&lt;br /&gt;
===Шаг 4. Меняя песни – ices2===&lt;br /&gt;
&lt;br /&gt;
Теперь всё должно работать, но проблема заключается в том, что вы можете указать только один аудио-файл. Есть более гибкое решение – сначала оно покажется вам странным: нужно запустить так называемый source-клиент для ''Icecast''. Он отвечает за формирование потока данных, который ''Icecast'' использует как источник вещания. Есть несколько разновидностей клиентов, среди них есть и ориентированные на «живое» вещание и ди-джеев. Один из наиболее популярных – ''Ices2''.&lt;br /&gt;
&lt;br /&gt;
''Ices2'' устанавливается аналогично ''Icecast''. Скачайте исходный код, запустите '''./configure''' и затем '''make install''' в распакованном каталоге. Нетрудно догадаться, что тут тоже не обойдется без загадочного конфигурационного файла. К счастью, в пакет включено несколько примеров, они находятся в каталоге '''conf'''. Один из них предназначен для использования в качестве источника входа звуковой карты в качестве источника (под именем ices-alsa.xml), но нам больше подойдёт другой, под названием '''ices-playlist.xml'''.&lt;br /&gt;
&lt;br /&gt;
После того как вы откроете файл '''ices-playlist.xml''' в вашем редакторе, вам нужно будет поменять пароль, указанный между тэгами '''&amp;lt;password&amp;gt;''' и '''&amp;lt;/password&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Здесь должен быть тот самый пароль администратора, который вы определили в конфигурации ''Icecast'', по той простой причине, что ''Ices2'' будет добавлять новую точку доступа для сервера ''Icecast''. Заодно нужно будет изменить имя хоста (hostname) в файле конфигурации, чтобы получать доступ к серверу по сети.&lt;br /&gt;
&lt;br /&gt;
Файл конфигурации содержит настройки частоты дискретизации потока, которые следуют за тэгом '''&amp;lt;nominal-bitrate&amp;gt;'''. Если ваши аудио-файлы выдаются не со стандартной (44100 кГц) частотой, вам потребуется указать этот параметр.&lt;br /&gt;
&lt;br /&gt;
===Шаг 5. Play-лист ices2===&lt;br /&gt;
Ключи к предоставлению списка аудио-файлов – в файле '''ices-playlist.xml'''. ''Ices2'' использует текстовый файл, который рассматривается как простой play-лист. Это означает, что вы можете перемешивать дорожки или просто проигрывать их в определенной последовательности. Согласно конфигурационному файлу, он называется '''playlist.txt''', и вам нужно будет убедиться, что файл указан правильно. В этом текстовом файле просто перечислены все композиции, которые вы хотите добавить, на отдельных строках. Например:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /home/graham/ogg/broadcast1.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast2.ogg&lt;br /&gt;
 /home/graham/ogg/broadcast3.ogg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наконец, вам нужно запустить ''Ices2'' с единственным аргументом, указывающим на изменённый конфигурационный файл:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ices ices-playlist.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Ices2'' создаст точку доступа на сервере ''Icecast'' и выведет аудиопоток, заполняемый из вашего play-листа. Чтобы подключиться к потоку, откройте ваш медиа-плейер и введите http://localhost:8000/example1.ogg.m3u. точка доступа '''example1.ogg''' определяется конфигурацией ''Ices2''. Теперь вы должны услышать аудиопоток через ваш сервер ''Icecast'', аккуратно сформированный с помощью ''Ices2''. Если ваш плейер поддерживает метаданные, вы также увидите имя исполнителя и название трека в том виде, в каком эта информация содержится в оригинальном аудиофайле. &lt;br /&gt;
&lt;br /&gt;
Если вы откроете страницу администрирования сервера ''Icecast'', появится точка доступа ''Ices2'', вместе с метаданными трека и потока. С этой же страницы вы также сможете «сбрасывать» людей с потока и перемещать их на другие потоки, возможно, использующие более низкую пропускную способность.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T01:09:48Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Собственная радиостанция */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;br /&gt;
&lt;br /&gt;
Одна из самых замечательных возможностей при наличии широко полосного подключения к Интернету – это интернет-радио. Послушав вещание в Сети, вы вряд ли захотите вернуться к своему старому, с трудом настраиваемому на каналы аналоговому приёмнику. Сетевых стан-&lt;br /&gt;
ций гораздо больше, чем вы могли бы надеяться «поймать» в ограниченном спектре официальных радиочастот, причем есть они на любой вкус. многие сетевые радиостанции довольствуются несколькими десятками слушателей – как насчёт Drone Zone («атмосферная музыка окружающего пространства, совместимая с большинством лекарственных препаратов»)?&lt;br /&gt;
&lt;br /&gt;
Одна из самых популярных точек подключения к сетевым радиостанциям –www.shoutcast.com. Это портал для тысяч интернет-радиостанций, использующих протокол Shoutcast для передачи аудиопотока на компьютеры слушателей. Попробуйте поискать какую-нибудь песню на сайте – неважно, широко известную или нет: всегда есть шанс, что где-то в мире какой-нибудь Shoutcast-сервер исполняет именно её.&lt;br /&gt;
&lt;br /&gt;
''Shoutcast''– проприетарный протокол, разработанный компанией Nullsoft, той самой, которая выпускает Winamp, один из лучших медиа-плейеров для Windows. Протокол в основном оперирует данными в формате MP3 с несколькими HTTP-командами, и чтобы прослушать такой поток, вам потребуется плейер типа XMMS или Amarok.&lt;br /&gt;
&lt;br /&gt;
Потребуется также соединение со скоростью более 128 кб/с, это в два раза больше «модемной» скорости 56 кб/с, но широкополосным подключением обеспечивается легко.&lt;br /&gt;
&lt;br /&gt;
===Cтань ди-джеем===&lt;br /&gt;
Конечно, вы не ограничены прослушиванием чужих потоков. Вы можете запустить свой собственный Shoutcast-сервер и слу-шать собственную коллекцию, находясь вдали от дома, или передавать свою музыку трём-четырём слушателям в мире, одобряющим ваш музыкальный вкус. Обязательно надо оформить разрешение на воспроизведение любой имеющейся у вас музыки. Еще недавно, если вы хотели вещать на законных основаниях, нужно было подписывать соглашение с агентом каждого исполнителя. Сейчас вы можете получить единую лицензию, стоимость которой пропорциональна доходу от вашей радиостанции.&lt;br /&gt;
&lt;br /&gt;
Проприетарный Shoutcast-сервер распространяется бесплатно, но есть более правильное решение – ''Icecast''. Это открытый продукт, способный создавать совместимые с Shoutcast потоки, а также использовать Ogg Vorbis в качестве замены формату MP3, и для его настройки нужно выполнить лишь несколько простых шагов.&lt;br /&gt;
&lt;br /&gt;
===Шаг 1. Скачайте и установите Icecast===&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC</id>
		<title>LXF77:К вашим услугам</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:%D0%9A_%D0%B2%D0%B0%D1%88%D0%B8%D0%BC_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0%D0%BC"/>
				<updated>2008-07-07T01:01:10Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: Новая: =К В@шим услуг@м=  Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целы...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=К В@шим услуг@м=&lt;br /&gt;
&lt;br /&gt;
Вам никогда не казалось, что ваша машина с Linux могла бы делать для вас больше, чем целый день запускать OpenOffice.org да «гонять» Frozen Bubble? Задайте вашему ПК настоящую работу, настроив его как суперсервер интернета.&lt;br /&gt;
&lt;br /&gt;
Многие считают, что Интернет существует лишь для того, чтобы пассивно пользоваться его благами. многие тратят больше времени на просмотр сайтов, чем на их разработку. многие даже не представляют, что могут настроить собственный BitTorrent. Но вы же не принадлежите к этим «многим»? Вы не нуждаетесь в напоминании, что ваш компьютер с Linux содержит самые мощные и популярные серверные программы на свете. Немного поизучав их, вы сможете превратить вашу настольную машину во «всегда к вашим услугам» суперкомпьютер, открытый всему миру. Он сможет поделиться вашими файлами, представить ваши web-страницы, стать чат-сервером, обслужить вашу радиостанцию, и многое другое – и ни одна из этих задач не потребует столько оперативной памяти, чтобы выделить для нее вспомогательный ПК.&lt;br /&gt;
&lt;br /&gt;
Превратить ваш ПК в узел сети Интернет не сложно, но зато очень здорово, и что важнее всего – совершенно бесплатно. Читайте дальше.&lt;br /&gt;
&lt;br /&gt;
«Ваш linux-компьютер содержит самые мощные серверные программы на свете.»&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Публикуем файлы в BitTorrent==&lt;br /&gt;
&lt;br /&gt;
BitTorrent – замечательный способ поделиться файлами. не желают ли дамы и господа запустить собственный сервер?&lt;br /&gt;
&lt;br /&gt;
Не путайте с нелегальным распространением файлов: на самом деле ''BitTorrent'' – всего лишь невероятно эффективный протокол и замечательно реализованная идея, которая заслуживает большего, чем ассоциации с мрачным сетевым «подпольем».&lt;br /&gt;
&lt;br /&gt;
''BitTorrent'' эксплуатирует старую добрую модель клиент-сервер, когда те, кто скачивает файл, предоставляют секции, или «блоки», которые они уже скачали, другим участникам сети. можно сравнить это с пирамидой из бокалов с шампанским. Шампанское льётся только в верхний бокал, и по мере заполнения перетекает в нижние. Только в случае с BitTorrent можно начинать делиться «шампанским» ещё до того, как ваш «бокал» наполнится.&lt;br /&gt;
&lt;br /&gt;
Чтобы скачать поток, пользователь  сперва должен получить копию специального Torrent-файла (с суффиксом .torrent). Он создается на основе исходного файла и содержит хэш для каждого отдельного блока, который можно скачать и предоставить остальным. Хэш гарантирует, что каждый фрагмент файла, скачанный пользователем, будет в точности совпа     дать с оригиналом. Наиболее творчески реализовано распределение клиентами тех частей,        которыми они уже располагают. Это зависит от трекера (tracker), интернет-адрес которого вложен в Torrent-файл. Трекер выполняет функции дирижёра. Он отслеживает, кто что скачал, и всякий раз при получении нового запроса на ту или иную закачку он гарантирует, что новый клиент получит кусочки, которых еще нет у других участников сети. Вот что вы можете сделать на вашем ПК: запустить собственный трекер, так что вы не просто будете разделять потоки – вы будете их создавать.&lt;br /&gt;
&lt;br /&gt;
===Строим трекер===&lt;br /&gt;
Наиболее популярный трекер называется ''XBNBT'', первоначально его разработали на языке Python и поставляли с оригинальным BitTorrent, а потом переписали на C++. Вам нужно скачать исходный код ''XBNBT'' или взять его с нашего диска. распакуйте файл и перейдите в каталог '''bnbt/src'''. мы будем собирать простейший трекер, так что просто наберите '''make xbnbt'''. При этом в текущем каталоге будет создан исполнимый файл. Очень важно ограничить трекер пользовательской учётной записью, так что не обязательно этот файл куда-то устанавливать.&lt;br /&gt;
&lt;br /&gt;
Следующий этап – создание каталога torrents, где будут размещаться Torrent-файлы, которыми будет управлять сервер. Его нужно создать внутри каталога, из которого будет запускаться исполняемый файл. Наконец, перед запуском сервера необходимо  отредактировать замысловатый конфигурационный файл. Откройте '''bnbt.cfg''' и измените следующие строки ('''torrents''' указывает на каталог, который мы только что создали):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 allowed_dir = torrents&lt;br /&gt;
 bnbt_allw_torrent_downloads = 1&lt;br /&gt;
 bnbt_file_dir = torrents&lt;br /&gt;
 bnbt_parse_on_upload = 1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно запускать сервер. Выполните команду '''./xbnbt''' в текущем каталоге. Вы должны получить на выходе информацию, в случае удачи содержащую фразу «Server Info – Start», которая означает, что трекер запустился. Значит, пора обратиться к трекеру, введя в строке&lt;br /&gt;
браузера http://localhost:6969 (замените «localhost» URL-адресом вашей машины). До создания новой учётной записи больше ничего делать не надо. Просто припишите к введённому URL '''/users.html''', и откроется страница User Info. Создайте учётную запись администратора и соответствующий пароль, и отметьте все «флажки», чтобы получить все привилегии.&lt;br /&gt;
&lt;br /&gt;
Создать Torrent-файл из файла, который вы хотите предоставить в общий доступ, могут многие популярные клиенты; самый простой в использовании, вероятно, ''Azureus''. Выберите пункт Create Torrent в меню File. Параметр «Announce URL», который будет запрошен на первой странице – это адрес вашего сервера плюс '''/announce''' (используя «localhost» в качестве адреса сервера, получим http://localhost:6969/announce). Щёлкните на Next и выберите файл, которым вы решили поделиться. ''Azureus'' продолжит работу и создаст Torrent-файл. можете сохранить его где хотите.&lt;br /&gt;
&lt;br /&gt;
===Поделитесь потоком===&lt;br /&gt;
&lt;br /&gt;
Torrent-файл, который вы только что создали, нужно загрузить на трекер. Для этого откройте страницу http://localhost:6969/upload.html. Щёлкните по кнопке запроса, укажите ваш Torrent-файл и щёлкните на Upload, чтобы скопировать его на сервер.&lt;br /&gt;
&lt;br /&gt;
Последний этап – самый важный, и на первый взгляд, неочевидный. Ваш сервер теперь умеет отслеживать поток, но прежде чем кто-либо сможет скачать его, вам нужно породить (seed) копию. В ''Azureus'' откройте поток, только что переданный на сервер, и когда ''Azureus'' спросит вас о пункте назначения, убедитесь, что вы указали место, где сохранён исходный файл. ''Azureus'' сопоставит этот файл с Torrent-файлом, проверит, не требуется ли скачать что-либо ещё, и сразу же запустит поток. Чудеса! Вот теперь можете публиковать ссылку на Torrent.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание: ваш трекер будет управлять каждым соединением с другими сидерами (seeder) и личерами (leecher). Проверьте на главной странице – http://localhost:6969 – текущий статус трекера, включая все доступные потоки и число сидеров и личеров, подсоединённых к нему.&lt;br /&gt;
&lt;br /&gt;
==Собственная радиостанция==&lt;br /&gt;
&lt;br /&gt;
Вдоволь насиделись у радиоприемника? играйте то, что нравится вместе с ''Icecast''.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77</id>
		<title>LXF77</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77"/>
				<updated>2008-04-26T11:22:04Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Linux Format 77 (3), Март 2006==&lt;br /&gt;
&lt;br /&gt;
=== Обзоры ===&lt;br /&gt;
* [[LXF77:X2:The Threat|X2:The Threat]]&lt;br /&gt;
* [[LXF77:Apache 2.2|Apache 2.2]]&lt;br /&gt;
* [[LXF77:Audacity 1.3|Aaudacity 1.3]]&lt;br /&gt;
* [[LXF77:KDevelop 3.3|KDevelop 3.3]]&lt;br /&gt;
* [[LXF77:Программы для перевода|Программы для перевода]]&lt;br /&gt;
* [[LXF77:NetBSD 3.0|NetBSD 3.0]]&lt;br /&gt;
&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
[[LXF77:Сравнение|Сравнение]]&lt;br /&gt;
Астрономические программы. Через тернии - к звездам.&lt;br /&gt;
&lt;br /&gt;
=== Что за штука…? ===&lt;br /&gt;
[[LFX77:Boo|Что такое... Boo?]]&lt;br /&gt;
Как скрестить Python и Mono?&lt;br /&gt;
&lt;br /&gt;
=== Интервью ===&lt;br /&gt;
[[LXF77:Интервью|Интервью: Chris DiBona]]&lt;br /&gt;
Что дальше? Google OS?&lt;br /&gt;
&lt;br /&gt;
[[LXF77:FreeBSD|FreeBSD]]&lt;br /&gt;
Присоединяйтесь к Beastie&lt;br /&gt;
&lt;br /&gt;
[[LXF77:BSD на рабочем столе|BSD на рабочем столе]]&lt;br /&gt;
Демон с человеческим лицом&lt;br /&gt;
&lt;br /&gt;
[[LXF77:Xen|Xen]]&lt;br /&gt;
новинка на рынке виртуализации&lt;br /&gt;
&lt;br /&gt;
[[LXF77:К вашим услугам|К вашим услугам]]&lt;br /&gt;
Мы научим ваш компьютер работать на вас&lt;br /&gt;
&lt;br /&gt;
=== Учебники ===&lt;br /&gt;
&lt;br /&gt;
* [[LXF77:Python|Уроки Python]]&lt;br /&gt;
Часть 3. Готовим модули и функции.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:Python</id>
		<title>LXF77:Python</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:Python"/>
				<updated>2008-04-26T11:14:07Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Модули */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{цикл/Python}}&lt;br /&gt;
''Часть 3. Итак, познакомившись с типами данных, доступных в языке Python, мы, под чутким руководством '''Сергея Супрунова''' морально готовы приступить к более серьёзным вещам. На сегодня программа-минимум – разобраться с модулями и научиться писать свои функции.''&lt;br /&gt;
&lt;br /&gt;
==Модули==&lt;br /&gt;
&lt;br /&gt;
Начнем со стандартных модулей. Стандартными их называют потому, что они, как правило, уже включены в вашу поставку Python (будь то Linux, FreeBSD или даже Windows) и не требуют дополнительной инсталляции. Как вы видели в конце прошлого урока, модуль подключается оператором '''import'''. В качестве параметров вы можете указать любое количество модулей. Также допускается любое число операторов '''import''' в любой точке вашей программы.&lt;br /&gt;
&lt;br /&gt;
Для чего же нужны модули? Чуть позже, когда мы напишем свою функцию, вы увидите, что с помощью модуля очень легко реализуется концепция повторного использования кода. Пока же модули интересны нам как способ расширения возможностей вашей программы. С их помощью вы подключаете уже написанные кем-то наборы функций и методов, которые сможете использовать почти так же, как если бы они были встроенными (такими, как рассмотренная нами ранее '''float()''').&lt;br /&gt;
&lt;br /&gt;
Начнем с модуля '''sys'''. В нем определен ряд переменных, содержащих информацию об операционной системе, дескрипторы стандартных потоков ввода, вывода и ошибок ('''stdin''', '''stdout''' и '''stderr''' соответствен но), и так далее. рассмотрим небольшой пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import sys&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.arch, sys.platform&lt;br /&gt;
 i386 linux2&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.version&lt;br /&gt;
 2.4.1 (#1, Sep 13 2005, 00:39:20)&lt;br /&gt;
 [GCC 4.0.2 20050901 (prerelease) (SUSE Linux)]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.maxint&lt;br /&gt;
 2147483647&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, чтобы получить доступ к определённым в модуле переменным (впрочем, это относится и к остальным объектам), перед их именем следует указать имя модуля. Это оберегает от конфликта имён, когда объявленная вами переменная или функция имеет такое же имя, как и определенная в модуле. то есть каждый модуль имеет свое пространство имен, доступ к которому осуществляется по имени модуля. Если имя модуля слишком неудобно для работы, вы можете указать для него псевдоним после ключевого слова '''as''' (например, '''import SimpleXMLRPCServer as rpc'''), и в дальнейшем использовать это упрощённое имя. Впрочем, иногда удобнее (а порой и необходимо), что-бы имена, определенные в модуле, были импортированы непосредственно в пространство имён основной программы. Для этого предусмотрена несколько иная конструкция:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from sys import *&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print platform&lt;br /&gt;
 linux2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно обращаться к объектам модуля непосредственно, но будьте осторожны – вы потеряете все определённые вами переменные и функции, имена которых совпадут с именами определенных в модуле.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=ПОЛЕЗНЫЙ СОВЕТ&lt;br /&gt;
|Содержание=&lt;br /&gt;
Когда вы работаете в интерактивном терминале, к вашим услугам всегда функция help(). Используйте её, когда вам понадобится подсказка по той или иной функции или модулю. Не забывайте заключать в кавычки её аргумент – ведь вы передаёте имя функции, а не ее саму:&lt;br /&gt;
'''help(‘dir’), help(‘sys’)'''.&lt;br /&gt;
|Ширина=250px}}&lt;br /&gt;
&lt;br /&gt;
Символ «звездочка» в операторе '''from - import''' означает, что должно быть импортировано всё, что определено в модуле. Вы также можете перечислить только то, что желаете сделать доступным в вашей про грамме (например, '''from sys import version''').&lt;br /&gt;
&lt;br /&gt;
Ещё одна важнейшая переменная модуля sys – список '''sys.argv''', в который в момент запуска Python-программы помещаются аргументы, переданные в командной строке. Пример использования этого списка вы увидите далее в данной статье.&lt;br /&gt;
&lt;br /&gt;
==Модуль os==&lt;br /&gt;
&lt;br /&gt;
Пожалуй, самый популярный модуль Python – это '''os'''. Он предоставляет  вам ряд функций, позволяющих взаимодействовать с операционной системой: '''chroot()''', '''mkdir()''', '''setuid()''' и так далее. Названия, думаю,  говорят сами за себя. а как посмотреть полный список функций, доступных в модуле, я надеюсь, вы ещё помните с прошлого урока: '''dir(os)'''.&lt;br /&gt;
&lt;br /&gt;
Для работы с файловой системой практически незаменим подмодуль этого модуля – '''os.path'''. С его помощью вы можете определять типы файлов, установленные для них права доступа, и тому подобное. Нам ещё доведётся поработать с ним на практике. &lt;br /&gt;
&lt;br /&gt;
==Прочие модули==&lt;br /&gt;
&lt;br /&gt;
Вообще, в стандартную поставку Python входит несколько десятков  наиболее полезных модулей. Найти их можно в каталоге '''/usr/lib/python''' (на некоторых системах путь может быть иным, например, '''/usr/local/lib/python'''). Если быть точнее, то Python ищет свои модули в  каталогах, список которых возвращает переменная '''sys.path'''.&lt;br /&gt;
&lt;br /&gt;
Обращайте внимание на файлы с расширением '''py''' ('''pyc''' и '''pyo''' – это байт-код модулей, который используется для экономии ресурсов, поскольку при обращении к модулю повторная компиляция не требуется). Названия большинства из них говорят сами за себя, к тому же вы можете открыть любой модуль, чтобы ознакомиться с его кодом и, как правило, очень подробными комментариями. С некоторыми из них мы обязательно столкнёмся в дальнейшем.&lt;br /&gt;
&lt;br /&gt;
==Функции==&lt;br /&gt;
&lt;br /&gt;
Со встроенными функциями вы уже знакомы. Но что делать, если возможностей, заложенных в интерпретатор или стандартные модули, вам недостаточно? Всё просто – напишите собственную функцию!&lt;br /&gt;
&lt;br /&gt;
Пользовательская функция определяется оператором '''def''' (от '''define''' – определять). В качестве параметра указывается имя функции (оно  должно быть уникально в пределах пространства имён основной программы), а в скобках перечисляются её формальные аргументы. Далее  ставится двоеточие (как и в случае любых блочных операторов, таких как '''if''' или '''for'''), и на последующих строках, имеющих отступ, вводится код функции. Впрочем, когда речь идёт о Python, несколько строк кода способны сказать больше, чем пол-страницы текста на естественном языке. Чтобы лучше во всем разобраться, рассмотрим один пример (файл назовем '''abbr.py'''):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
“””&lt;br /&gt;
 Программа обслуживает небольшой словарь сокращений, используя anydbm&lt;br /&gt;
“””&lt;br /&gt;
import sys, anydbm as db&lt;br /&gt;
dictfile = ‘dict.dbm’&lt;br /&gt;
def openDictionary(dbmfile=dictfile):&lt;br /&gt;
     “”” Открыть словарь “””&lt;br /&gt;
     global dictionary&lt;br /&gt;
     try:&lt;br /&gt;
         dictionary = db.open(dbmfile, ‘c’)&lt;br /&gt;
     except:&lt;br /&gt;
         raise ‘Ошибка открытия файла’&lt;br /&gt;
def getMeaning(abbr):&lt;br /&gt;
     “”” Поиск расшифровки “””&lt;br /&gt;
     try:&lt;br /&gt;
&lt;br /&gt;
        return dictionary[abbr]&lt;br /&gt;
     except:&lt;br /&gt;
        return ‘[не определено]’&lt;br /&gt;
def addMeaning(abbr, meaning):&lt;br /&gt;
     “”” Добавить сокращение “””&lt;br /&gt;
     dictionary[abbr] = meaning&lt;br /&gt;
    def delMeaning(abbr):&lt;br /&gt;
     “”” Удалить сокращение “””&lt;br /&gt;
     try:&lt;br /&gt;
        del dictionary[abbr]&lt;br /&gt;
     except:&lt;br /&gt;
        pass&lt;br /&gt;
if __name__ == “__main__”:&lt;br /&gt;
     openDictionary()&lt;br /&gt;
     try:&lt;br /&gt;
        command = sys.argv[1]&lt;br /&gt;
        if command == ‘-a’:&lt;br /&gt;
            addMeaning(sys.argv[2], sys.argv[3])&lt;br /&gt;
        elif command == ‘-d’:&lt;br /&gt;
            delMeaning(sys.argv[2])&lt;br /&gt;
        else:&lt;br /&gt;
            abbr = sys.argv[1]&lt;br /&gt;
            print abbr + ‘ = ‘ + getMeaning(abbr)&lt;br /&gt;
     except:&lt;br /&gt;
        print “””\&lt;br /&gt;
 Неверные аргументы. Допустимый синтаксис:&lt;br /&gt;
 abbr.py &amp;lt;ABBR&amp;gt;                  - расшифровать сокращение&lt;br /&gt;
 abbr.py -a &amp;lt;ABBR&amp;gt; &amp;lt;MEANING&amp;gt;     - добавить расшифровку&lt;br /&gt;
 abbr.py -d &amp;lt;ABBR&amp;gt;                - удалить сокращение&lt;br /&gt;
 “””&lt;br /&gt;
 else:&lt;br /&gt;
     openDictionary()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эта программа реализует простейший консольный словарь сокращений. Только не забудьте сделать файл исполняемым ('''chmod u+x abbr.py'''). Поддерживаются три операции (информацию об этом вы получите, если попытаетесь вызвать сценарий с неправильными аргументами):&lt;br /&gt;
#'''abbr.py &amp;lt;ABBR&amp;gt;''' – возвращает из словаря расшифровку сокращения &amp;lt;ABBR&amp;gt;;&lt;br /&gt;
#'''abbr.py -a &amp;lt;ABBR&amp;gt;'' &amp;lt;MEANING&amp;gt;''' – добавляет в словарь расшифровку сокращения. В силу особенностей словарного типа данных в Python, эта же команда изменяет расшифровку для уже существующей аббревиатуры;&lt;br /&gt;
#'''abbr.py -d &amp;lt;ABBR&amp;gt;''' – удаляет из словаря запись для указанного сокращения.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание на вторую строку – здесь указывается кодировка исходного текста (подробности см. на странице http://www.python.org/peps/pep-0263.html). Если вы используете не UTF-8, то укажите в этой строке свою кодировку (например, koi8-r).&lt;br /&gt;
&lt;br /&gt;
Строки, обрамлённые утроенными кавычками, в данном случае можно рассматривать как многострочные комментарии.&lt;br /&gt;
&lt;br /&gt;
Оператор '''global''' в функции '''openDictionary()''' делает переменную '''dictionary''' доступной за пределами функции. В противном случае её действие распространялось бы только на эту функцию. Ещё один интересный момент – то, как описан формальный аргумент функции. В данном случае мы задаем для переменной значение по умолчанию. Если в дальнейшем при вызове функции вы не передадите в неё аргумент, будет использовано значение переменной '''dictfile'''.&lt;br /&gt;
&lt;br /&gt;
Несколько слов нужно сказать о самом модуле '''anydbm'''. С его помощью Python выполняет поиск доступного dbm-пакета в текущей системе (вам не нужно об этом беспокоиться). Данные в файле '''DBM''' организованы по словарному принципу (ключ – значение), поэтому данный файл может быть естественным образом сопоставлен с переменной типа «словарь». Все дальнейшие операции с данными словаря для программиста выглядят как обычные, а dbm-модуль позаботится о том, чтобы все данные оказались сохранены в файл. Собственно говоря, '''dbm'''-файл вы можете рассматривать как словарь, содержимое которого  не теряется между запусками программы. также обратите внимание, что  при подключении этого модуля мы используем псевдоним.&lt;br /&gt;
&lt;br /&gt;
Итак, в функции '''openDictionary()''' мы открываем файл '''dict.dbm''' (второй параметр – ''''c'''' – даёт указание создать такой файл, если его ещё нет) и сопоставляем его со словарём '''dictionary'''. Конструкция «'''try – except'''» служит для обработки ошибок. В блок '''try''' мы помещаем потенциально опасные операции (которые могут завершиться с ошибкой), а блок '''except''' содержит код, который будет выполнен в случае возникновения ошибки в блоке '''try'''. Оператор raise генерирует сообщение об ошибке и прерывает выполнение программы.&lt;br /&gt;
&lt;br /&gt;
Далее описаны три функции, реализующие заявленную выше функциональность. Пожалуй, в пояснении нуждается здесь только оператор pass в функции '''delMeaning()''': это пустой оператор, который ничего не делает – если нужного ключа в словаре нет, то и удалять нечего.&lt;br /&gt;
&lt;br /&gt;
Ну и в конце сценария, в секции оператора '''if''', вы можете увидеть пример обработки аргументов командной строки.&lt;br /&gt;
&lt;br /&gt;
Конечно, этот учебный пример не лишён недостатков: невозможно сделать несколько записей, имеющих одинаковую аббревиатуру, работа чувствительна к регистру символов (введя запись для «UDP», вы не сможете получить значение по ключу «udp»), и т.д. Однако сейчас нам важен не функционал, а собственно языковые конструкции.&lt;br /&gt;
&lt;br /&gt;
==Возвращаясь к модулям==&lt;br /&gt;
&lt;br /&gt;
Итак, мы написали функцию, которая может оказаться крайне полезной  в других программах. Как бы было хорошо, если бы оказалось возможным поместить её в модуль! А ведь нет ничего проще – она уже в модуле. Да-да! Вы можете просто подключить написанную выше программу в качестве модуля (одним из операторов, '''import''' или '''from''' – '''import''') и спокойно использовать определённые в ней переменные и функции!&lt;br /&gt;
&lt;br /&gt;
В этом заключается одно из преимуществ Python по сравнению с его «прямым конкурентом» - языком Perl. В Perl вам пришлось бы специально оформлять вашу программу как модуль (как минимум, потребуется оператор '''package'''). В Python концепция повторного использования кода заложена в основу синтаксиса и не требует от вас совершенно никаких усилий. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import abbr&lt;br /&gt;
abbr.delMeaning(‘UDP’)&lt;br /&gt;
print abbr.getMeaning(‘IP’)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, вам достаточно импортировать '''py'''-программу (расширение не указывается), и вы можете в полной мере воспользоваться всем созданным ранее. Единственное, этот файл должен быть доступен для поиска (самый простой вариант – поместить его в текущий  каталог).&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что в момент импортирования переменная '''__name__''' в подключаемом модуле будет иметь значение, совпадающее с именем модуля. Поэтому в данном случае вместо секции '''if''' сценария '''abbr.py''' будет выполнена секция '''else'''. Подобный оператор '''if – else''' присутствует практически в каждой программе на языке Python и позволяет использовать ее и как модуль, и как самостоятельный сценарий (в последнем случае, как нетрудно догадаться, переменная '''__name__''' будет иметь значение '''“__main__”''').&lt;br /&gt;
&lt;br /&gt;
Итак, вы уже в состоянии разрабатывать довольно серьёзные и полезные программы. Однако не научившись работать с классами, вы не познаете всю мощь Python. В следующий раз мы заполним и этот пробел.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:Python</id>
		<title>LXF77:Python</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:Python"/>
				<updated>2008-04-26T11:09:20Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{цикл/Python}}&lt;br /&gt;
''Часть 3. Итак, познакомившись с типами данных, доступных в языке Python, мы, под чутким руководством '''Сергея Супрунова''' морально готовы приступить к более серьёзным вещам. На сегодня программа-минимум – разобраться с модулями и научиться писать свои функции.''&lt;br /&gt;
&lt;br /&gt;
==Модули==&lt;br /&gt;
&lt;br /&gt;
Начнем со стандартных модулей. Стандартными их называют потому, что они, как правило, уже включены в вашу поставку Python (будь то Linux, FreeBSD или даже Windows) и не требуют дополнительной инсталляции. Как вы видели в конце прошлого урока, модуль подключается оператором '''import'''. В качестве параметров вы можете указать любое количество модулей. Также допускается любое число операторов '''import''' в любой точке вашей программы.&lt;br /&gt;
&lt;br /&gt;
Для чего же нужны модули? Чуть позже, когда мы напишем свою функцию, вы увидите, что с помощью модуля очень легко реализуется концепция повторного использования кода. Пока же модули интересны нам как способ расширения возможностей вашей программы. С их помощью вы подключаете уже написанные кем-то наборы функций и методов, которые сможете использовать почти так же, как если бы они были встроенными (такими, как рассмотренная нами ранее '''float()''').&lt;br /&gt;
&lt;br /&gt;
Начнем с модуля '''sys'''. В нем определен ряд переменных, содержащих информацию об операционной системе, дескрипторы стандартных потоков ввода, вывода и ошибок ('''stdin''', '''stdout''' и '''stderr''' соответствен но), и так далее. рассмотрим небольшой пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import sys&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.arch, sys.platform&lt;br /&gt;
 i386 linux2&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.version&lt;br /&gt;
 2.4.1 (#1, Sep 13 2005, 00:39:20)&lt;br /&gt;
 [GCC 4.0.2 20050901 (prerelease) (SUSE Linux)]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.maxint&lt;br /&gt;
 2147483647&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, чтобы получить доступ к определённым в модуле переменным (впрочем, это относится и к остальным объектам), перед их именем следует указать имя модуля. Это оберегает от конфликта имён, когда объявленная вами переменная или функция имеет такое же имя, как и определенная в модуле. то есть каждый модуль имеет свое пространство имен, доступ к которому осуществляется по имени модуля. Если имя модуля слишком неудобно для работы, вы можете указать для него псевдоним после ключевого слова '''as''' (например, '''import SimpleXMLRPCServer as rpc'''), и в дальнейшем использовать это упрощённое имя. Впрочем, иногда удобнее (а порой и необходимо), что-бы имена, определенные в модуле, были импортированы непосредственно в пространство имён основной программы. Для этого предусмотрена несколько иная конструкция:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from sys import *&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print platform&lt;br /&gt;
 linux2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно обращаться к объектам модуля непосредственно, но будьте осторожны – вы потеряете все определённые вами переменные и функции, имена которых совпадут с именами определенных в модуле.&lt;br /&gt;
&lt;br /&gt;
Символ «звездочка» в операторе '''from - import''' означает, что должно быть импортировано всё, что определено в модуле. Вы также можете перечислить только то, что желаете сделать доступным в вашей про грамме (например, '''from sys import version''').&lt;br /&gt;
&lt;br /&gt;
Ещё одна важнейшая переменная модуля sys – список '''sys.argv''', в который в момент запуска Python-программы помещаются аргументы, переданные в командной строке. Пример использования этого списка вы увидите далее в данной статье.&lt;br /&gt;
&lt;br /&gt;
==Модуль os==&lt;br /&gt;
&lt;br /&gt;
Пожалуй, самый популярный модуль Python – это '''os'''. Он предоставляет  вам ряд функций, позволяющих взаимодействовать с операционной системой: '''chroot()''', '''mkdir()''', '''setuid()''' и так далее. Названия, думаю,  говорят сами за себя. а как посмотреть полный список функций, доступных в модуле, я надеюсь, вы ещё помните с прошлого урока: '''dir(os)'''.&lt;br /&gt;
&lt;br /&gt;
Для работы с файловой системой практически незаменим подмодуль этого модуля – '''os.path'''. С его помощью вы можете определять типы файлов, установленные для них права доступа, и тому подобное. Нам ещё доведётся поработать с ним на практике. &lt;br /&gt;
&lt;br /&gt;
==Прочие модули==&lt;br /&gt;
&lt;br /&gt;
Вообще, в стандартную поставку Python входит несколько десятков  наиболее полезных модулей. Найти их можно в каталоге '''/usr/lib/python''' (на некоторых системах путь может быть иным, например, '''/usr/local/lib/python'''). Если быть точнее, то Python ищет свои модули в  каталогах, список которых возвращает переменная '''sys.path'''.&lt;br /&gt;
&lt;br /&gt;
Обращайте внимание на файлы с расширением '''py''' ('''pyc''' и '''pyo''' – это байт-код модулей, который используется для экономии ресурсов, поскольку при обращении к модулю повторная компиляция не требуется). Названия большинства из них говорят сами за себя, к тому же вы можете открыть любой модуль, чтобы ознакомиться с его кодом и, как правило, очень подробными комментариями. С некоторыми из них мы обязательно столкнёмся в дальнейшем.&lt;br /&gt;
&lt;br /&gt;
==Функции==&lt;br /&gt;
&lt;br /&gt;
Со встроенными функциями вы уже знакомы. Но что делать, если возможностей, заложенных в интерпретатор или стандартные модули, вам недостаточно? Всё просто – напишите собственную функцию!&lt;br /&gt;
&lt;br /&gt;
Пользовательская функция определяется оператором '''def''' (от '''define''' – определять). В качестве параметра указывается имя функции (оно  должно быть уникально в пределах пространства имён основной программы), а в скобках перечисляются её формальные аргументы. Далее  ставится двоеточие (как и в случае любых блочных операторов, таких как '''if''' или '''for'''), и на последующих строках, имеющих отступ, вводится код функции. Впрочем, когда речь идёт о Python, несколько строк кода способны сказать больше, чем пол-страницы текста на естественном языке. Чтобы лучше во всем разобраться, рассмотрим один пример (файл назовем '''abbr.py'''):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
“””&lt;br /&gt;
 Программа обслуживает небольшой словарь сокращений, используя anydbm&lt;br /&gt;
“””&lt;br /&gt;
import sys, anydbm as db&lt;br /&gt;
dictfile = ‘dict.dbm’&lt;br /&gt;
def openDictionary(dbmfile=dictfile):&lt;br /&gt;
     “”” Открыть словарь “””&lt;br /&gt;
     global dictionary&lt;br /&gt;
     try:&lt;br /&gt;
         dictionary = db.open(dbmfile, ‘c’)&lt;br /&gt;
     except:&lt;br /&gt;
         raise ‘Ошибка открытия файла’&lt;br /&gt;
def getMeaning(abbr):&lt;br /&gt;
     “”” Поиск расшифровки “””&lt;br /&gt;
     try:&lt;br /&gt;
&lt;br /&gt;
        return dictionary[abbr]&lt;br /&gt;
     except:&lt;br /&gt;
        return ‘[не определено]’&lt;br /&gt;
def addMeaning(abbr, meaning):&lt;br /&gt;
     “”” Добавить сокращение “””&lt;br /&gt;
     dictionary[abbr] = meaning&lt;br /&gt;
    def delMeaning(abbr):&lt;br /&gt;
     “”” Удалить сокращение “””&lt;br /&gt;
     try:&lt;br /&gt;
        del dictionary[abbr]&lt;br /&gt;
     except:&lt;br /&gt;
        pass&lt;br /&gt;
if __name__ == “__main__”:&lt;br /&gt;
     openDictionary()&lt;br /&gt;
     try:&lt;br /&gt;
        command = sys.argv[1]&lt;br /&gt;
        if command == ‘-a’:&lt;br /&gt;
            addMeaning(sys.argv[2], sys.argv[3])&lt;br /&gt;
        elif command == ‘-d’:&lt;br /&gt;
            delMeaning(sys.argv[2])&lt;br /&gt;
        else:&lt;br /&gt;
            abbr = sys.argv[1]&lt;br /&gt;
            print abbr + ‘ = ‘ + getMeaning(abbr)&lt;br /&gt;
     except:&lt;br /&gt;
        print “””\&lt;br /&gt;
 Неверные аргументы. Допустимый синтаксис:&lt;br /&gt;
 abbr.py &amp;lt;ABBR&amp;gt;                  - расшифровать сокращение&lt;br /&gt;
 abbr.py -a &amp;lt;ABBR&amp;gt; &amp;lt;MEANING&amp;gt;     - добавить расшифровку&lt;br /&gt;
 abbr.py -d &amp;lt;ABBR&amp;gt;                - удалить сокращение&lt;br /&gt;
 “””&lt;br /&gt;
 else:&lt;br /&gt;
     openDictionary()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эта программа реализует простейший консольный словарь сокращений. Только не забудьте сделать файл исполняемым ('''chmod u+x abbr.py'''). Поддерживаются три операции (информацию об этом вы получите, если попытаетесь вызвать сценарий с неправильными аргументами):&lt;br /&gt;
#'''abbr.py &amp;lt;ABBR&amp;gt;''' – возвращает из словаря расшифровку сокращения &amp;lt;ABBR&amp;gt;;&lt;br /&gt;
#'''abbr.py -a &amp;lt;ABBR&amp;gt;'' &amp;lt;MEANING&amp;gt;''' – добавляет в словарь расшифровку сокращения. В силу особенностей словарного типа данных в Python, эта же команда изменяет расшифровку для уже существующей аббревиатуры;&lt;br /&gt;
#'''abbr.py -d &amp;lt;ABBR&amp;gt;''' – удаляет из словаря запись для указанного сокращения.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание на вторую строку – здесь указывается кодировка исходного текста (подробности см. на странице http://www.python.org/peps/pep-0263.html). Если вы используете не UTF-8, то укажите в этой строке свою кодировку (например, koi8-r).&lt;br /&gt;
&lt;br /&gt;
Строки, обрамлённые утроенными кавычками, в данном случае можно рассматривать как многострочные комментарии.&lt;br /&gt;
&lt;br /&gt;
Оператор '''global''' в функции '''openDictionary()''' делает переменную '''dictionary''' доступной за пределами функции. В противном случае её действие распространялось бы только на эту функцию. Ещё один интересный момент – то, как описан формальный аргумент функции. В данном случае мы задаем для переменной значение по умолчанию. Если в дальнейшем при вызове функции вы не передадите в неё аргумент, будет использовано значение переменной '''dictfile'''.&lt;br /&gt;
&lt;br /&gt;
Несколько слов нужно сказать о самом модуле '''anydbm'''. С его помощью Python выполняет поиск доступного dbm-пакета в текущей системе (вам не нужно об этом беспокоиться). Данные в файле '''DBM''' организованы по словарному принципу (ключ – значение), поэтому данный файл может быть естественным образом сопоставлен с переменной типа «словарь». Все дальнейшие операции с данными словаря для программиста выглядят как обычные, а dbm-модуль позаботится о том, чтобы все данные оказались сохранены в файл. Собственно говоря, '''dbm'''-файл вы можете рассматривать как словарь, содержимое которого  не теряется между запусками программы. также обратите внимание, что  при подключении этого модуля мы используем псевдоним.&lt;br /&gt;
&lt;br /&gt;
Итак, в функции '''openDictionary()''' мы открываем файл '''dict.dbm''' (второй параметр – ''''c'''' – даёт указание создать такой файл, если его ещё нет) и сопоставляем его со словарём '''dictionary'''. Конструкция «'''try – except'''» служит для обработки ошибок. В блок '''try''' мы помещаем потенциально опасные операции (которые могут завершиться с ошибкой), а блок '''except''' содержит код, который будет выполнен в случае возникновения ошибки в блоке '''try'''. Оператор raise генерирует сообщение об ошибке и прерывает выполнение программы.&lt;br /&gt;
&lt;br /&gt;
Далее описаны три функции, реализующие заявленную выше функциональность. Пожалуй, в пояснении нуждается здесь только оператор pass в функции '''delMeaning()''': это пустой оператор, который ничего не делает – если нужного ключа в словаре нет, то и удалять нечего.&lt;br /&gt;
&lt;br /&gt;
Ну и в конце сценария, в секции оператора '''if''', вы можете увидеть пример обработки аргументов командной строки.&lt;br /&gt;
&lt;br /&gt;
Конечно, этот учебный пример не лишён недостатков: невозможно сделать несколько записей, имеющих одинаковую аббревиатуру, работа чувствительна к регистру символов (введя запись для «UDP», вы не сможете получить значение по ключу «udp»), и т.д. Однако сейчас нам важен не функционал, а собственно языковые конструкции.&lt;br /&gt;
&lt;br /&gt;
==Возвращаясь к модулям==&lt;br /&gt;
&lt;br /&gt;
Итак, мы написали функцию, которая может оказаться крайне полезной  в других программах. Как бы было хорошо, если бы оказалось возможным поместить её в модуль! А ведь нет ничего проще – она уже в модуле. Да-да! Вы можете просто подключить написанную выше программу в качестве модуля (одним из операторов, '''import''' или '''from''' – '''import''') и спокойно использовать определённые в ней переменные и функции!&lt;br /&gt;
&lt;br /&gt;
В этом заключается одно из преимуществ Python по сравнению с его «прямым конкурентом» - языком Perl. В Perl вам пришлось бы специально оформлять вашу программу как модуль (как минимум, потребуется оператор '''package'''). В Python концепция повторного использования кода заложена в основу синтаксиса и не требует от вас совершенно никаких усилий. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import abbr&lt;br /&gt;
abbr.delMeaning(‘UDP’)&lt;br /&gt;
print abbr.getMeaning(‘IP’)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, вам достаточно импортировать '''py'''-программу (расширение не указывается), и вы можете в полной мере воспользоваться всем созданным ранее. Единственное, этот файл должен быть доступен для поиска (самый простой вариант – поместить его в текущий  каталог).&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что в момент импортирования переменная '''__name__''' в подключаемом модуле будет иметь значение, совпадающее с именем модуля. Поэтому в данном случае вместо секции '''if''' сценария '''abbr.py''' будет выполнена секция '''else'''. Подобный оператор '''if – else''' присутствует практически в каждой программе на языке Python и позволяет использовать ее и как модуль, и как самостоятельный сценарий (в последнем случае, как нетрудно догадаться, переменная '''__name__''' будет иметь значение '''“__main__”''').&lt;br /&gt;
&lt;br /&gt;
Итак, вы уже в состоянии разрабатывать довольно серьёзные и полезные программы. Однако не научившись работать с классами, вы не познаете всю мощь Python. В следующий раз мы заполним и этот пробел.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:Python</id>
		<title>LXF77:Python</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:Python"/>
				<updated>2008-04-26T11:08:14Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Возвращаясь к модулям */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Часть 3. Итак, познакомившись с типами данных, доступных в языке Python, мы, под чутким руководством '''Сергея Супрунова''' морально готовы приступить к более серьёзным вещам. На сегодня программа-минимум – разобраться с модулями и научиться писать свои функции.''&lt;br /&gt;
&lt;br /&gt;
==Модули==&lt;br /&gt;
&lt;br /&gt;
Начнем со стандартных модулей. Стандартными их называют потому, что они, как правило, уже включены в вашу поставку Python (будь то Linux, FreeBSD или даже Windows) и не требуют дополнительной инсталляции. Как вы видели в конце прошлого урока, модуль подключается оператором '''import'''. В качестве параметров вы можете указать любое количество модулей. Также допускается любое число операторов '''import''' в любой точке вашей программы.&lt;br /&gt;
&lt;br /&gt;
Для чего же нужны модули? Чуть позже, когда мы напишем свою функцию, вы увидите, что с помощью модуля очень легко реализуется концепция повторного использования кода. Пока же модули интересны нам как способ расширения возможностей вашей программы. С их помощью вы подключаете уже написанные кем-то наборы функций и методов, которые сможете использовать почти так же, как если бы они были встроенными (такими, как рассмотренная нами ранее '''float()''').&lt;br /&gt;
&lt;br /&gt;
Начнем с модуля '''sys'''. В нем определен ряд переменных, содержащих информацию об операционной системе, дескрипторы стандартных потоков ввода, вывода и ошибок ('''stdin''', '''stdout''' и '''stderr''' соответствен но), и так далее. рассмотрим небольшой пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import sys&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.arch, sys.platform&lt;br /&gt;
 i386 linux2&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.version&lt;br /&gt;
 2.4.1 (#1, Sep 13 2005, 00:39:20)&lt;br /&gt;
 [GCC 4.0.2 20050901 (prerelease) (SUSE Linux)]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.maxint&lt;br /&gt;
 2147483647&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, чтобы получить доступ к определённым в модуле переменным (впрочем, это относится и к остальным объектам), перед их именем следует указать имя модуля. Это оберегает от конфликта имён, когда объявленная вами переменная или функция имеет такое же имя, как и определенная в модуле. то есть каждый модуль имеет свое пространство имен, доступ к которому осуществляется по имени модуля. Если имя модуля слишком неудобно для работы, вы можете указать для него псевдоним после ключевого слова '''as''' (например, '''import SimpleXMLRPCServer as rpc'''), и в дальнейшем использовать это упрощённое имя. Впрочем, иногда удобнее (а порой и необходимо), что-бы имена, определенные в модуле, были импортированы непосредственно в пространство имён основной программы. Для этого предусмотрена несколько иная конструкция:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from sys import *&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print platform&lt;br /&gt;
 linux2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно обращаться к объектам модуля непосредственно, но будьте осторожны – вы потеряете все определённые вами переменные и функции, имена которых совпадут с именами определенных в модуле.&lt;br /&gt;
&lt;br /&gt;
Символ «звездочка» в операторе '''from - import''' означает, что должно быть импортировано всё, что определено в модуле. Вы также можете перечислить только то, что желаете сделать доступным в вашей про грамме (например, '''from sys import version''').&lt;br /&gt;
&lt;br /&gt;
Ещё одна важнейшая переменная модуля sys – список '''sys.argv''', в который в момент запуска Python-программы помещаются аргументы, переданные в командной строке. Пример использования этого списка вы увидите далее в данной статье.&lt;br /&gt;
&lt;br /&gt;
==Модуль os==&lt;br /&gt;
&lt;br /&gt;
Пожалуй, самый популярный модуль Python – это '''os'''. Он предоставляет  вам ряд функций, позволяющих взаимодействовать с операционной системой: '''chroot()''', '''mkdir()''', '''setuid()''' и так далее. Названия, думаю,  говорят сами за себя. а как посмотреть полный список функций, доступных в модуле, я надеюсь, вы ещё помните с прошлого урока: '''dir(os)'''.&lt;br /&gt;
&lt;br /&gt;
Для работы с файловой системой практически незаменим подмодуль этого модуля – '''os.path'''. С его помощью вы можете определять типы файлов, установленные для них права доступа, и тому подобное. Нам ещё доведётся поработать с ним на практике. &lt;br /&gt;
&lt;br /&gt;
==Прочие модули==&lt;br /&gt;
&lt;br /&gt;
Вообще, в стандартную поставку Python входит несколько десятков  наиболее полезных модулей. Найти их можно в каталоге '''/usr/lib/python''' (на некоторых системах путь может быть иным, например, '''/usr/local/lib/python'''). Если быть точнее, то Python ищет свои модули в  каталогах, список которых возвращает переменная '''sys.path'''.&lt;br /&gt;
&lt;br /&gt;
Обращайте внимание на файлы с расширением '''py''' ('''pyc''' и '''pyo''' – это байт-код модулей, который используется для экономии ресурсов, поскольку при обращении к модулю повторная компиляция не требуется). Названия большинства из них говорят сами за себя, к тому же вы можете открыть любой модуль, чтобы ознакомиться с его кодом и, как правило, очень подробными комментариями. С некоторыми из них мы обязательно столкнёмся в дальнейшем.&lt;br /&gt;
&lt;br /&gt;
==Функции==&lt;br /&gt;
&lt;br /&gt;
Со встроенными функциями вы уже знакомы. Но что делать, если возможностей, заложенных в интерпретатор или стандартные модули, вам недостаточно? Всё просто – напишите собственную функцию!&lt;br /&gt;
&lt;br /&gt;
Пользовательская функция определяется оператором '''def''' (от '''define''' – определять). В качестве параметра указывается имя функции (оно  должно быть уникально в пределах пространства имён основной программы), а в скобках перечисляются её формальные аргументы. Далее  ставится двоеточие (как и в случае любых блочных операторов, таких как '''if''' или '''for'''), и на последующих строках, имеющих отступ, вводится код функции. Впрочем, когда речь идёт о Python, несколько строк кода способны сказать больше, чем пол-страницы текста на естественном языке. Чтобы лучше во всем разобраться, рассмотрим один пример (файл назовем '''abbr.py'''):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
“””&lt;br /&gt;
 Программа обслуживает небольшой словарь сокращений, используя anydbm&lt;br /&gt;
“””&lt;br /&gt;
import sys, anydbm as db&lt;br /&gt;
dictfile = ‘dict.dbm’&lt;br /&gt;
def openDictionary(dbmfile=dictfile):&lt;br /&gt;
     “”” Открыть словарь “””&lt;br /&gt;
     global dictionary&lt;br /&gt;
     try:&lt;br /&gt;
         dictionary = db.open(dbmfile, ‘c’)&lt;br /&gt;
     except:&lt;br /&gt;
         raise ‘Ошибка открытия файла’&lt;br /&gt;
def getMeaning(abbr):&lt;br /&gt;
     “”” Поиск расшифровки “””&lt;br /&gt;
     try:&lt;br /&gt;
&lt;br /&gt;
        return dictionary[abbr]&lt;br /&gt;
     except:&lt;br /&gt;
        return ‘[не определено]’&lt;br /&gt;
def addMeaning(abbr, meaning):&lt;br /&gt;
     “”” Добавить сокращение “””&lt;br /&gt;
     dictionary[abbr] = meaning&lt;br /&gt;
    def delMeaning(abbr):&lt;br /&gt;
     “”” Удалить сокращение “””&lt;br /&gt;
     try:&lt;br /&gt;
        del dictionary[abbr]&lt;br /&gt;
     except:&lt;br /&gt;
        pass&lt;br /&gt;
if __name__ == “__main__”:&lt;br /&gt;
     openDictionary()&lt;br /&gt;
     try:&lt;br /&gt;
        command = sys.argv[1]&lt;br /&gt;
        if command == ‘-a’:&lt;br /&gt;
            addMeaning(sys.argv[2], sys.argv[3])&lt;br /&gt;
        elif command == ‘-d’:&lt;br /&gt;
            delMeaning(sys.argv[2])&lt;br /&gt;
        else:&lt;br /&gt;
            abbr = sys.argv[1]&lt;br /&gt;
            print abbr + ‘ = ‘ + getMeaning(abbr)&lt;br /&gt;
     except:&lt;br /&gt;
        print “””\&lt;br /&gt;
 Неверные аргументы. Допустимый синтаксис:&lt;br /&gt;
 abbr.py &amp;lt;ABBR&amp;gt;                  - расшифровать сокращение&lt;br /&gt;
 abbr.py -a &amp;lt;ABBR&amp;gt; &amp;lt;MEANING&amp;gt;     - добавить расшифровку&lt;br /&gt;
 abbr.py -d &amp;lt;ABBR&amp;gt;                - удалить сокращение&lt;br /&gt;
 “””&lt;br /&gt;
 else:&lt;br /&gt;
     openDictionary()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эта программа реализует простейший консольный словарь сокращений. Только не забудьте сделать файл исполняемым ('''chmod u+x abbr.py'''). Поддерживаются три операции (информацию об этом вы получите, если попытаетесь вызвать сценарий с неправильными аргументами):&lt;br /&gt;
#'''abbr.py &amp;lt;ABBR&amp;gt;''' – возвращает из словаря расшифровку сокращения &amp;lt;ABBR&amp;gt;;&lt;br /&gt;
#'''abbr.py -a &amp;lt;ABBR&amp;gt;'' &amp;lt;MEANING&amp;gt;''' – добавляет в словарь расшифровку сокращения. В силу особенностей словарного типа данных в Python, эта же команда изменяет расшифровку для уже существующей аббревиатуры;&lt;br /&gt;
#'''abbr.py -d &amp;lt;ABBR&amp;gt;''' – удаляет из словаря запись для указанного сокращения.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание на вторую строку – здесь указывается кодировка исходного текста (подробности см. на странице http://www.python.org/peps/pep-0263.html). Если вы используете не UTF-8, то укажите в этой строке свою кодировку (например, koi8-r).&lt;br /&gt;
&lt;br /&gt;
Строки, обрамлённые утроенными кавычками, в данном случае можно рассматривать как многострочные комментарии.&lt;br /&gt;
&lt;br /&gt;
Оператор '''global''' в функции '''openDictionary()''' делает переменную '''dictionary''' доступной за пределами функции. В противном случае её действие распространялось бы только на эту функцию. Ещё один интересный момент – то, как описан формальный аргумент функции. В данном случае мы задаем для переменной значение по умолчанию. Если в дальнейшем при вызове функции вы не передадите в неё аргумент, будет использовано значение переменной '''dictfile'''.&lt;br /&gt;
&lt;br /&gt;
Несколько слов нужно сказать о самом модуле '''anydbm'''. С его помощью Python выполняет поиск доступного dbm-пакета в текущей системе (вам не нужно об этом беспокоиться). Данные в файле '''DBM''' организованы по словарному принципу (ключ – значение), поэтому данный файл может быть естественным образом сопоставлен с переменной типа «словарь». Все дальнейшие операции с данными словаря для программиста выглядят как обычные, а dbm-модуль позаботится о том, чтобы все данные оказались сохранены в файл. Собственно говоря, '''dbm'''-файл вы можете рассматривать как словарь, содержимое которого  не теряется между запусками программы. также обратите внимание, что  при подключении этого модуля мы используем псевдоним.&lt;br /&gt;
&lt;br /&gt;
Итак, в функции '''openDictionary()''' мы открываем файл '''dict.dbm''' (второй параметр – ''''c'''' – даёт указание создать такой файл, если его ещё нет) и сопоставляем его со словарём '''dictionary'''. Конструкция «'''try – except'''» служит для обработки ошибок. В блок '''try''' мы помещаем потенциально опасные операции (которые могут завершиться с ошибкой), а блок '''except''' содержит код, который будет выполнен в случае возникновения ошибки в блоке '''try'''. Оператор raise генерирует сообщение об ошибке и прерывает выполнение программы.&lt;br /&gt;
&lt;br /&gt;
Далее описаны три функции, реализующие заявленную выше функциональность. Пожалуй, в пояснении нуждается здесь только оператор pass в функции '''delMeaning()''': это пустой оператор, который ничего не делает – если нужного ключа в словаре нет, то и удалять нечего.&lt;br /&gt;
&lt;br /&gt;
Ну и в конце сценария, в секции оператора '''if''', вы можете увидеть пример обработки аргументов командной строки.&lt;br /&gt;
&lt;br /&gt;
Конечно, этот учебный пример не лишён недостатков: невозможно сделать несколько записей, имеющих одинаковую аббревиатуру, работа чувствительна к регистру символов (введя запись для «UDP», вы не сможете получить значение по ключу «udp»), и т.д. Однако сейчас нам важен не функционал, а собственно языковые конструкции.&lt;br /&gt;
&lt;br /&gt;
==Возвращаясь к модулям==&lt;br /&gt;
&lt;br /&gt;
Итак, мы написали функцию, которая может оказаться крайне полезной  в других программах. Как бы было хорошо, если бы оказалось возможным поместить её в модуль! А ведь нет ничего проще – она уже в модуле. Да-да! Вы можете просто подключить написанную выше программу в качестве модуля (одним из операторов, '''import''' или '''from''' – '''import''') и спокойно использовать определённые в ней переменные и функции!&lt;br /&gt;
&lt;br /&gt;
В этом заключается одно из преимуществ Python по сравнению с его «прямым конкурентом» - языком Perl. В Perl вам пришлось бы специально оформлять вашу программу как модуль (как минимум, потребуется оператор '''package'''). В Python концепция повторного использования кода заложена в основу синтаксиса и не требует от вас совершенно никаких усилий. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import abbr&lt;br /&gt;
abbr.delMeaning(‘UDP’)&lt;br /&gt;
print abbr.getMeaning(‘IP’)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, вам достаточно импортировать '''py'''-программу (расширение не указывается), и вы можете в полной мере воспользоваться всем созданным ранее. Единственное, этот файл должен быть доступен для поиска (самый простой вариант – поместить его в текущий  каталог).&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что в момент импортирования переменная '''__name__''' в подключаемом модуле будет иметь значение, совпадающее с именем модуля. Поэтому в данном случае вместо секции '''if''' сценария '''abbr.py''' будет выполнена секция '''else'''. Подобный оператор '''if – else''' присутствует практически в каждой программе на языке Python и позволяет использовать ее и как модуль, и как самостоятельный сценарий (в последнем случае, как нетрудно догадаться, переменная '''__name__''' будет иметь значение '''“__main__”''').&lt;br /&gt;
&lt;br /&gt;
Итак, вы уже в состоянии разрабатывать довольно серьёзные и полезные программы. Однако не научившись работать с классами, вы не познаете всю мощь Python. В следующий раз мы заполним и этот пробел.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:Python</id>
		<title>LXF77:Python</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:Python"/>
				<updated>2008-04-26T11:00:18Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Часть 3. Итак, познакомившись с типами данных, доступных в языке Python, мы, под чутким руководством '''Сергея Супрунова''' морально готовы приступить к более серьёзным вещам. На сегодня программа-минимум – разобраться с модулями и научиться писать свои функции.''&lt;br /&gt;
&lt;br /&gt;
==Модули==&lt;br /&gt;
&lt;br /&gt;
Начнем со стандартных модулей. Стандартными их называют потому, что они, как правило, уже включены в вашу поставку Python (будь то Linux, FreeBSD или даже Windows) и не требуют дополнительной инсталляции. Как вы видели в конце прошлого урока, модуль подключается оператором '''import'''. В качестве параметров вы можете указать любое количество модулей. Также допускается любое число операторов '''import''' в любой точке вашей программы.&lt;br /&gt;
&lt;br /&gt;
Для чего же нужны модули? Чуть позже, когда мы напишем свою функцию, вы увидите, что с помощью модуля очень легко реализуется концепция повторного использования кода. Пока же модули интересны нам как способ расширения возможностей вашей программы. С их помощью вы подключаете уже написанные кем-то наборы функций и методов, которые сможете использовать почти так же, как если бы они были встроенными (такими, как рассмотренная нами ранее '''float()''').&lt;br /&gt;
&lt;br /&gt;
Начнем с модуля '''sys'''. В нем определен ряд переменных, содержащих информацию об операционной системе, дескрипторы стандартных потоков ввода, вывода и ошибок ('''stdin''', '''stdout''' и '''stderr''' соответствен но), и так далее. рассмотрим небольшой пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import sys&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.arch, sys.platform&lt;br /&gt;
 i386 linux2&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.version&lt;br /&gt;
 2.4.1 (#1, Sep 13 2005, 00:39:20)&lt;br /&gt;
 [GCC 4.0.2 20050901 (prerelease) (SUSE Linux)]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.maxint&lt;br /&gt;
 2147483647&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, чтобы получить доступ к определённым в модуле переменным (впрочем, это относится и к остальным объектам), перед их именем следует указать имя модуля. Это оберегает от конфликта имён, когда объявленная вами переменная или функция имеет такое же имя, как и определенная в модуле. то есть каждый модуль имеет свое пространство имен, доступ к которому осуществляется по имени модуля. Если имя модуля слишком неудобно для работы, вы можете указать для него псевдоним после ключевого слова '''as''' (например, '''import SimpleXMLRPCServer as rpc'''), и в дальнейшем использовать это упрощённое имя. Впрочем, иногда удобнее (а порой и необходимо), что-бы имена, определенные в модуле, были импортированы непосредственно в пространство имён основной программы. Для этого предусмотрена несколько иная конструкция:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from sys import *&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print platform&lt;br /&gt;
 linux2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно обращаться к объектам модуля непосредственно, но будьте осторожны – вы потеряете все определённые вами переменные и функции, имена которых совпадут с именами определенных в модуле.&lt;br /&gt;
&lt;br /&gt;
Символ «звездочка» в операторе '''from - import''' означает, что должно быть импортировано всё, что определено в модуле. Вы также можете перечислить только то, что желаете сделать доступным в вашей про грамме (например, '''from sys import version''').&lt;br /&gt;
&lt;br /&gt;
Ещё одна важнейшая переменная модуля sys – список '''sys.argv''', в который в момент запуска Python-программы помещаются аргументы, переданные в командной строке. Пример использования этого списка вы увидите далее в данной статье.&lt;br /&gt;
&lt;br /&gt;
==Модуль os==&lt;br /&gt;
&lt;br /&gt;
Пожалуй, самый популярный модуль Python – это '''os'''. Он предоставляет  вам ряд функций, позволяющих взаимодействовать с операционной системой: '''chroot()''', '''mkdir()''', '''setuid()''' и так далее. Названия, думаю,  говорят сами за себя. а как посмотреть полный список функций, доступных в модуле, я надеюсь, вы ещё помните с прошлого урока: '''dir(os)'''.&lt;br /&gt;
&lt;br /&gt;
Для работы с файловой системой практически незаменим подмодуль этого модуля – '''os.path'''. С его помощью вы можете определять типы файлов, установленные для них права доступа, и тому подобное. Нам ещё доведётся поработать с ним на практике. &lt;br /&gt;
&lt;br /&gt;
==Прочие модули==&lt;br /&gt;
&lt;br /&gt;
Вообще, в стандартную поставку Python входит несколько десятков  наиболее полезных модулей. Найти их можно в каталоге '''/usr/lib/python''' (на некоторых системах путь может быть иным, например, '''/usr/local/lib/python'''). Если быть точнее, то Python ищет свои модули в  каталогах, список которых возвращает переменная '''sys.path'''.&lt;br /&gt;
&lt;br /&gt;
Обращайте внимание на файлы с расширением '''py''' ('''pyc''' и '''pyo''' – это байт-код модулей, который используется для экономии ресурсов, поскольку при обращении к модулю повторная компиляция не требуется). Названия большинства из них говорят сами за себя, к тому же вы можете открыть любой модуль, чтобы ознакомиться с его кодом и, как правило, очень подробными комментариями. С некоторыми из них мы обязательно столкнёмся в дальнейшем.&lt;br /&gt;
&lt;br /&gt;
==Функции==&lt;br /&gt;
&lt;br /&gt;
Со встроенными функциями вы уже знакомы. Но что делать, если возможностей, заложенных в интерпретатор или стандартные модули, вам недостаточно? Всё просто – напишите собственную функцию!&lt;br /&gt;
&lt;br /&gt;
Пользовательская функция определяется оператором '''def''' (от '''define''' – определять). В качестве параметра указывается имя функции (оно  должно быть уникально в пределах пространства имён основной программы), а в скобках перечисляются её формальные аргументы. Далее  ставится двоеточие (как и в случае любых блочных операторов, таких как '''if''' или '''for'''), и на последующих строках, имеющих отступ, вводится код функции. Впрочем, когда речь идёт о Python, несколько строк кода способны сказать больше, чем пол-страницы текста на естественном языке. Чтобы лучше во всем разобраться, рассмотрим один пример (файл назовем '''abbr.py'''):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
“””&lt;br /&gt;
 Программа обслуживает небольшой словарь сокращений, используя anydbm&lt;br /&gt;
“””&lt;br /&gt;
import sys, anydbm as db&lt;br /&gt;
dictfile = ‘dict.dbm’&lt;br /&gt;
def openDictionary(dbmfile=dictfile):&lt;br /&gt;
     “”” Открыть словарь “””&lt;br /&gt;
     global dictionary&lt;br /&gt;
     try:&lt;br /&gt;
         dictionary = db.open(dbmfile, ‘c’)&lt;br /&gt;
     except:&lt;br /&gt;
         raise ‘Ошибка открытия файла’&lt;br /&gt;
def getMeaning(abbr):&lt;br /&gt;
     “”” Поиск расшифровки “””&lt;br /&gt;
     try:&lt;br /&gt;
&lt;br /&gt;
        return dictionary[abbr]&lt;br /&gt;
     except:&lt;br /&gt;
        return ‘[не определено]’&lt;br /&gt;
def addMeaning(abbr, meaning):&lt;br /&gt;
     “”” Добавить сокращение “””&lt;br /&gt;
     dictionary[abbr] = meaning&lt;br /&gt;
    def delMeaning(abbr):&lt;br /&gt;
     “”” Удалить сокращение “””&lt;br /&gt;
     try:&lt;br /&gt;
        del dictionary[abbr]&lt;br /&gt;
     except:&lt;br /&gt;
        pass&lt;br /&gt;
if __name__ == “__main__”:&lt;br /&gt;
     openDictionary()&lt;br /&gt;
     try:&lt;br /&gt;
        command = sys.argv[1]&lt;br /&gt;
        if command == ‘-a’:&lt;br /&gt;
            addMeaning(sys.argv[2], sys.argv[3])&lt;br /&gt;
        elif command == ‘-d’:&lt;br /&gt;
            delMeaning(sys.argv[2])&lt;br /&gt;
        else:&lt;br /&gt;
            abbr = sys.argv[1]&lt;br /&gt;
            print abbr + ‘ = ‘ + getMeaning(abbr)&lt;br /&gt;
     except:&lt;br /&gt;
        print “””\&lt;br /&gt;
 Неверные аргументы. Допустимый синтаксис:&lt;br /&gt;
 abbr.py &amp;lt;ABBR&amp;gt;                  - расшифровать сокращение&lt;br /&gt;
 abbr.py -a &amp;lt;ABBR&amp;gt; &amp;lt;MEANING&amp;gt;     - добавить расшифровку&lt;br /&gt;
 abbr.py -d &amp;lt;ABBR&amp;gt;                - удалить сокращение&lt;br /&gt;
 “””&lt;br /&gt;
 else:&lt;br /&gt;
     openDictionary()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эта программа реализует простейший консольный словарь сокращений. Только не забудьте сделать файл исполняемым ('''chmod u+x abbr.py'''). Поддерживаются три операции (информацию об этом вы получите, если попытаетесь вызвать сценарий с неправильными аргументами):&lt;br /&gt;
#'''abbr.py &amp;lt;ABBR&amp;gt;''' – возвращает из словаря расшифровку сокращения &amp;lt;ABBR&amp;gt;;&lt;br /&gt;
#'''abbr.py -a &amp;lt;ABBR&amp;gt;'' &amp;lt;MEANING&amp;gt;''' – добавляет в словарь расшифровку сокращения. В силу особенностей словарного типа данных в Python, эта же команда изменяет расшифровку для уже существующей аббревиатуры;&lt;br /&gt;
#'''abbr.py -d &amp;lt;ABBR&amp;gt;''' – удаляет из словаря запись для указанного сокращения.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание на вторую строку – здесь указывается кодировка исходного текста (подробности см. на странице http://www.python.org/peps/pep-0263.html). Если вы используете не UTF-8, то укажите в этой строке свою кодировку (например, koi8-r).&lt;br /&gt;
&lt;br /&gt;
Строки, обрамлённые утроенными кавычками, в данном случае можно рассматривать как многострочные комментарии.&lt;br /&gt;
&lt;br /&gt;
Оператор '''global''' в функции '''openDictionary()''' делает переменную '''dictionary''' доступной за пределами функции. В противном случае её действие распространялось бы только на эту функцию. Ещё один интересный момент – то, как описан формальный аргумент функции. В данном случае мы задаем для переменной значение по умолчанию. Если в дальнейшем при вызове функции вы не передадите в неё аргумент, будет использовано значение переменной '''dictfile'''.&lt;br /&gt;
&lt;br /&gt;
Несколько слов нужно сказать о самом модуле '''anydbm'''. С его помощью Python выполняет поиск доступного dbm-пакета в текущей системе (вам не нужно об этом беспокоиться). Данные в файле '''DBM''' организованы по словарному принципу (ключ – значение), поэтому данный файл может быть естественным образом сопоставлен с переменной типа «словарь». Все дальнейшие операции с данными словаря для программиста выглядят как обычные, а dbm-модуль позаботится о том, чтобы все данные оказались сохранены в файл. Собственно говоря, '''dbm'''-файл вы можете рассматривать как словарь, содержимое которого  не теряется между запусками программы. также обратите внимание, что  при подключении этого модуля мы используем псевдоним.&lt;br /&gt;
&lt;br /&gt;
Итак, в функции '''openDictionary()''' мы открываем файл '''dict.dbm''' (второй параметр – ''''c'''' – даёт указание создать такой файл, если его ещё нет) и сопоставляем его со словарём '''dictionary'''. Конструкция «'''try – except'''» служит для обработки ошибок. В блок '''try''' мы помещаем потенциально опасные операции (которые могут завершиться с ошибкой), а блок '''except''' содержит код, который будет выполнен в случае возникновения ошибки в блоке '''try'''. Оператор raise генерирует сообщение об ошибке и прерывает выполнение программы.&lt;br /&gt;
&lt;br /&gt;
Далее описаны три функции, реализующие заявленную выше функциональность. Пожалуй, в пояснении нуждается здесь только оператор pass в функции '''delMeaning()''': это пустой оператор, который ничего не делает – если нужного ключа в словаре нет, то и удалять нечего.&lt;br /&gt;
&lt;br /&gt;
Ну и в конце сценария, в секции оператора '''if''', вы можете увидеть пример обработки аргументов командной строки.&lt;br /&gt;
&lt;br /&gt;
Конечно, этот учебный пример не лишён недостатков: невозможно сделать несколько записей, имеющих одинаковую аббревиатуру, работа чувствительна к регистру символов (введя запись для «UDP», вы не сможете получить значение по ключу «udp»), и т.д. Однако сейчас нам важен не функционал, а собственно языковые конструкции.&lt;br /&gt;
&lt;br /&gt;
==Возвращаясь к модулям==&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:Python</id>
		<title>LXF77:Python</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:Python"/>
				<updated>2008-04-26T10:34:23Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: Новая: ''Часть 3. Итак, познакомившись с типами данных, доступных в языке Python, мы, под чутким руководством '''Сер...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Часть 3. Итак, познакомившись с типами данных, доступных в языке Python, мы, под чутким руководством '''Сергея Супрунова''' морально готовы приступить к более серьёзным вещам. На сегодня программа-минимум – разобраться с модулями и научиться писать свои функции.''&lt;br /&gt;
&lt;br /&gt;
==Модули==&lt;br /&gt;
&lt;br /&gt;
Начнем со стандартных модулей. Стандартными их называют потому, что они, как правило, уже включены в вашу поставку Python (будь то Linux, FreeBSD или даже Windows) и не требуют дополнительной инсталляции. Как вы видели в конце прошлого урока, модуль подключается оператором '''import'''. В качестве параметров вы можете указать любое количество модулей. Также допускается любое число операторов '''import''' в любой точке вашей программы.&lt;br /&gt;
&lt;br /&gt;
Для чего же нужны модули? Чуть позже, когда мы напишем свою функцию, вы увидите, что с помощью модуля очень легко реализуется концепция повторного использования кода. Пока же модули интересны нам как способ расширения возможностей вашей программы. С их помощью вы подключаете уже написанные кем-то наборы функций и методов, которые сможете использовать почти так же, как если бы они были встроенными (такими, как рассмотренная нами ранее '''float()''').&lt;br /&gt;
&lt;br /&gt;
Начнем с модуля '''sys'''. В нем определен ряд переменных, содержащих информацию об операционной системе, дескрипторы стандартных потоков ввода, вывода и ошибок ('''stdin''', '''stdout''' и '''stderr''' соответствен но), и так далее. рассмотрим небольшой пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import sys&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.arch, sys.platform&lt;br /&gt;
 i386 linux2&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.version&lt;br /&gt;
 2.4.1 (#1, Sep 13 2005, 00:39:20)&lt;br /&gt;
 [GCC 4.0.2 20050901 (prerelease) (SUSE Linux)]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print sys.maxint&lt;br /&gt;
 2147483647&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, чтобы получить доступ к определённым в модуле переменным (впрочем, это относится и к остальным объектам), перед их именем следует указать имя модуля. Это оберегает от конфликта имён, когда объявленная вами переменная или функция имеет такое же имя, как и определенная в модуле. то есть каждый модуль имеет свое пространство имен, доступ к которому осуществляется по имени модуля. Если имя модуля слишком неудобно для работы, вы можете указать для него псевдоним после ключевого слова '''as''' (например, '''import SimpleXMLRPCServer as rpc'''), и в дальнейшем использовать это упрощённое имя. Впрочем, иногда удобнее (а порой и необходимо), что-бы имена, определенные в модуле, были импортированы непосредственно в пространство имён основной программы. Для этого предусмотрена несколько иная конструкция:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from sys import *&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print platform&lt;br /&gt;
 linux2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно обращаться к объектам модуля непосредственно, но будьте осторожны – вы потеряете все определённые вами переменные и функции, имена которых совпадут с именами определенных в модуле.&lt;br /&gt;
&lt;br /&gt;
Символ «звездочка» в операторе '''from - import''' означает, что должно быть импортировано всё, что определено в модуле. Вы также можете перечислить только то, что желаете сделать доступным в вашей про грамме (например, '''from sys import version''').&lt;br /&gt;
&lt;br /&gt;
Ещё одна важнейшая переменная модуля sys – список '''sys.argv''', в который в момент запуска Python-программы помещаются аргументы, переданные в командной строке. Пример использования этого списка вы увидите далее в данной статье.&lt;br /&gt;
&lt;br /&gt;
==Модуль os==&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:Xen</id>
		<title>LXF77:Xen</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:Xen"/>
				<updated>2008-04-25T02:15:36Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Управление CPU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Xen: виртуальный роман==&lt;br /&gt;
&lt;br /&gt;
виртуализуйте оборудование и удивите друзей своим мастерством. Пол Хадсон покажет, как справиться с установкой Xen.&lt;br /&gt;
&lt;br /&gt;
Пускай у вас мощнейший компьютер – этакий Athlon FX-60, 4 ГБ ОЗУ, 1000 ГБ жесткого диска и Linux-система, и все таки единственная ошибка при обновлении операционной системы может вывести его из строя. Произошло повреждение файла настроек, обнаружились ошибки в Glibc или пропажа модуля ядра – и ваша ОС рухнула придется восстанавливать систему используя резервную копию.&lt;br /&gt;
&lt;br /&gt;
Но на грабли наступать вовсе не обязательно: клонируйте установленную ОС, запустите ее на виртуальной машине и выполните пробное обновление виртуально. если не обошлось без ошибок, то обновление можно отменить, виртуальную машину отключить, а ваша система останется невредимой.&lt;br /&gt;
&lt;br /&gt;
Это только один из способов применения виртуализации, на самом деле их гораздо больше. виртуализация произвела революцию на рынке серверов, так как позволяет снизить объем неиспользованных ресурсов. к примеру, два сервера, допустим, с Apache и MySQL, загруженных на 25%, можно разместить на одном физическом сервере, организовав на нем две виртуальные машины – затраты на оборудование и обслуживание уменьшатся вдвое. Другой популярный пример использования виртуализации в бизнесе –создание кластеров и их использование для обеспечения дополнительной надежности, а также для отработки сложных сценариев на простых Пк.&lt;br /&gt;
&lt;br /&gt;
Энтузиасты заинтересуются и просто шансом поиграть с новой технологией. владельцам домашних компьютеров виртуализация предоставляет возможность одновременно запустить несколько ОС, например, Fedora Core 4 и Fedora Core 5 Test 2, а также SUSe 10.0, NetBSD и в некоторых случаях Windows. Круто!&lt;br /&gt;
&lt;br /&gt;
===С чего начать===&lt;br /&gt;
&lt;br /&gt;
Самое свежее решение по виртуализации – программа Xen – явилось из мира Open Source. Мы рассказывали о Xen в LXF 67 и предположили, что за ней будущее виртуализации. так вот, это будущее настало!&lt;br /&gt;
&lt;br /&gt;
Что особенного в данной технологии? Подход Xen сильно отличается от так называемой аппаратной виртуализации, применяемой в VMware и других укоренившихся продуктах. В VMware гостевая ОС остается в неведении о своем виртуальном статусе, а в Xen исходный код гостевой ОС должен быть немного подправлен, чтобы она понимала: ее место – под Xen. Это похоже на отношение симбиоза в природе: гостевая ОС знает о существовании Xen и реагирует на команды, а базовая ОС знает о своих гостях и получает от них информацию.&lt;br /&gt;
&lt;br /&gt;
Новый подход окрестили «паравиртуализацией». На практике, паравиртуализация означает, что работа виртуальной машины (Virtual Machine, VM) не требует трудоемких операций, так как она осознает свой виртуальный статус и поэтому разделяет доступ ко всем ресурсам с остальными машинами без вмешательства Xen.&lt;br /&gt;
&lt;br /&gt;
В результате скорость работы Xen VM всего лишь на 3–8% меньше, чем запуск системы на настоящем оборудовании, поэтому «почувствовать разницу» не удастся. &lt;br /&gt;
&lt;br /&gt;
===Принцип работы Xen ===&lt;br /&gt;
&lt;br /&gt;
С тех пор, как мы рассказывали о Xen с десяток выпусков назад, она вошла в состав многих популярных дистрибутивов. SUSE, Fedora, Ubuntu, Gentoo и другие включили поддержку Xen, хотя качество поддержки зависит от дистрибутива. Xen негласно является одной из архитектур, под которые создается ядро Linux, наряду с x86, x86-64 и PowerPC.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=АППАРАТНАЯ ВИРТУАЛИЗАЦИЯ&lt;br /&gt;
|Содержание=&lt;br /&gt;
Паравиртуализация устраняет падение производительности, хотя придется подправить исходный код гостевой ОС. но это относится не ко всем архитектурам CPU. Архитектура Intel (x86–386, Pentium 4) а также клоны AMD и многие другие процессоры полагаются на иерархическую систему колец для назначения привилегий. Внутри процессора каждая программа (включая ОС) работает в кольце 0, 1, 2 или 3. в кольце 0 программы имеют полный контроль над машиной, а программы кольца 3 наиболее ограничены. на большинстве компьютеров ОС работает в кольце 0, а пользовательские программы в кольце 3, то есть даже самые агрессивные пользователи физически не могут отпихнуть ОС от ресурсов.&lt;br /&gt;
&lt;br /&gt;
Проблема, связанная с кольцевой архитектурой, заключается в следующем: операционная система воображает, что будет работать в кольце 0. но виртуальную ОС в кольце 0 запустить нельзя: это угрожает безопасности базовой ОС. Поэтому виртуальная ОС запускается в кольце с меньшим уровнем привилегий. когда ОС проверяет, в каком кольце она работает, и получает ответ – не 0, ее работа аварийно завершается. Данная проблема обычно решается т.н. двоичной корректировкой: VM отслеживает запросы гостевой ОС на номер кольца и подменяет ответ. Двоичная корректировка – довольно трудоемкий процесс, поэтому традиционные техники виртуализации требуют мощного оборудования.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Xen-0123.jpg|center|354px]]&lt;br /&gt;
&lt;br /&gt;
Паравиртуализация снимает проблему: ОС больше не претендует на работу в кольце 0, значит, никакая двоичная корректировка не нужна. Но что делать, если ОС невозможно подправить? Intel решила задачу с помощью технологии Vanderpool (сейчас просто VT), а AMD использует технологию Pacifica, которая заодно виртуализует контроллер памяти, тоже встроенный в чипы AMD64. новые чипы работают с двумя наборами привилегированных колец: VMX root и VMX Nonroot. Оба набора имеют кольца с 0 по 3, но только в наборе VMX&lt;br /&gt;
root кольцо 0 имеет полный контроль над компьютером. набор VMX Nonroot виртуализуется чипом: когда немодифицирован-ная ОС проверяет, в каком кольце она работает, то получает ответ `0`, но не может угадать, какому из двух наборов это кольцо принадлежит.&lt;br /&gt;
&lt;br /&gt;
VT и Pacifica все равно требуют программного обеспечения для поддержки виртуализации гостевых ОС и взаимодействия с пользователями. Xen поддерживает обе технологии, поэтому, если у вас имеется подходящее оборудование, вы можете запускать немодифицированные ОС (в том числе Windows XP) без потерь производительности.&lt;br /&gt;
|Ширина=400px}}&lt;br /&gt;
&lt;br /&gt;
Формально, когда вы устанавливаете Xen на компьютер, она становится главной операционной системой. Загрузка компьютера сопровождается загрузкой Xen OS, которая создает первоначальную виртуальную машину (известную как домен 0 или просто dom0), т.е. вашу базовую ОС. Все выглядит так, словно вы загружаете тот же Linux и затем X, как и до этого, но на самом деле вы используете виртуальную машину. Гостевая ОС dom0 является самой привилегированной, и поэтому имеет более высокий приоритет при доступе к оборудованию и вычислениях, чем другие гости. Этим гостям – обычно их называют непривилегированными доменами (domU) – требуется собственная порция оперативной памяти, а также постоянное место на диске для хранения своих данных.&lt;br /&gt;
&lt;br /&gt;
===Установка ядра===&lt;br /&gt;
&lt;br /&gt;
Хотя большинство дистрибутивов имеют поддержку Xen, мы потренируемся в сборке из исходных текстов, для гарантии, что вы сможете повторить процедуру установки с любым дистрибутивом. В данном руководстве мы будем использовать дистрибутив Fedora Core 4.&lt;br /&gt;
&lt;br /&gt;
Прежде, чем мы начнем, необходимо сделать замечание: Xen должна работать с реальным оборудованием. Вы не сможете установить ее внутри Vmware или с использованием других средств виртуализации.&lt;br /&gt;
&lt;br /&gt;
===Как установить XEN===&lt;br /&gt;
&lt;br /&gt;
Хватит болтать – установим-ка Xen и запустим нашу основную ОС как виртуальную машину.&lt;br /&gt;
&lt;br /&gt;
====1. Устранение зависимостей====&lt;br /&gt;
&lt;br /&gt;
У Xen достаточно много зависимостей, и если вы хотите насладиться виртуализацией по максимуму, то их необходимо устранить. Вам потребуются полный набор для компиляции программ (GCC, make и др.), VNC (серверная и клиентская части), libvncserver, библиотека python-twisted, а также программа brctl, Curl (включая библиотеки разработки) и SDL (также включая библиотеки разработки).&lt;br /&gt;
&lt;br /&gt;
Если вы устанавливаете Fedora Core 4, выберите Custom Setup. Отключите брандмауэр и SELinux (они могут вызывать проблемы), затем выберите следующие пакеты из предложенного списка: &lt;br /&gt;
*Из категории ''X Window System'' выберите '''xorg-x11-Xnest'''.&lt;br /&gt;
*Пометьте Development Tools (список выбранных пакетов по умолчанию нас устраивает)&lt;br /&gt;
*Из категории System Tools выберите VNC.&lt;br /&gt;
*Из Network Servers выберите vncserver.&lt;br /&gt;
&lt;br /&gt;
Когда установка закончится, проведите первоначальную настройку системы. зайдите в систему и загрузите Gnome. Если вы используете не FC4, менеджер пакетов вашего дистрибутива наверняка может предложить эквиваленты вышеназванных программ. Установка Xnest необязательна, но без остальных пакетов не обойтись. &lt;br /&gt;
&lt;br /&gt;
Теперь нам необходимо получить libvncserver, следовательно нам на сайт http://libvncserver.sourceforge.net. На момент написания статьи там была доступна для скачивания «предварительная версия» в виде файла '''LibVNCServer-0.8pre.tar.gz'''. Откройте терминал, перейдите в директорию, в которую скопировали его, и наберите&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xpvfz LibVNCServer-0.8pre.tar.gz&lt;br /&gt;
 cd LibVNCServer-0.8pre&lt;br /&gt;
 ./configure&lt;br /&gt;
 Make&lt;br /&gt;
 su -&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если у вас Fedora Core, то остальные пакеты устанавливаются командой&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 yum install python-twisted bridge-utils curl  SDL-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании другого дистрибутива, менеджер пакетов может предложить их аналоги. Если вы не можете найти пакет '''bridge-utils''', то поищите тот, который предоставляет команду ''brctl''.&lt;br /&gt;
&lt;br /&gt;
Теперь пора установить Xen. С сайта http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads скачайте файл '''xen-3.0.0-src.tgz'''. Если доступна более новая версия, можете попробовать ее, но&lt;br /&gt;
тогда мы не гарантируем, что дальнейшие инструкции будут работать. Наша версия находится на диске к журналу в директории Magazine/Xen. &lt;br /&gt;
&lt;br /&gt;
====2. Сборка ядра Xen====&lt;br /&gt;
&lt;br /&gt;
Получив файл с Xen, отправляйтесь обратно в терминал и выполните следующие команды:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvpfz xen-3.0.0-src.tgz&lt;br /&gt;
 cd xen-unstable&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На диске в директории Magazine/Xen вы найдете специальную версию ядра Linux. Если вы скопируете ядро в свежесозданную директорию xen-unstable, Xen использует его для сборки своего образа. Если вы не скопируете наше ядро, то Xen скачает его из сети, да и вы сами можете поступить так же! Итак, ядро скопировано; перейдите в директорию xen-unstable и&lt;br /&gt;
запустите&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 make world&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вне зависимости от способа установки ядра Linux, ядро будет извлечено, модифицировано для работы с Xen, а затем собрано дважды: сначала как xen0 (для dom0), а затем как xenU (для domU). Компиляция – процесс долгий, поэтому у вас будет достаточно времени на какие-нибудь другие дела.&lt;br /&gt;
&lt;br /&gt;
После завершения компиляции можно двигаться дальше:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Новые ядра Xen скопируются в директорию '''/boot''', а файлы конфигурации – в вашу систему. Чтобы компьютер загружался с нашим ядром, необходимо создать образ начального RAM-диска, используя следующую команду&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkinitrd      /boot/initrd-2.6.12-xen0.img  2.6.12.6-xen0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первый параметр – путь, куда надо сохранить образ диска, а второй – имя директории с модулями в '''/lib/modules'''.&lt;br /&gt;
&lt;br /&gt;
====3. Конфигурация загрузчика====&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить ядро xen0 в загрузчик ''Grub'', откройте в текстовом редакторе файл '''/boot/grub/menu.lst'''. По умолчанию в Fedora он выглядит следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 default=0&lt;br /&gt;
 timeout=5&lt;br /&gt;
 splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;
 hiddenmenu&lt;br /&gt;
 &lt;br /&gt;
 title Fedora Core (2.6.11-1.1369_FC4)&lt;br /&gt;
 root (hd0,0)&lt;br /&gt;
 kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;
 initrd /initrd-2.6.11-1.1369_FC4.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо привести его к следующему виду&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 default=0&lt;br /&gt;
 timeout=5&lt;br /&gt;
 splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;
 hiddenmenu&lt;br /&gt;
 &lt;br /&gt;
 title Xen 3.0/XenLinux 2.6&lt;br /&gt;
 root (hd0,0)&lt;br /&gt;
 kernel /xen-3.0.0.gz dom0_mem=131072&lt;br /&gt;
 module /vmlinuz-2.6.12.6-xen0 ro root=/dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;
 module /initrd-2.6.12-xen0.img&lt;br /&gt;
&lt;br /&gt;
 title Fedora Core (2.6.11-1.1369_FC4)&lt;br /&gt;
 root (hd0,0)&lt;br /&gt;
 kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/&lt;br /&gt;
 dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;
 initrd /initrd-2.6.11-1.1369_FC4.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Заметим, что теперь мы загружаем ядро Xen, а не Linux. Мы передаем имя Linux- ядра в Xen, и она запускает его в качестве гостевой ОС виртуальной машины dom0. Параметр '''dom0_mem''' определяет, сколько ОЗУ мы хотим выделить '''dom0'''. В нашем случае это 128 MБ. Можно указать любое другое значение, но не забудьте умножить количество мегабайт, которое вы хотите выделить виртуальной машине, на 1024.&lt;br /&gt;
&lt;br /&gt;
Сохраните файл, перегрузитесь, и теперь по умолчанию система грузит ядро Xen, которое может не содержать нужных вам настроек – тогда придется отредактировать его конфигурацию или пересобрать нужные вам драйверы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=XEN НА ПРЕДПРИЯТИИ&lt;br /&gt;
|Содержание=&lt;br /&gt;
Вручение Xen администратору равносильно выдаче автомата калашникова неандертальцу: техника в руках дикаря приносит скорее вред, чем пользу, потому что требует специальных знаний и навыков. крупная фирма не станет действовать «в лоб» и сокращать количество серверов, загруженных на 25%, просто распределив их на меньшем количестве серверов с загрузкой 90% и выбрав Xen в качестве средства виртуализации. Конечно, такая возможность есть, но переход потребует огромных затрат на планирование, тестирование и внедрение. На наш урок вам потребуется час или около того; а сколько понадобится времени, если вы работаете на ответственной системе? Или если бы вам пришлось дублировать точные конфигурации сервера, а то и – самое сложное – развертывать Xen на множестве серверов и добиваться их слаженной работы? &lt;br /&gt;
&lt;br /&gt;
Сама по себе Xen – просто инструмент; в ее состав не входят другие средства управления, кроме рассмотренных здесь. Однако фирма XenSource, разработчик Xen, предусмотрела проприетарный программный продукт для управления, именуемый XenOptimizer. Он позволяет предприятиям развертывать и управлять Xen в вычислительных центрах, предоставляя консоль, с которой администратор может контролировать ресурсы, создавать и модифицировать виртуальные машины Xen, а также осуществлять динамическое распределение нагрузки на сервера, чтобы отвечать любым потребностям пользователей. если вы намерены развертывать Xen на более чем 10 физических серверах, то XenOptimizer может сэкономить время и деньги и даже спасти положение.&lt;br /&gt;
&lt;br /&gt;
http://www2.getxen.com/products/xenoptimizer.html/&lt;br /&gt;
|Ширина=400px}}&lt;br /&gt;
&lt;br /&gt;
Теперь войдите в систему, запустите консоль и наберите '''uname -a'''. 'xen0' в строке вывода результата команды сигнализирует о том, что вы теперь в домене 0. Переключитесь в режим root с помощью команды '''su -''' и запустите '''xend start''', а потом '''xm list'''. Последняя команда выводит список всех работающих в данный момент виртуальных машин. В этом списке вы видите dom0, которой выделено 128 MБ ОзУ. Поздравляем! Ваша система заработала в Xen!&lt;br /&gt;
&lt;br /&gt;
===Cоздание виртуальной гостевой ОС===&lt;br /&gt;
&lt;br /&gt;
Работали мы, работали...  и что вышло? Ваша система работает так же, как и до этого, верно? Нет, не совсем: теперь можно создавать непривилегированных гостей domU. Приступим...&lt;br /&gt;
&lt;br /&gt;
====1. Создание образов диска====&lt;br /&gt;
&lt;br /&gt;
Переключитесь в суперпользователя и запустите '''df -h''', чтобы проверить, сколько свободного места в системе. Вам понадобится 4 ГБ свободной памяти, однако примите во внимание объем текущей инсталляции Linux. Чтобы запустить гостя domU, необходимо сначала создать образ для его корневого раздела, а также образ для раздела подкачки. Следующие две команды создадут образ корневого раздела. Выполнять их надо из директории '''/root''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 dd if=/dev/zero of=vmdisk bs=1k seek=4096k count=1&lt;br /&gt;
 mkfs.ext3 vmdisk&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
За запуском второй команды последует предупреждение, что файл не является специальным блочным устройством; для продолжения, просто нажмите [y]. Установка параметра '''seek''' как 4096k дает нам образ диска размером в 4 ГБ; вы можете менять размер по своему усмотрению: 1024 соответствует 1 ГБ, 2048 – 2 ГБ, 8192 – 8 ГБ и т.д. В данный момент диск отформатирован как ext3, но он совершенно пуст, поэтому необходимо сделать на нем клон нашей системы.&lt;br /&gt;
&lt;br /&gt;
Следующие команды монтируют образ как loopback-устройство, а затем копируют на него вашу ОС. Если у вас много чего установлено или вы хотите скопировать только некоторые части системы, тогда придется быть более точным.&lt;br /&gt;
&lt;br /&gt;
Прежде чем продолжить, ответьте на&lt;br /&gt;
следующие вопросы:&lt;br /&gt;
*Вы проверили, какой объем занимает ваша установленная система с помощью '''df -h'''?&lt;br /&gt;
*Вы создали образ диска необходимого объема?&lt;br /&gt;
*Вы создали файл '''vmdisk''' в каталоге '''/root'''?&lt;br /&gt;
&lt;br /&gt;
Если ответом на все три вопроса было '''«да»''', тогда двигаемся дальше. Выполните следующие команды:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /mnt/vmdisk&lt;br /&gt;
 mount –o loop vmdisk /mnt/vmdisk&lt;br /&gt;
 cp –ax /{ bin,dev,etc,home,lib,sbin,usr,var} /mnt/vmdisk/&lt;br /&gt;
 mkdir /mnt/vmdisk/{proc,sys,tmp,root}&lt;br /&gt;
 chmod og+w /mnt/vmdisk/tmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команде '''cp -ax''' требуется ощутимое время для исполнения. Директории '''proc, sys, tmp''' и '''root''' копировать не нужно, они просто создаются командой mkdir. В некоторых дистрибутивах необходимо так-же скопировать каталог '''/opt''', однако под Fedora этого не понадобится.&lt;br /&gt;
&lt;br /&gt;
Последняя команда меняет права доступа к '''/tmp''', разрешая программам записывать туда свои данные.&lt;br /&gt;
&lt;br /&gt;
Гость dom0 имеет прямой доступ к оборудованию, в то время как гость domU будет использовать образ диска для хранения данных. Поэтому им необходимы разные настройки fstab. Откройте в текстовом редакторе файл '''/mnt/vmdisk/etc/fstab'''. В Fedora он будет выглядеть следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # This file is edited by fstab-sync - see ‘man  fstab-sync’ for details&lt;br /&gt;
 /dev/VolGroup00/LogVol00 	/ 		ext3 	defaults 1 1&lt;br /&gt;
 LABEL=/boot 		/boot 		ext3 	defaults 1 2&lt;br /&gt;
 /dev/devpts 			/dev/pts 	devpts 	gid=5,mode=620  0 0&lt;br /&gt;
 /dev/shm 			/dev/shm 	tmpfs 	defaults 0 0&lt;br /&gt;
 /dev/proc 			/proc 		proc 	defaults 0 0&lt;br /&gt;
 /dev/sys 			/sys 		sysfs 	defaults 0 0&lt;br /&gt;
 /dev/VolGroup00/LogVol01 swap 		swap  	defaults 0 0&lt;br /&gt;
 /dev/hdc 			/media/cdrom 	auto 	pamconsole,exec,noauto,managed 0 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, Fedora использует логические тома '''(LVM)''' для управления жесткими дисками, о чем говорит запись '''VolGroup00'''. Однако ваш файл '''fstab''' может просто использовать '''/dev/hda1''' и '''/dev/hda2'''. В нашем случае необходимо отредактировать файл, чтобы он монтировал '''hda1''' и '''hda2''' в качестве корневого раздела и раздела подкачки соответственно. Исправленный файл&lt;br /&gt;
должен выглядеть так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /dev/hda1 	/ 		ext3 	defaults 		1 1&lt;br /&gt;
 /dev/devpts 	/dev/pts 	devpts 	gid=5,mode=620 	0 0&lt;br /&gt;
 /dev/shm 	/dev/shm 	tmpfs 	defaults 		0 0&lt;br /&gt;
 /dev/proc 	/proc 		proc 	defaults 		0 0&lt;br /&gt;
 /dev/sys 	/sys 		sysfs 	defaults 		0 0&lt;br /&gt;
 /dev/hda2 	swap 		swap 	defaults 		0 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните его и выполните '''unmout /mnt/vmdisk''', чтобы размонтировать виртуальный образ. Это важно, т.к. Xen не может использовать файловые системы, которые уже смонтированы Linux. теперь создадим виртуальный диск для раздела подкачки объемом 256 MБ, следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 dd if=/dev/zero of=vmswap bs=1k seek=256k  count=1&lt;br /&gt;
 mkswap vmswap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====2. создание файла настройки====&lt;br /&gt;
&lt;br /&gt;
Создание дисков для виртуальной машины закончено, осталось настроить файл конфигурации. Выполните команду: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cp /etc/xen/xmexample1 ~/xmlinux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате файл с примером конфигурации Xen скопируется в текущую директорию. Откройте его в текстовом редакторе.&lt;br /&gt;
&lt;br /&gt;
Необходимо сделать несколько изменений – найдите следующие строки и исправьте их на указанные значения:&lt;br /&gt;
*`kernel=` в /boot/vmlinuz-2.6.12-xenU.&lt;br /&gt;
*`memory=` в 128&lt;br /&gt;
*`name=` в Linux1&lt;br /&gt;
*`disk=` в [ ‘file:/root/vmdisk,hda1,w’, ‘file:/root/vmswap,hda2,w’ ].&lt;br /&gt;
&lt;br /&gt;
Если ваша версия ядра отличается от нашей, то подправьте файл соответствующим образом. Память измеряется в мегабайтах; мы работаем со 128 MБ ОЗУ и 256-MБ диском подкачки, однако если у вас система мощнее, можете определить собственные значения параметров. Имя Linux1 дано, чтобы отличить VM от других (к тому же его легко запомнить); у каждойVM должно быть уникальное имя.&lt;br /&gt;
&lt;br /&gt;
Наконец, параметры диска определяют, что '''/root/vmdisk''' монтируется как '''hda1''' (корневой раздел гостя domU) с правами запись/чтение, а '''/root/vmswap''' монтируется как '''hda2''' (файл подкачки гостя domU), также с правами запись/чтение.&lt;br /&gt;
&lt;br /&gt;
Теперь можно запустить новую VM!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm create -c xmlinux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметр '''–c''' позволяет определить наш файл конфигурации для новой виртуальной машины. Если появляется ошибка 'Error connecting to xend: Connection refused', значит, вы забыли выполнить '''xend start''' от имени root на предыдущем шаге. Также может появиться ошибка ‘File /root/vmdisk is loopback-mounted through /dev/loop0’. Она говорит о том, что вы не отмонтировали образ виртуального диска.&lt;br /&gt;
&lt;br /&gt;
Ошибка ‘error creating domain: VM name ‘Linux1’ already in use` говорит сама за себя. Обычно она появляется после другой ошибки: Xen создает VM, пытается запустить ее и терпит неудачу, но созданную VM при этом не уничтожает. Выполнив '''xm list''', вы увидите, что Linux1 находится в состоянии '''p''' (приостановлена). Уничтожьте ее с помощью '''xm destroy''' Linux1 и создайте заново.&lt;br /&gt;
&lt;br /&gt;
Если не произошло ни одной ошибки (считайте себя счастливчиком!), вы увидите, как начнет загружаться новая машина. В конце концов появится приглашение войти в систему.  Используйте ваш логин и пароль, т.к. мы скопировали '''/etc/passwd''' на виртуальный диск.&lt;br /&gt;
&lt;br /&gt;
===Работа с XEN===&lt;br /&gt;
&lt;br /&gt;
В данный момент у нас работает Linux на Linux, хотя и только в командной строке. Посмотрим, как можно переключиться в графический режим, а также как управлять и работать с Xen. &lt;br /&gt;
&lt;br /&gt;
====Управление CPU====&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=СОВЕТ XEN: УСКОРЯЕМ ФАЙЛОВЫЕ СИСТЕМЫ&lt;br /&gt;
|Содержание=&lt;br /&gt;
В данном руководстве виртуальные машины использовали петлевые файловые системы: то, что они воспринимали как hda1 и hda2, в действительности было файлами на жестком диске. Максимальная производительность достигается на настоящих жестких дисках. их также рекомендуется использовать, если вам требуется более 8 файловых систем, т.к. по умолчанию в Linux предусмотрено одновременное подключение не более 8 loopback-устройств. Альтернатива – использование логических томов для виртуальных машин, что позволяет динамически менять размер виртуальных дисков и создавать снимки системы.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
В отличие от других техник виртуализации, при паравиртуализации, примененной в Xen, гостевая ОС знает о своем виртуальном статусе. На практике это означает, что мы может посылать гостевой ОС команды и получать от нее ответ. Например, откройте второй терминал (первый оставьте работать с гостевой ОС dom0), переключитесь в суперпользователя с помощью '''su -''' и выполните команду &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm shutdown Linux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нажав [enter], вы увидите, что на первом терминале появляются стандартные сообщения завершения работы Linux. Другими словами, Xen не выдернула VM из розетки: VM сама себя остановила и вернула контроль родительской ОС. &lt;br /&gt;
&lt;br /&gt;
Этим команда shutdown отличается от команды destroy, которая как раз убивает VM. Уничтожение VM с помощью destroy может повредить диск, поэтому ее не рекомендуется пускать в ход, пока ваша VM не будет приостановлена.&lt;br /&gt;
&lt;br /&gt;
Вернувшись в командную строку главной виртуальной машины и перейдя в режим суперпользователя, откройте в текстовом редакторе файл '''xmlinux1''', найдите строку с параметром vcpus и установите его значение равным 4. Если перед параметром стоит знак комментария (символ #), удалите его. теперь перезапустите машину с помощью&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm create –c Linux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и войдите под своей учетной записью. В выводе команды cat '''/proc/cpuinfo''' вы увидите, что в наличии имеется 4 CPU. Физически у нас всего лишь 1 процессор на материнской плате, но Xen это не волнует: она виртуализует столько CPU, сколько потребуется. Если у вас в системе физических процессоров несколько, можно изменить параметр `cpus` в файле '''xmlinux1''' и указать количество процессоров, на которых должна работать VM.&lt;br /&gt;
&lt;br /&gt;
====Управление ОЗУ====&lt;br /&gt;
&lt;br /&gt;
С процессорами мы научились управляться, но как насчет ОЗУ? Наберите '''top''' внутри гостевой машины domU. В левом верхнем углу вы увидите строку, похожую на ‘Mem: 134900k total’. Это объем ОЗУ, который мы выделили машине. Теперь с другого терминала (вашей главной машины) запустите от имени суперпользователя '''xm list'''. Вы увидите, что домен Linux1 работает и ему действительно выделено 128 MБ ОзУ. Давайте поменяем объем RAM! Выполните следующую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm mem-set Linux1 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы уменьшили объем доступной Linux1 памяти до 64 MБ.Снова запустите команду top в гостевой машине domU. Вы увидите ‘Mem: 65536k’, то есть то, что нам нужно. Посмотрим, как вы сделаете это в Vmware Workstation...&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=СОВЕТ XEN: СТАТИСТИКА&lt;br /&gt;
|Содержание=&lt;br /&gt;
Если нужно отследить загруженность нескольких VM, поможет программа Xentop. Она выводит загрузку ОЗУ, ЦПУ, виртуального ЦПУ и сети для всех доменов, все на одном экране.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Команда '''mem-set''' позволяет изменять размер ОзУ, доступный виртуальной машине. Максимальный объем выделенной ОЗУ не может превышать значения, определенного в файле настройки. т.е. вы можете создать машину с 256 MБ ОзУ, а затем с помощью ''mem-set'' ограничить доступный объем до 8–16 MБ (в этом случае ядро начнет убивать процессы, чтобы высвободить память). можно увеличить объем до 128 MБ или даже установить начальное значение 256 MБ, однако попытки выйти за пределы 256 MБ будут проигнорированы. Если хотите достичь большей гибкости, рекомендуем создавать виртуальные машины с большими начальными значениями ОЗУ (для этого измените значение `memory =` в файле '''xmlinux1'''), а затем уменьшать ОЗУ до реально имеющихся. Если же объем ОЗУ потребуется увеличить, у вас будет запас для маневра.&lt;br /&gt;
&lt;br /&gt;
====Сохранение и перезагрузка====&lt;br /&gt;
&lt;br /&gt;
Теперь рассмотрим возможности поинтереснее: т.к. ядро Xen управляет гостями Linux, можно сохранить состояние выбранной VM перед ее отключением! По существу, происходит создание дампа оперативной памяти VM. Его размер будет равен объему ОЗУ, выделенного виртуальной машине. Если захотите вернуться в сохраненное состояние, то Xen просто скопирует дамп обратно в ОЗУ. Не меняйте расположение файлов '''vmdisk''' и '''vmswap''' после сохранения состояния виртуальной машины. Сохранение и восстановление виртуальных машин можно осуществлять следующими двумя командами:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm save Linux1 Linux1.state&lt;br /&gt;
 xm restore Linux1.state&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=СОВЕТ XEN: АВТОЗАПУСК&lt;br /&gt;
|Содержание=&lt;br /&gt;
Если у вас установлено несколько виртуальных машин и вы хотите, чтобы они все запускались при загрузке системы, то скопируйте их файлы настройки (можно также создать символьные ссылки на них) в директорию /etc/xen/auto и обеспечьте выполнение скрипта xendomains. в Fedora добавить скрипт можно с помощью команды&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 chkconfig --level 345 xendomains on&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В некоторых дистрибутивах это можно сделать с помощью программ, имеющих графический интерфейс. Аналогично добавляется скрипт xend.&lt;br /&gt;
|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Первая команда сохраняет машину Linux1 в файл '''Linux1.state''', затем происходит ее выключение. Вторая команда восстанавливает машину (если файл '''Linux1.state''' не находится в том же каталоге, что и вы, в команде придется указать его полный путь).&lt;br /&gt;
&lt;br /&gt;
Одна из особенностей Xen – ее виртуальные машины работают на уровне, отличном от уровня базовой машины (домен 0). После создания и запуска виртуальной машины с помощью '''xm create''', вы сможете войти в нее. Однако если вы закроете терминальное окно, VM будет продолжать работу в фоновом режиме, как если бы ничего не случилось. Ваше соединение с ней напоминает удаленный терминал: вы свободно подключаетесь и отключаетесь, а она невозмутимо работает.&lt;br /&gt;
&lt;br /&gt;
Вместо того, чтобы просто закрыть терминал, попробуйте нажать '''Ctrl + ]''' (правая квадратная скобка) для отсоединения от консоли VM и возврата в главную машину. Хотя VM работает, к ее выводу вы подсоединиться не можете. Чтобы вернуться в VM, наберите команду '''xm console Linux1'''. Возможно, потребуется нажать Enter еще раз, чтобы появилось приглашение команд- ной строки. Консоль VM – не то же самое, что настоящий удаленный терминал, потому что, запустив в двух терминалах &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm console Linux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
вы окажетесь в одной сессии консоли (проверьте: запустите в одном терминале '''uname –a''', затем переключитесь в другой и нажмите стрелку вверх, чтобы увидеть последнюю запущенную команду; вы увидите, что это ''uname'').&lt;br /&gt;
&lt;br /&gt;
Если хотите использовать настоящий удаленный терминал, попробуйте ''SSH''. Выполните '''/sbin/ifconfig''' в гостевом домене xenU, а затем из xen0 (ваша главная машина) подключитесь к xenU с помощью ''SSH''.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:Xen</id>
		<title>LXF77:Xen</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:Xen"/>
				<updated>2008-04-25T02:13:08Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Сохранение и перезагрузка */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Xen: виртуальный роман==&lt;br /&gt;
&lt;br /&gt;
виртуализуйте оборудование и удивите друзей своим мастерством. Пол Хадсон покажет, как справиться с установкой Xen.&lt;br /&gt;
&lt;br /&gt;
Пускай у вас мощнейший компьютер – этакий Athlon FX-60, 4 ГБ ОЗУ, 1000 ГБ жесткого диска и Linux-система, и все таки единственная ошибка при обновлении операционной системы может вывести его из строя. Произошло повреждение файла настроек, обнаружились ошибки в Glibc или пропажа модуля ядра – и ваша ОС рухнула придется восстанавливать систему используя резервную копию.&lt;br /&gt;
&lt;br /&gt;
Но на грабли наступать вовсе не обязательно: клонируйте установленную ОС, запустите ее на виртуальной машине и выполните пробное обновление виртуально. если не обошлось без ошибок, то обновление можно отменить, виртуальную машину отключить, а ваша система останется невредимой.&lt;br /&gt;
&lt;br /&gt;
Это только один из способов применения виртуализации, на самом деле их гораздо больше. виртуализация произвела революцию на рынке серверов, так как позволяет снизить объем неиспользованных ресурсов. к примеру, два сервера, допустим, с Apache и MySQL, загруженных на 25%, можно разместить на одном физическом сервере, организовав на нем две виртуальные машины – затраты на оборудование и обслуживание уменьшатся вдвое. Другой популярный пример использования виртуализации в бизнесе –создание кластеров и их использование для обеспечения дополнительной надежности, а также для отработки сложных сценариев на простых Пк.&lt;br /&gt;
&lt;br /&gt;
Энтузиасты заинтересуются и просто шансом поиграть с новой технологией. владельцам домашних компьютеров виртуализация предоставляет возможность одновременно запустить несколько ОС, например, Fedora Core 4 и Fedora Core 5 Test 2, а также SUSe 10.0, NetBSD и в некоторых случаях Windows. Круто!&lt;br /&gt;
&lt;br /&gt;
===С чего начать===&lt;br /&gt;
&lt;br /&gt;
Самое свежее решение по виртуализации – программа Xen – явилось из мира Open Source. Мы рассказывали о Xen в LXF 67 и предположили, что за ней будущее виртуализации. так вот, это будущее настало!&lt;br /&gt;
&lt;br /&gt;
Что особенного в данной технологии? Подход Xen сильно отличается от так называемой аппаратной виртуализации, применяемой в VMware и других укоренившихся продуктах. В VMware гостевая ОС остается в неведении о своем виртуальном статусе, а в Xen исходный код гостевой ОС должен быть немного подправлен, чтобы она понимала: ее место – под Xen. Это похоже на отношение симбиоза в природе: гостевая ОС знает о существовании Xen и реагирует на команды, а базовая ОС знает о своих гостях и получает от них информацию.&lt;br /&gt;
&lt;br /&gt;
Новый подход окрестили «паравиртуализацией». На практике, паравиртуализация означает, что работа виртуальной машины (Virtual Machine, VM) не требует трудоемких операций, так как она осознает свой виртуальный статус и поэтому разделяет доступ ко всем ресурсам с остальными машинами без вмешательства Xen.&lt;br /&gt;
&lt;br /&gt;
В результате скорость работы Xen VM всего лишь на 3–8% меньше, чем запуск системы на настоящем оборудовании, поэтому «почувствовать разницу» не удастся. &lt;br /&gt;
&lt;br /&gt;
===Принцип работы Xen ===&lt;br /&gt;
&lt;br /&gt;
С тех пор, как мы рассказывали о Xen с десяток выпусков назад, она вошла в состав многих популярных дистрибутивов. SUSE, Fedora, Ubuntu, Gentoo и другие включили поддержку Xen, хотя качество поддержки зависит от дистрибутива. Xen негласно является одной из архитектур, под которые создается ядро Linux, наряду с x86, x86-64 и PowerPC.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=АППАРАТНАЯ ВИРТУАЛИЗАЦИЯ&lt;br /&gt;
|Содержание=&lt;br /&gt;
Паравиртуализация устраняет падение производительности, хотя придется подправить исходный код гостевой ОС. но это относится не ко всем архитектурам CPU. Архитектура Intel (x86–386, Pentium 4) а также клоны AMD и многие другие процессоры полагаются на иерархическую систему колец для назначения привилегий. Внутри процессора каждая программа (включая ОС) работает в кольце 0, 1, 2 или 3. в кольце 0 программы имеют полный контроль над машиной, а программы кольца 3 наиболее ограничены. на большинстве компьютеров ОС работает в кольце 0, а пользовательские программы в кольце 3, то есть даже самые агрессивные пользователи физически не могут отпихнуть ОС от ресурсов.&lt;br /&gt;
&lt;br /&gt;
Проблема, связанная с кольцевой архитектурой, заключается в следующем: операционная система воображает, что будет работать в кольце 0. но виртуальную ОС в кольце 0 запустить нельзя: это угрожает безопасности базовой ОС. Поэтому виртуальная ОС запускается в кольце с меньшим уровнем привилегий. когда ОС проверяет, в каком кольце она работает, и получает ответ – не 0, ее работа аварийно завершается. Данная проблема обычно решается т.н. двоичной корректировкой: VM отслеживает запросы гостевой ОС на номер кольца и подменяет ответ. Двоичная корректировка – довольно трудоемкий процесс, поэтому традиционные техники виртуализации требуют мощного оборудования.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Xen-0123.jpg|center|354px]]&lt;br /&gt;
&lt;br /&gt;
Паравиртуализация снимает проблему: ОС больше не претендует на работу в кольце 0, значит, никакая двоичная корректировка не нужна. Но что делать, если ОС невозможно подправить? Intel решила задачу с помощью технологии Vanderpool (сейчас просто VT), а AMD использует технологию Pacifica, которая заодно виртуализует контроллер памяти, тоже встроенный в чипы AMD64. новые чипы работают с двумя наборами привилегированных колец: VMX root и VMX Nonroot. Оба набора имеют кольца с 0 по 3, но только в наборе VMX&lt;br /&gt;
root кольцо 0 имеет полный контроль над компьютером. набор VMX Nonroot виртуализуется чипом: когда немодифицирован-ная ОС проверяет, в каком кольце она работает, то получает ответ `0`, но не может угадать, какому из двух наборов это кольцо принадлежит.&lt;br /&gt;
&lt;br /&gt;
VT и Pacifica все равно требуют программного обеспечения для поддержки виртуализации гостевых ОС и взаимодействия с пользователями. Xen поддерживает обе технологии, поэтому, если у вас имеется подходящее оборудование, вы можете запускать немодифицированные ОС (в том числе Windows XP) без потерь производительности.&lt;br /&gt;
|Ширина=400px}}&lt;br /&gt;
&lt;br /&gt;
Формально, когда вы устанавливаете Xen на компьютер, она становится главной операционной системой. Загрузка компьютера сопровождается загрузкой Xen OS, которая создает первоначальную виртуальную машину (известную как домен 0 или просто dom0), т.е. вашу базовую ОС. Все выглядит так, словно вы загружаете тот же Linux и затем X, как и до этого, но на самом деле вы используете виртуальную машину. Гостевая ОС dom0 является самой привилегированной, и поэтому имеет более высокий приоритет при доступе к оборудованию и вычислениях, чем другие гости. Этим гостям – обычно их называют непривилегированными доменами (domU) – требуется собственная порция оперативной памяти, а также постоянное место на диске для хранения своих данных.&lt;br /&gt;
&lt;br /&gt;
===Установка ядра===&lt;br /&gt;
&lt;br /&gt;
Хотя большинство дистрибутивов имеют поддержку Xen, мы потренируемся в сборке из исходных текстов, для гарантии, что вы сможете повторить процедуру установки с любым дистрибутивом. В данном руководстве мы будем использовать дистрибутив Fedora Core 4.&lt;br /&gt;
&lt;br /&gt;
Прежде, чем мы начнем, необходимо сделать замечание: Xen должна работать с реальным оборудованием. Вы не сможете установить ее внутри Vmware или с использованием других средств виртуализации.&lt;br /&gt;
&lt;br /&gt;
===Как установить XEN===&lt;br /&gt;
&lt;br /&gt;
Хватит болтать – установим-ка Xen и запустим нашу основную ОС как виртуальную машину.&lt;br /&gt;
&lt;br /&gt;
====1. Устранение зависимостей====&lt;br /&gt;
&lt;br /&gt;
У Xen достаточно много зависимостей, и если вы хотите насладиться виртуализацией по максимуму, то их необходимо устранить. Вам потребуются полный набор для компиляции программ (GCC, make и др.), VNC (серверная и клиентская части), libvncserver, библиотека python-twisted, а также программа brctl, Curl (включая библиотеки разработки) и SDL (также включая библиотеки разработки).&lt;br /&gt;
&lt;br /&gt;
Если вы устанавливаете Fedora Core 4, выберите Custom Setup. Отключите брандмауэр и SELinux (они могут вызывать проблемы), затем выберите следующие пакеты из предложенного списка: &lt;br /&gt;
*Из категории ''X Window System'' выберите '''xorg-x11-Xnest'''.&lt;br /&gt;
*Пометьте Development Tools (список выбранных пакетов по умолчанию нас устраивает)&lt;br /&gt;
*Из категории System Tools выберите VNC.&lt;br /&gt;
*Из Network Servers выберите vncserver.&lt;br /&gt;
&lt;br /&gt;
Когда установка закончится, проведите первоначальную настройку системы. зайдите в систему и загрузите Gnome. Если вы используете не FC4, менеджер пакетов вашего дистрибутива наверняка может предложить эквиваленты вышеназванных программ. Установка Xnest необязательна, но без остальных пакетов не обойтись. &lt;br /&gt;
&lt;br /&gt;
Теперь нам необходимо получить libvncserver, следовательно нам на сайт http://libvncserver.sourceforge.net. На момент написания статьи там была доступна для скачивания «предварительная версия» в виде файла '''LibVNCServer-0.8pre.tar.gz'''. Откройте терминал, перейдите в директорию, в которую скопировали его, и наберите&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xpvfz LibVNCServer-0.8pre.tar.gz&lt;br /&gt;
 cd LibVNCServer-0.8pre&lt;br /&gt;
 ./configure&lt;br /&gt;
 Make&lt;br /&gt;
 su -&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если у вас Fedora Core, то остальные пакеты устанавливаются командой&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 yum install python-twisted bridge-utils curl  SDL-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании другого дистрибутива, менеджер пакетов может предложить их аналоги. Если вы не можете найти пакет '''bridge-utils''', то поищите тот, который предоставляет команду ''brctl''.&lt;br /&gt;
&lt;br /&gt;
Теперь пора установить Xen. С сайта http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads скачайте файл '''xen-3.0.0-src.tgz'''. Если доступна более новая версия, можете попробовать ее, но&lt;br /&gt;
тогда мы не гарантируем, что дальнейшие инструкции будут работать. Наша версия находится на диске к журналу в директории Magazine/Xen. &lt;br /&gt;
&lt;br /&gt;
====2. Сборка ядра Xen====&lt;br /&gt;
&lt;br /&gt;
Получив файл с Xen, отправляйтесь обратно в терминал и выполните следующие команды:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvpfz xen-3.0.0-src.tgz&lt;br /&gt;
 cd xen-unstable&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На диске в директории Magazine/Xen вы найдете специальную версию ядра Linux. Если вы скопируете ядро в свежесозданную директорию xen-unstable, Xen использует его для сборки своего образа. Если вы не скопируете наше ядро, то Xen скачает его из сети, да и вы сами можете поступить так же! Итак, ядро скопировано; перейдите в директорию xen-unstable и&lt;br /&gt;
запустите&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 make world&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вне зависимости от способа установки ядра Linux, ядро будет извлечено, модифицировано для работы с Xen, а затем собрано дважды: сначала как xen0 (для dom0), а затем как xenU (для domU). Компиляция – процесс долгий, поэтому у вас будет достаточно времени на какие-нибудь другие дела.&lt;br /&gt;
&lt;br /&gt;
После завершения компиляции можно двигаться дальше:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Новые ядра Xen скопируются в директорию '''/boot''', а файлы конфигурации – в вашу систему. Чтобы компьютер загружался с нашим ядром, необходимо создать образ начального RAM-диска, используя следующую команду&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkinitrd      /boot/initrd-2.6.12-xen0.img  2.6.12.6-xen0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первый параметр – путь, куда надо сохранить образ диска, а второй – имя директории с модулями в '''/lib/modules'''.&lt;br /&gt;
&lt;br /&gt;
====3. Конфигурация загрузчика====&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить ядро xen0 в загрузчик ''Grub'', откройте в текстовом редакторе файл '''/boot/grub/menu.lst'''. По умолчанию в Fedora он выглядит следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 default=0&lt;br /&gt;
 timeout=5&lt;br /&gt;
 splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;
 hiddenmenu&lt;br /&gt;
 &lt;br /&gt;
 title Fedora Core (2.6.11-1.1369_FC4)&lt;br /&gt;
 root (hd0,0)&lt;br /&gt;
 kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;
 initrd /initrd-2.6.11-1.1369_FC4.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо привести его к следующему виду&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 default=0&lt;br /&gt;
 timeout=5&lt;br /&gt;
 splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;
 hiddenmenu&lt;br /&gt;
 &lt;br /&gt;
 title Xen 3.0/XenLinux 2.6&lt;br /&gt;
 root (hd0,0)&lt;br /&gt;
 kernel /xen-3.0.0.gz dom0_mem=131072&lt;br /&gt;
 module /vmlinuz-2.6.12.6-xen0 ro root=/dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;
 module /initrd-2.6.12-xen0.img&lt;br /&gt;
&lt;br /&gt;
 title Fedora Core (2.6.11-1.1369_FC4)&lt;br /&gt;
 root (hd0,0)&lt;br /&gt;
 kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/&lt;br /&gt;
 dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;
 initrd /initrd-2.6.11-1.1369_FC4.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Заметим, что теперь мы загружаем ядро Xen, а не Linux. Мы передаем имя Linux- ядра в Xen, и она запускает его в качестве гостевой ОС виртуальной машины dom0. Параметр '''dom0_mem''' определяет, сколько ОЗУ мы хотим выделить '''dom0'''. В нашем случае это 128 MБ. Можно указать любое другое значение, но не забудьте умножить количество мегабайт, которое вы хотите выделить виртуальной машине, на 1024.&lt;br /&gt;
&lt;br /&gt;
Сохраните файл, перегрузитесь, и теперь по умолчанию система грузит ядро Xen, которое может не содержать нужных вам настроек – тогда придется отредактировать его конфигурацию или пересобрать нужные вам драйверы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=XEN НА ПРЕДПРИЯТИИ&lt;br /&gt;
|Содержание=&lt;br /&gt;
Вручение Xen администратору равносильно выдаче автомата калашникова неандертальцу: техника в руках дикаря приносит скорее вред, чем пользу, потому что требует специальных знаний и навыков. крупная фирма не станет действовать «в лоб» и сокращать количество серверов, загруженных на 25%, просто распределив их на меньшем количестве серверов с загрузкой 90% и выбрав Xen в качестве средства виртуализации. Конечно, такая возможность есть, но переход потребует огромных затрат на планирование, тестирование и внедрение. На наш урок вам потребуется час или около того; а сколько понадобится времени, если вы работаете на ответственной системе? Или если бы вам пришлось дублировать точные конфигурации сервера, а то и – самое сложное – развертывать Xen на множестве серверов и добиваться их слаженной работы? &lt;br /&gt;
&lt;br /&gt;
Сама по себе Xen – просто инструмент; в ее состав не входят другие средства управления, кроме рассмотренных здесь. Однако фирма XenSource, разработчик Xen, предусмотрела проприетарный программный продукт для управления, именуемый XenOptimizer. Он позволяет предприятиям развертывать и управлять Xen в вычислительных центрах, предоставляя консоль, с которой администратор может контролировать ресурсы, создавать и модифицировать виртуальные машины Xen, а также осуществлять динамическое распределение нагрузки на сервера, чтобы отвечать любым потребностям пользователей. если вы намерены развертывать Xen на более чем 10 физических серверах, то XenOptimizer может сэкономить время и деньги и даже спасти положение.&lt;br /&gt;
&lt;br /&gt;
http://www2.getxen.com/products/xenoptimizer.html/&lt;br /&gt;
|Ширина=400px}}&lt;br /&gt;
&lt;br /&gt;
Теперь войдите в систему, запустите консоль и наберите '''uname -a'''. 'xen0' в строке вывода результата команды сигнализирует о том, что вы теперь в домене 0. Переключитесь в режим root с помощью команды '''su -''' и запустите '''xend start''', а потом '''xm list'''. Последняя команда выводит список всех работающих в данный момент виртуальных машин. В этом списке вы видите dom0, которой выделено 128 MБ ОзУ. Поздравляем! Ваша система заработала в Xen!&lt;br /&gt;
&lt;br /&gt;
===Cоздание виртуальной гостевой ОС===&lt;br /&gt;
&lt;br /&gt;
Работали мы, работали...  и что вышло? Ваша система работает так же, как и до этого, верно? Нет, не совсем: теперь можно создавать непривилегированных гостей domU. Приступим...&lt;br /&gt;
&lt;br /&gt;
====1. Создание образов диска====&lt;br /&gt;
&lt;br /&gt;
Переключитесь в суперпользователя и запустите '''df -h''', чтобы проверить, сколько свободного места в системе. Вам понадобится 4 ГБ свободной памяти, однако примите во внимание объем текущей инсталляции Linux. Чтобы запустить гостя domU, необходимо сначала создать образ для его корневого раздела, а также образ для раздела подкачки. Следующие две команды создадут образ корневого раздела. Выполнять их надо из директории '''/root''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 dd if=/dev/zero of=vmdisk bs=1k seek=4096k count=1&lt;br /&gt;
 mkfs.ext3 vmdisk&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
За запуском второй команды последует предупреждение, что файл не является специальным блочным устройством; для продолжения, просто нажмите [y]. Установка параметра '''seek''' как 4096k дает нам образ диска размером в 4 ГБ; вы можете менять размер по своему усмотрению: 1024 соответствует 1 ГБ, 2048 – 2 ГБ, 8192 – 8 ГБ и т.д. В данный момент диск отформатирован как ext3, но он совершенно пуст, поэтому необходимо сделать на нем клон нашей системы.&lt;br /&gt;
&lt;br /&gt;
Следующие команды монтируют образ как loopback-устройство, а затем копируют на него вашу ОС. Если у вас много чего установлено или вы хотите скопировать только некоторые части системы, тогда придется быть более точным.&lt;br /&gt;
&lt;br /&gt;
Прежде чем продолжить, ответьте на&lt;br /&gt;
следующие вопросы:&lt;br /&gt;
*Вы проверили, какой объем занимает ваша установленная система с помощью '''df -h'''?&lt;br /&gt;
*Вы создали образ диска необходимого объема?&lt;br /&gt;
*Вы создали файл '''vmdisk''' в каталоге '''/root'''?&lt;br /&gt;
&lt;br /&gt;
Если ответом на все три вопроса было '''«да»''', тогда двигаемся дальше. Выполните следующие команды:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /mnt/vmdisk&lt;br /&gt;
 mount –o loop vmdisk /mnt/vmdisk&lt;br /&gt;
 cp –ax /{ bin,dev,etc,home,lib,sbin,usr,var} /mnt/vmdisk/&lt;br /&gt;
 mkdir /mnt/vmdisk/{proc,sys,tmp,root}&lt;br /&gt;
 chmod og+w /mnt/vmdisk/tmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команде '''cp -ax''' требуется ощутимое время для исполнения. Директории '''proc, sys, tmp''' и '''root''' копировать не нужно, они просто создаются командой mkdir. В некоторых дистрибутивах необходимо так-же скопировать каталог '''/opt''', однако под Fedora этого не понадобится.&lt;br /&gt;
&lt;br /&gt;
Последняя команда меняет права доступа к '''/tmp''', разрешая программам записывать туда свои данные.&lt;br /&gt;
&lt;br /&gt;
Гость dom0 имеет прямой доступ к оборудованию, в то время как гость domU будет использовать образ диска для хранения данных. Поэтому им необходимы разные настройки fstab. Откройте в текстовом редакторе файл '''/mnt/vmdisk/etc/fstab'''. В Fedora он будет выглядеть следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # This file is edited by fstab-sync - see ‘man  fstab-sync’ for details&lt;br /&gt;
 /dev/VolGroup00/LogVol00 	/ 		ext3 	defaults 1 1&lt;br /&gt;
 LABEL=/boot 		/boot 		ext3 	defaults 1 2&lt;br /&gt;
 /dev/devpts 			/dev/pts 	devpts 	gid=5,mode=620  0 0&lt;br /&gt;
 /dev/shm 			/dev/shm 	tmpfs 	defaults 0 0&lt;br /&gt;
 /dev/proc 			/proc 		proc 	defaults 0 0&lt;br /&gt;
 /dev/sys 			/sys 		sysfs 	defaults 0 0&lt;br /&gt;
 /dev/VolGroup00/LogVol01 swap 		swap  	defaults 0 0&lt;br /&gt;
 /dev/hdc 			/media/cdrom 	auto 	pamconsole,exec,noauto,managed 0 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, Fedora использует логические тома '''(LVM)''' для управления жесткими дисками, о чем говорит запись '''VolGroup00'''. Однако ваш файл '''fstab''' может просто использовать '''/dev/hda1''' и '''/dev/hda2'''. В нашем случае необходимо отредактировать файл, чтобы он монтировал '''hda1''' и '''hda2''' в качестве корневого раздела и раздела подкачки соответственно. Исправленный файл&lt;br /&gt;
должен выглядеть так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /dev/hda1 	/ 		ext3 	defaults 		1 1&lt;br /&gt;
 /dev/devpts 	/dev/pts 	devpts 	gid=5,mode=620 	0 0&lt;br /&gt;
 /dev/shm 	/dev/shm 	tmpfs 	defaults 		0 0&lt;br /&gt;
 /dev/proc 	/proc 		proc 	defaults 		0 0&lt;br /&gt;
 /dev/sys 	/sys 		sysfs 	defaults 		0 0&lt;br /&gt;
 /dev/hda2 	swap 		swap 	defaults 		0 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните его и выполните '''unmout /mnt/vmdisk''', чтобы размонтировать виртуальный образ. Это важно, т.к. Xen не может использовать файловые системы, которые уже смонтированы Linux. теперь создадим виртуальный диск для раздела подкачки объемом 256 MБ, следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 dd if=/dev/zero of=vmswap bs=1k seek=256k  count=1&lt;br /&gt;
 mkswap vmswap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====2. создание файла настройки====&lt;br /&gt;
&lt;br /&gt;
Создание дисков для виртуальной машины закончено, осталось настроить файл конфигурации. Выполните команду: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cp /etc/xen/xmexample1 ~/xmlinux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате файл с примером конфигурации Xen скопируется в текущую директорию. Откройте его в текстовом редакторе.&lt;br /&gt;
&lt;br /&gt;
Необходимо сделать несколько изменений – найдите следующие строки и исправьте их на указанные значения:&lt;br /&gt;
*`kernel=` в /boot/vmlinuz-2.6.12-xenU.&lt;br /&gt;
*`memory=` в 128&lt;br /&gt;
*`name=` в Linux1&lt;br /&gt;
*`disk=` в [ ‘file:/root/vmdisk,hda1,w’, ‘file:/root/vmswap,hda2,w’ ].&lt;br /&gt;
&lt;br /&gt;
Если ваша версия ядра отличается от нашей, то подправьте файл соответствующим образом. Память измеряется в мегабайтах; мы работаем со 128 MБ ОЗУ и 256-MБ диском подкачки, однако если у вас система мощнее, можете определить собственные значения параметров. Имя Linux1 дано, чтобы отличить VM от других (к тому же его легко запомнить); у каждойVM должно быть уникальное имя.&lt;br /&gt;
&lt;br /&gt;
Наконец, параметры диска определяют, что '''/root/vmdisk''' монтируется как '''hda1''' (корневой раздел гостя domU) с правами запись/чтение, а '''/root/vmswap''' монтируется как '''hda2''' (файл подкачки гостя domU), также с правами запись/чтение.&lt;br /&gt;
&lt;br /&gt;
Теперь можно запустить новую VM!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm create -c xmlinux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметр '''–c''' позволяет определить наш файл конфигурации для новой виртуальной машины. Если появляется ошибка 'Error connecting to xend: Connection refused', значит, вы забыли выполнить '''xend start''' от имени root на предыдущем шаге. Также может появиться ошибка ‘File /root/vmdisk is loopback-mounted through /dev/loop0’. Она говорит о том, что вы не отмонтировали образ виртуального диска.&lt;br /&gt;
&lt;br /&gt;
Ошибка ‘error creating domain: VM name ‘Linux1’ already in use` говорит сама за себя. Обычно она появляется после другой ошибки: Xen создает VM, пытается запустить ее и терпит неудачу, но созданную VM при этом не уничтожает. Выполнив '''xm list''', вы увидите, что Linux1 находится в состоянии '''p''' (приостановлена). Уничтожьте ее с помощью '''xm destroy''' Linux1 и создайте заново.&lt;br /&gt;
&lt;br /&gt;
Если не произошло ни одной ошибки (считайте себя счастливчиком!), вы увидите, как начнет загружаться новая машина. В конце концов появится приглашение войти в систему.  Используйте ваш логин и пароль, т.к. мы скопировали '''/etc/passwd''' на виртуальный диск.&lt;br /&gt;
&lt;br /&gt;
===Работа с XEN===&lt;br /&gt;
&lt;br /&gt;
В данный момент у нас работает Linux на Linux, хотя и только в командной строке. Посмотрим, как можно переключиться в графический режим, а также как управлять и работать с Xen. &lt;br /&gt;
&lt;br /&gt;
====Управление CPU====&lt;br /&gt;
&lt;br /&gt;
В отличие от других техник виртуализации, при паравиртуализации, примененной в Xen, гостевая ОС знает о своем виртуальном статусе. На практике это означает, что мы может посылать гостевой ОС команды и получать от нее ответ. Например, откройте второй терминал (первый оставьте работать с гостевой ОС dom0), переключитесь в суперпользователя с помощью '''su -''' и выполните команду &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xm shutdown Linux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нажав [enter], вы увидите, что на первом терминале появляются стандартные сообщения завершения работы Linux. Другими словами, Xen не выдернула VM из розетки: VM сама себя остановила и вернула контроль родительской ОС. &lt;br /&gt;
&lt;br /&gt;
Этим команда shutdown отличается от команды destroy, которая как раз убивает VM. Уничтожение VM с помощью destroy может повредить диск, поэтому ее не рекомендуется пускать в ход, пока ваша VM не будет приостановлена.&lt;br /&gt;
&lt;br /&gt;
Вернувшись в командную строку главной виртуальной машины и перейдя в режим суперпользователя, откройте в текстовом редакторе файл '''xmlinux1''', найдите строку с параметром vcpus и установите его значение равным 4. Если перед параметром стоит знак комментария (символ #), удалите его. теперь перезапустите машину с помощью&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm create –c Linux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и войдите под своей учетной записью. В выводе команды cat '''/proc/cpuinfo''' вы увидите, что в наличии имеется 4 CPU. Физически у нас всего лишь 1 процессор на материнской плате, но Xen это не волнует: она виртуализует столько CPU, сколько потребуется. Если у вас в системе физических процессоров несколько, можно изменить параметр `cpus` в файле '''xmlinux1''' и указать количество процессоров, на которых должна работать VM.&lt;br /&gt;
&lt;br /&gt;
====Управление ОЗУ====&lt;br /&gt;
&lt;br /&gt;
С процессорами мы научились управляться, но как насчет ОЗУ? Наберите '''top''' внутри гостевой машины domU. В левом верхнем углу вы увидите строку, похожую на ‘Mem: 134900k total’. Это объем ОЗУ, который мы выделили машине. Теперь с другого терминала (вашей главной машины) запустите от имени суперпользователя '''xm list'''. Вы увидите, что домен Linux1 работает и ему действительно выделено 128 MБ ОзУ. Давайте поменяем объем RAM! Выполните следующую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm mem-set Linux1 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы уменьшили объем доступной Linux1 памяти до 64 MБ.Снова запустите команду top в гостевой машине domU. Вы увидите ‘Mem: 65536k’, то есть то, что нам нужно. Посмотрим, как вы сделаете это в Vmware Workstation...&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=СОВЕТ XEN: СТАТИСТИКА&lt;br /&gt;
|Содержание=&lt;br /&gt;
Если нужно отследить загруженность нескольких VM, поможет программа Xentop. Она выводит загрузку ОЗУ, ЦПУ, виртуального ЦПУ и сети для всех доменов, все на одном экране.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Команда '''mem-set''' позволяет изменять размер ОзУ, доступный виртуальной машине. Максимальный объем выделенной ОЗУ не может превышать значения, определенного в файле настройки. т.е. вы можете создать машину с 256 MБ ОзУ, а затем с помощью ''mem-set'' ограничить доступный объем до 8–16 MБ (в этом случае ядро начнет убивать процессы, чтобы высвободить память). можно увеличить объем до 128 MБ или даже установить начальное значение 256 MБ, однако попытки выйти за пределы 256 MБ будут проигнорированы. Если хотите достичь большей гибкости, рекомендуем создавать виртуальные машины с большими начальными значениями ОЗУ (для этого измените значение `memory =` в файле '''xmlinux1'''), а затем уменьшать ОЗУ до реально имеющихся. Если же объем ОЗУ потребуется увеличить, у вас будет запас для маневра.&lt;br /&gt;
&lt;br /&gt;
====Сохранение и перезагрузка====&lt;br /&gt;
&lt;br /&gt;
Теперь рассмотрим возможности поинтереснее: т.к. ядро Xen управляет гостями Linux, можно сохранить состояние выбранной VM перед ее отключением! По существу, происходит создание дампа оперативной памяти VM. Его размер будет равен объему ОЗУ, выделенного виртуальной машине. Если захотите вернуться в сохраненное состояние, то Xen просто скопирует дамп обратно в ОЗУ. Не меняйте расположение файлов '''vmdisk''' и '''vmswap''' после сохранения состояния виртуальной машины. Сохранение и восстановление виртуальных машин можно осуществлять следующими двумя командами:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm save Linux1 Linux1.state&lt;br /&gt;
 xm restore Linux1.state&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=СОВЕТ XEN: АВТОЗАПУСК&lt;br /&gt;
|Содержание=&lt;br /&gt;
Если у вас установлено несколько виртуальных машин и вы хотите, чтобы они все запускались при загрузке системы, то скопируйте их файлы настройки (можно также создать символьные ссылки на них) в директорию /etc/xen/auto и обеспечьте выполнение скрипта xendomains. в Fedora добавить скрипт можно с помощью команды&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 chkconfig --level 345 xendomains on&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В некоторых дистрибутивах это можно сделать с помощью программ, имеющих графический интерфейс. Аналогично добавляется скрипт xend.&lt;br /&gt;
|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Первая команда сохраняет машину Linux1 в файл '''Linux1.state''', затем происходит ее выключение. Вторая команда восстанавливает машину (если файл '''Linux1.state''' не находится в том же каталоге, что и вы, в команде придется указать его полный путь).&lt;br /&gt;
&lt;br /&gt;
Одна из особенностей Xen – ее виртуальные машины работают на уровне, отличном от уровня базовой машины (домен 0). После создания и запуска виртуальной машины с помощью '''xm create''', вы сможете войти в нее. Однако если вы закроете терминальное окно, VM будет продолжать работу в фоновом режиме, как если бы ничего не случилось. Ваше соединение с ней напоминает удаленный терминал: вы свободно подключаетесь и отключаетесь, а она невозмутимо работает.&lt;br /&gt;
&lt;br /&gt;
Вместо того, чтобы просто закрыть терминал, попробуйте нажать '''Ctrl + ]''' (правая квадратная скобка) для отсоединения от консоли VM и возврата в главную машину. Хотя VM работает, к ее выводу вы подсоединиться не можете. Чтобы вернуться в VM, наберите команду '''xm console Linux1'''. Возможно, потребуется нажать Enter еще раз, чтобы появилось приглашение команд- ной строки. Консоль VM – не то же самое, что настоящий удаленный терминал, потому что, запустив в двух терминалах &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm console Linux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
вы окажетесь в одной сессии консоли (проверьте: запустите в одном терминале '''uname –a''', затем переключитесь в другой и нажмите стрелку вверх, чтобы увидеть последнюю запущенную команду; вы увидите, что это ''uname'').&lt;br /&gt;
&lt;br /&gt;
Если хотите использовать настоящий удаленный терминал, попробуйте ''SSH''. Выполните '''/sbin/ifconfig''' в гостевом домене xenU, а затем из xen0 (ваша главная машина) подключитесь к xenU с помощью ''SSH''.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:Xen</id>
		<title>LXF77:Xen</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:Xen"/>
				<updated>2008-04-25T02:10:08Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Управление ОЗУ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Xen: виртуальный роман==&lt;br /&gt;
&lt;br /&gt;
виртуализуйте оборудование и удивите друзей своим мастерством. Пол Хадсон покажет, как справиться с установкой Xen.&lt;br /&gt;
&lt;br /&gt;
Пускай у вас мощнейший компьютер – этакий Athlon FX-60, 4 ГБ ОЗУ, 1000 ГБ жесткого диска и Linux-система, и все таки единственная ошибка при обновлении операционной системы может вывести его из строя. Произошло повреждение файла настроек, обнаружились ошибки в Glibc или пропажа модуля ядра – и ваша ОС рухнула придется восстанавливать систему используя резервную копию.&lt;br /&gt;
&lt;br /&gt;
Но на грабли наступать вовсе не обязательно: клонируйте установленную ОС, запустите ее на виртуальной машине и выполните пробное обновление виртуально. если не обошлось без ошибок, то обновление можно отменить, виртуальную машину отключить, а ваша система останется невредимой.&lt;br /&gt;
&lt;br /&gt;
Это только один из способов применения виртуализации, на самом деле их гораздо больше. виртуализация произвела революцию на рынке серверов, так как позволяет снизить объем неиспользованных ресурсов. к примеру, два сервера, допустим, с Apache и MySQL, загруженных на 25%, можно разместить на одном физическом сервере, организовав на нем две виртуальные машины – затраты на оборудование и обслуживание уменьшатся вдвое. Другой популярный пример использования виртуализации в бизнесе –создание кластеров и их использование для обеспечения дополнительной надежности, а также для отработки сложных сценариев на простых Пк.&lt;br /&gt;
&lt;br /&gt;
Энтузиасты заинтересуются и просто шансом поиграть с новой технологией. владельцам домашних компьютеров виртуализация предоставляет возможность одновременно запустить несколько ОС, например, Fedora Core 4 и Fedora Core 5 Test 2, а также SUSe 10.0, NetBSD и в некоторых случаях Windows. Круто!&lt;br /&gt;
&lt;br /&gt;
===С чего начать===&lt;br /&gt;
&lt;br /&gt;
Самое свежее решение по виртуализации – программа Xen – явилось из мира Open Source. Мы рассказывали о Xen в LXF 67 и предположили, что за ней будущее виртуализации. так вот, это будущее настало!&lt;br /&gt;
&lt;br /&gt;
Что особенного в данной технологии? Подход Xen сильно отличается от так называемой аппаратной виртуализации, применяемой в VMware и других укоренившихся продуктах. В VMware гостевая ОС остается в неведении о своем виртуальном статусе, а в Xen исходный код гостевой ОС должен быть немного подправлен, чтобы она понимала: ее место – под Xen. Это похоже на отношение симбиоза в природе: гостевая ОС знает о существовании Xen и реагирует на команды, а базовая ОС знает о своих гостях и получает от них информацию.&lt;br /&gt;
&lt;br /&gt;
Новый подход окрестили «паравиртуализацией». На практике, паравиртуализация означает, что работа виртуальной машины (Virtual Machine, VM) не требует трудоемких операций, так как она осознает свой виртуальный статус и поэтому разделяет доступ ко всем ресурсам с остальными машинами без вмешательства Xen.&lt;br /&gt;
&lt;br /&gt;
В результате скорость работы Xen VM всего лишь на 3–8% меньше, чем запуск системы на настоящем оборудовании, поэтому «почувствовать разницу» не удастся. &lt;br /&gt;
&lt;br /&gt;
===Принцип работы Xen ===&lt;br /&gt;
&lt;br /&gt;
С тех пор, как мы рассказывали о Xen с десяток выпусков назад, она вошла в состав многих популярных дистрибутивов. SUSE, Fedora, Ubuntu, Gentoo и другие включили поддержку Xen, хотя качество поддержки зависит от дистрибутива. Xen негласно является одной из архитектур, под которые создается ядро Linux, наряду с x86, x86-64 и PowerPC.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=АППАРАТНАЯ ВИРТУАЛИЗАЦИЯ&lt;br /&gt;
|Содержание=&lt;br /&gt;
Паравиртуализация устраняет падение производительности, хотя придется подправить исходный код гостевой ОС. но это относится не ко всем архитектурам CPU. Архитектура Intel (x86–386, Pentium 4) а также клоны AMD и многие другие процессоры полагаются на иерархическую систему колец для назначения привилегий. Внутри процессора каждая программа (включая ОС) работает в кольце 0, 1, 2 или 3. в кольце 0 программы имеют полный контроль над машиной, а программы кольца 3 наиболее ограничены. на большинстве компьютеров ОС работает в кольце 0, а пользовательские программы в кольце 3, то есть даже самые агрессивные пользователи физически не могут отпихнуть ОС от ресурсов.&lt;br /&gt;
&lt;br /&gt;
Проблема, связанная с кольцевой архитектурой, заключается в следующем: операционная система воображает, что будет работать в кольце 0. но виртуальную ОС в кольце 0 запустить нельзя: это угрожает безопасности базовой ОС. Поэтому виртуальная ОС запускается в кольце с меньшим уровнем привилегий. когда ОС проверяет, в каком кольце она работает, и получает ответ – не 0, ее работа аварийно завершается. Данная проблема обычно решается т.н. двоичной корректировкой: VM отслеживает запросы гостевой ОС на номер кольца и подменяет ответ. Двоичная корректировка – довольно трудоемкий процесс, поэтому традиционные техники виртуализации требуют мощного оборудования.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Xen-0123.jpg|center|354px]]&lt;br /&gt;
&lt;br /&gt;
Паравиртуализация снимает проблему: ОС больше не претендует на работу в кольце 0, значит, никакая двоичная корректировка не нужна. Но что делать, если ОС невозможно подправить? Intel решила задачу с помощью технологии Vanderpool (сейчас просто VT), а AMD использует технологию Pacifica, которая заодно виртуализует контроллер памяти, тоже встроенный в чипы AMD64. новые чипы работают с двумя наборами привилегированных колец: VMX root и VMX Nonroot. Оба набора имеют кольца с 0 по 3, но только в наборе VMX&lt;br /&gt;
root кольцо 0 имеет полный контроль над компьютером. набор VMX Nonroot виртуализуется чипом: когда немодифицирован-ная ОС проверяет, в каком кольце она работает, то получает ответ `0`, но не может угадать, какому из двух наборов это кольцо принадлежит.&lt;br /&gt;
&lt;br /&gt;
VT и Pacifica все равно требуют программного обеспечения для поддержки виртуализации гостевых ОС и взаимодействия с пользователями. Xen поддерживает обе технологии, поэтому, если у вас имеется подходящее оборудование, вы можете запускать немодифицированные ОС (в том числе Windows XP) без потерь производительности.&lt;br /&gt;
|Ширина=400px}}&lt;br /&gt;
&lt;br /&gt;
Формально, когда вы устанавливаете Xen на компьютер, она становится главной операционной системой. Загрузка компьютера сопровождается загрузкой Xen OS, которая создает первоначальную виртуальную машину (известную как домен 0 или просто dom0), т.е. вашу базовую ОС. Все выглядит так, словно вы загружаете тот же Linux и затем X, как и до этого, но на самом деле вы используете виртуальную машину. Гостевая ОС dom0 является самой привилегированной, и поэтому имеет более высокий приоритет при доступе к оборудованию и вычислениях, чем другие гости. Этим гостям – обычно их называют непривилегированными доменами (domU) – требуется собственная порция оперативной памяти, а также постоянное место на диске для хранения своих данных.&lt;br /&gt;
&lt;br /&gt;
===Установка ядра===&lt;br /&gt;
&lt;br /&gt;
Хотя большинство дистрибутивов имеют поддержку Xen, мы потренируемся в сборке из исходных текстов, для гарантии, что вы сможете повторить процедуру установки с любым дистрибутивом. В данном руководстве мы будем использовать дистрибутив Fedora Core 4.&lt;br /&gt;
&lt;br /&gt;
Прежде, чем мы начнем, необходимо сделать замечание: Xen должна работать с реальным оборудованием. Вы не сможете установить ее внутри Vmware или с использованием других средств виртуализации.&lt;br /&gt;
&lt;br /&gt;
===Как установить XEN===&lt;br /&gt;
&lt;br /&gt;
Хватит болтать – установим-ка Xen и запустим нашу основную ОС как виртуальную машину.&lt;br /&gt;
&lt;br /&gt;
====1. Устранение зависимостей====&lt;br /&gt;
&lt;br /&gt;
У Xen достаточно много зависимостей, и если вы хотите насладиться виртуализацией по максимуму, то их необходимо устранить. Вам потребуются полный набор для компиляции программ (GCC, make и др.), VNC (серверная и клиентская части), libvncserver, библиотека python-twisted, а также программа brctl, Curl (включая библиотеки разработки) и SDL (также включая библиотеки разработки).&lt;br /&gt;
&lt;br /&gt;
Если вы устанавливаете Fedora Core 4, выберите Custom Setup. Отключите брандмауэр и SELinux (они могут вызывать проблемы), затем выберите следующие пакеты из предложенного списка: &lt;br /&gt;
*Из категории ''X Window System'' выберите '''xorg-x11-Xnest'''.&lt;br /&gt;
*Пометьте Development Tools (список выбранных пакетов по умолчанию нас устраивает)&lt;br /&gt;
*Из категории System Tools выберите VNC.&lt;br /&gt;
*Из Network Servers выберите vncserver.&lt;br /&gt;
&lt;br /&gt;
Когда установка закончится, проведите первоначальную настройку системы. зайдите в систему и загрузите Gnome. Если вы используете не FC4, менеджер пакетов вашего дистрибутива наверняка может предложить эквиваленты вышеназванных программ. Установка Xnest необязательна, но без остальных пакетов не обойтись. &lt;br /&gt;
&lt;br /&gt;
Теперь нам необходимо получить libvncserver, следовательно нам на сайт http://libvncserver.sourceforge.net. На момент написания статьи там была доступна для скачивания «предварительная версия» в виде файла '''LibVNCServer-0.8pre.tar.gz'''. Откройте терминал, перейдите в директорию, в которую скопировали его, и наберите&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xpvfz LibVNCServer-0.8pre.tar.gz&lt;br /&gt;
 cd LibVNCServer-0.8pre&lt;br /&gt;
 ./configure&lt;br /&gt;
 Make&lt;br /&gt;
 su -&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если у вас Fedora Core, то остальные пакеты устанавливаются командой&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 yum install python-twisted bridge-utils curl  SDL-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании другого дистрибутива, менеджер пакетов может предложить их аналоги. Если вы не можете найти пакет '''bridge-utils''', то поищите тот, который предоставляет команду ''brctl''.&lt;br /&gt;
&lt;br /&gt;
Теперь пора установить Xen. С сайта http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads скачайте файл '''xen-3.0.0-src.tgz'''. Если доступна более новая версия, можете попробовать ее, но&lt;br /&gt;
тогда мы не гарантируем, что дальнейшие инструкции будут работать. Наша версия находится на диске к журналу в директории Magazine/Xen. &lt;br /&gt;
&lt;br /&gt;
====2. Сборка ядра Xen====&lt;br /&gt;
&lt;br /&gt;
Получив файл с Xen, отправляйтесь обратно в терминал и выполните следующие команды:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvpfz xen-3.0.0-src.tgz&lt;br /&gt;
 cd xen-unstable&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На диске в директории Magazine/Xen вы найдете специальную версию ядра Linux. Если вы скопируете ядро в свежесозданную директорию xen-unstable, Xen использует его для сборки своего образа. Если вы не скопируете наше ядро, то Xen скачает его из сети, да и вы сами можете поступить так же! Итак, ядро скопировано; перейдите в директорию xen-unstable и&lt;br /&gt;
запустите&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 make world&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вне зависимости от способа установки ядра Linux, ядро будет извлечено, модифицировано для работы с Xen, а затем собрано дважды: сначала как xen0 (для dom0), а затем как xenU (для domU). Компиляция – процесс долгий, поэтому у вас будет достаточно времени на какие-нибудь другие дела.&lt;br /&gt;
&lt;br /&gt;
После завершения компиляции можно двигаться дальше:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Новые ядра Xen скопируются в директорию '''/boot''', а файлы конфигурации – в вашу систему. Чтобы компьютер загружался с нашим ядром, необходимо создать образ начального RAM-диска, используя следующую команду&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkinitrd      /boot/initrd-2.6.12-xen0.img  2.6.12.6-xen0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первый параметр – путь, куда надо сохранить образ диска, а второй – имя директории с модулями в '''/lib/modules'''.&lt;br /&gt;
&lt;br /&gt;
====3. Конфигурация загрузчика====&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить ядро xen0 в загрузчик ''Grub'', откройте в текстовом редакторе файл '''/boot/grub/menu.lst'''. По умолчанию в Fedora он выглядит следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 default=0&lt;br /&gt;
 timeout=5&lt;br /&gt;
 splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;
 hiddenmenu&lt;br /&gt;
 &lt;br /&gt;
 title Fedora Core (2.6.11-1.1369_FC4)&lt;br /&gt;
 root (hd0,0)&lt;br /&gt;
 kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;
 initrd /initrd-2.6.11-1.1369_FC4.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо привести его к следующему виду&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 default=0&lt;br /&gt;
 timeout=5&lt;br /&gt;
 splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;
 hiddenmenu&lt;br /&gt;
 &lt;br /&gt;
 title Xen 3.0/XenLinux 2.6&lt;br /&gt;
 root (hd0,0)&lt;br /&gt;
 kernel /xen-3.0.0.gz dom0_mem=131072&lt;br /&gt;
 module /vmlinuz-2.6.12.6-xen0 ro root=/dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;
 module /initrd-2.6.12-xen0.img&lt;br /&gt;
&lt;br /&gt;
 title Fedora Core (2.6.11-1.1369_FC4)&lt;br /&gt;
 root (hd0,0)&lt;br /&gt;
 kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/&lt;br /&gt;
 dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;
 initrd /initrd-2.6.11-1.1369_FC4.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Заметим, что теперь мы загружаем ядро Xen, а не Linux. Мы передаем имя Linux- ядра в Xen, и она запускает его в качестве гостевой ОС виртуальной машины dom0. Параметр '''dom0_mem''' определяет, сколько ОЗУ мы хотим выделить '''dom0'''. В нашем случае это 128 MБ. Можно указать любое другое значение, но не забудьте умножить количество мегабайт, которое вы хотите выделить виртуальной машине, на 1024.&lt;br /&gt;
&lt;br /&gt;
Сохраните файл, перегрузитесь, и теперь по умолчанию система грузит ядро Xen, которое может не содержать нужных вам настроек – тогда придется отредактировать его конфигурацию или пересобрать нужные вам драйверы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=XEN НА ПРЕДПРИЯТИИ&lt;br /&gt;
|Содержание=&lt;br /&gt;
Вручение Xen администратору равносильно выдаче автомата калашникова неандертальцу: техника в руках дикаря приносит скорее вред, чем пользу, потому что требует специальных знаний и навыков. крупная фирма не станет действовать «в лоб» и сокращать количество серверов, загруженных на 25%, просто распределив их на меньшем количестве серверов с загрузкой 90% и выбрав Xen в качестве средства виртуализации. Конечно, такая возможность есть, но переход потребует огромных затрат на планирование, тестирование и внедрение. На наш урок вам потребуется час или около того; а сколько понадобится времени, если вы работаете на ответственной системе? Или если бы вам пришлось дублировать точные конфигурации сервера, а то и – самое сложное – развертывать Xen на множестве серверов и добиваться их слаженной работы? &lt;br /&gt;
&lt;br /&gt;
Сама по себе Xen – просто инструмент; в ее состав не входят другие средства управления, кроме рассмотренных здесь. Однако фирма XenSource, разработчик Xen, предусмотрела проприетарный программный продукт для управления, именуемый XenOptimizer. Он позволяет предприятиям развертывать и управлять Xen в вычислительных центрах, предоставляя консоль, с которой администратор может контролировать ресурсы, создавать и модифицировать виртуальные машины Xen, а также осуществлять динамическое распределение нагрузки на сервера, чтобы отвечать любым потребностям пользователей. если вы намерены развертывать Xen на более чем 10 физических серверах, то XenOptimizer может сэкономить время и деньги и даже спасти положение.&lt;br /&gt;
&lt;br /&gt;
http://www2.getxen.com/products/xenoptimizer.html/&lt;br /&gt;
|Ширина=400px}}&lt;br /&gt;
&lt;br /&gt;
Теперь войдите в систему, запустите консоль и наберите '''uname -a'''. 'xen0' в строке вывода результата команды сигнализирует о том, что вы теперь в домене 0. Переключитесь в режим root с помощью команды '''su -''' и запустите '''xend start''', а потом '''xm list'''. Последняя команда выводит список всех работающих в данный момент виртуальных машин. В этом списке вы видите dom0, которой выделено 128 MБ ОзУ. Поздравляем! Ваша система заработала в Xen!&lt;br /&gt;
&lt;br /&gt;
===Cоздание виртуальной гостевой ОС===&lt;br /&gt;
&lt;br /&gt;
Работали мы, работали...  и что вышло? Ваша система работает так же, как и до этого, верно? Нет, не совсем: теперь можно создавать непривилегированных гостей domU. Приступим...&lt;br /&gt;
&lt;br /&gt;
====1. Создание образов диска====&lt;br /&gt;
&lt;br /&gt;
Переключитесь в суперпользователя и запустите '''df -h''', чтобы проверить, сколько свободного места в системе. Вам понадобится 4 ГБ свободной памяти, однако примите во внимание объем текущей инсталляции Linux. Чтобы запустить гостя domU, необходимо сначала создать образ для его корневого раздела, а также образ для раздела подкачки. Следующие две команды создадут образ корневого раздела. Выполнять их надо из директории '''/root''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 dd if=/dev/zero of=vmdisk bs=1k seek=4096k count=1&lt;br /&gt;
 mkfs.ext3 vmdisk&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
За запуском второй команды последует предупреждение, что файл не является специальным блочным устройством; для продолжения, просто нажмите [y]. Установка параметра '''seek''' как 4096k дает нам образ диска размером в 4 ГБ; вы можете менять размер по своему усмотрению: 1024 соответствует 1 ГБ, 2048 – 2 ГБ, 8192 – 8 ГБ и т.д. В данный момент диск отформатирован как ext3, но он совершенно пуст, поэтому необходимо сделать на нем клон нашей системы.&lt;br /&gt;
&lt;br /&gt;
Следующие команды монтируют образ как loopback-устройство, а затем копируют на него вашу ОС. Если у вас много чего установлено или вы хотите скопировать только некоторые части системы, тогда придется быть более точным.&lt;br /&gt;
&lt;br /&gt;
Прежде чем продолжить, ответьте на&lt;br /&gt;
следующие вопросы:&lt;br /&gt;
*Вы проверили, какой объем занимает ваша установленная система с помощью '''df -h'''?&lt;br /&gt;
*Вы создали образ диска необходимого объема?&lt;br /&gt;
*Вы создали файл '''vmdisk''' в каталоге '''/root'''?&lt;br /&gt;
&lt;br /&gt;
Если ответом на все три вопроса было '''«да»''', тогда двигаемся дальше. Выполните следующие команды:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /mnt/vmdisk&lt;br /&gt;
 mount –o loop vmdisk /mnt/vmdisk&lt;br /&gt;
 cp –ax /{ bin,dev,etc,home,lib,sbin,usr,var} /mnt/vmdisk/&lt;br /&gt;
 mkdir /mnt/vmdisk/{proc,sys,tmp,root}&lt;br /&gt;
 chmod og+w /mnt/vmdisk/tmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команде '''cp -ax''' требуется ощутимое время для исполнения. Директории '''proc, sys, tmp''' и '''root''' копировать не нужно, они просто создаются командой mkdir. В некоторых дистрибутивах необходимо так-же скопировать каталог '''/opt''', однако под Fedora этого не понадобится.&lt;br /&gt;
&lt;br /&gt;
Последняя команда меняет права доступа к '''/tmp''', разрешая программам записывать туда свои данные.&lt;br /&gt;
&lt;br /&gt;
Гость dom0 имеет прямой доступ к оборудованию, в то время как гость domU будет использовать образ диска для хранения данных. Поэтому им необходимы разные настройки fstab. Откройте в текстовом редакторе файл '''/mnt/vmdisk/etc/fstab'''. В Fedora он будет выглядеть следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # This file is edited by fstab-sync - see ‘man  fstab-sync’ for details&lt;br /&gt;
 /dev/VolGroup00/LogVol00 	/ 		ext3 	defaults 1 1&lt;br /&gt;
 LABEL=/boot 		/boot 		ext3 	defaults 1 2&lt;br /&gt;
 /dev/devpts 			/dev/pts 	devpts 	gid=5,mode=620  0 0&lt;br /&gt;
 /dev/shm 			/dev/shm 	tmpfs 	defaults 0 0&lt;br /&gt;
 /dev/proc 			/proc 		proc 	defaults 0 0&lt;br /&gt;
 /dev/sys 			/sys 		sysfs 	defaults 0 0&lt;br /&gt;
 /dev/VolGroup00/LogVol01 swap 		swap  	defaults 0 0&lt;br /&gt;
 /dev/hdc 			/media/cdrom 	auto 	pamconsole,exec,noauto,managed 0 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, Fedora использует логические тома '''(LVM)''' для управления жесткими дисками, о чем говорит запись '''VolGroup00'''. Однако ваш файл '''fstab''' может просто использовать '''/dev/hda1''' и '''/dev/hda2'''. В нашем случае необходимо отредактировать файл, чтобы он монтировал '''hda1''' и '''hda2''' в качестве корневого раздела и раздела подкачки соответственно. Исправленный файл&lt;br /&gt;
должен выглядеть так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /dev/hda1 	/ 		ext3 	defaults 		1 1&lt;br /&gt;
 /dev/devpts 	/dev/pts 	devpts 	gid=5,mode=620 	0 0&lt;br /&gt;
 /dev/shm 	/dev/shm 	tmpfs 	defaults 		0 0&lt;br /&gt;
 /dev/proc 	/proc 		proc 	defaults 		0 0&lt;br /&gt;
 /dev/sys 	/sys 		sysfs 	defaults 		0 0&lt;br /&gt;
 /dev/hda2 	swap 		swap 	defaults 		0 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните его и выполните '''unmout /mnt/vmdisk''', чтобы размонтировать виртуальный образ. Это важно, т.к. Xen не может использовать файловые системы, которые уже смонтированы Linux. теперь создадим виртуальный диск для раздела подкачки объемом 256 MБ, следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 dd if=/dev/zero of=vmswap bs=1k seek=256k  count=1&lt;br /&gt;
 mkswap vmswap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====2. создание файла настройки====&lt;br /&gt;
&lt;br /&gt;
Создание дисков для виртуальной машины закончено, осталось настроить файл конфигурации. Выполните команду: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cp /etc/xen/xmexample1 ~/xmlinux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате файл с примером конфигурации Xen скопируется в текущую директорию. Откройте его в текстовом редакторе.&lt;br /&gt;
&lt;br /&gt;
Необходимо сделать несколько изменений – найдите следующие строки и исправьте их на указанные значения:&lt;br /&gt;
*`kernel=` в /boot/vmlinuz-2.6.12-xenU.&lt;br /&gt;
*`memory=` в 128&lt;br /&gt;
*`name=` в Linux1&lt;br /&gt;
*`disk=` в [ ‘file:/root/vmdisk,hda1,w’, ‘file:/root/vmswap,hda2,w’ ].&lt;br /&gt;
&lt;br /&gt;
Если ваша версия ядра отличается от нашей, то подправьте файл соответствующим образом. Память измеряется в мегабайтах; мы работаем со 128 MБ ОЗУ и 256-MБ диском подкачки, однако если у вас система мощнее, можете определить собственные значения параметров. Имя Linux1 дано, чтобы отличить VM от других (к тому же его легко запомнить); у каждойVM должно быть уникальное имя.&lt;br /&gt;
&lt;br /&gt;
Наконец, параметры диска определяют, что '''/root/vmdisk''' монтируется как '''hda1''' (корневой раздел гостя domU) с правами запись/чтение, а '''/root/vmswap''' монтируется как '''hda2''' (файл подкачки гостя domU), также с правами запись/чтение.&lt;br /&gt;
&lt;br /&gt;
Теперь можно запустить новую VM!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm create -c xmlinux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметр '''–c''' позволяет определить наш файл конфигурации для новой виртуальной машины. Если появляется ошибка 'Error connecting to xend: Connection refused', значит, вы забыли выполнить '''xend start''' от имени root на предыдущем шаге. Также может появиться ошибка ‘File /root/vmdisk is loopback-mounted through /dev/loop0’. Она говорит о том, что вы не отмонтировали образ виртуального диска.&lt;br /&gt;
&lt;br /&gt;
Ошибка ‘error creating domain: VM name ‘Linux1’ already in use` говорит сама за себя. Обычно она появляется после другой ошибки: Xen создает VM, пытается запустить ее и терпит неудачу, но созданную VM при этом не уничтожает. Выполнив '''xm list''', вы увидите, что Linux1 находится в состоянии '''p''' (приостановлена). Уничтожьте ее с помощью '''xm destroy''' Linux1 и создайте заново.&lt;br /&gt;
&lt;br /&gt;
Если не произошло ни одной ошибки (считайте себя счастливчиком!), вы увидите, как начнет загружаться новая машина. В конце концов появится приглашение войти в систему.  Используйте ваш логин и пароль, т.к. мы скопировали '''/etc/passwd''' на виртуальный диск.&lt;br /&gt;
&lt;br /&gt;
===Работа с XEN===&lt;br /&gt;
&lt;br /&gt;
В данный момент у нас работает Linux на Linux, хотя и только в командной строке. Посмотрим, как можно переключиться в графический режим, а также как управлять и работать с Xen. &lt;br /&gt;
&lt;br /&gt;
====Управление CPU====&lt;br /&gt;
&lt;br /&gt;
В отличие от других техник виртуализации, при паравиртуализации, примененной в Xen, гостевая ОС знает о своем виртуальном статусе. На практике это означает, что мы может посылать гостевой ОС команды и получать от нее ответ. Например, откройте второй терминал (первый оставьте работать с гостевой ОС dom0), переключитесь в суперпользователя с помощью '''su -''' и выполните команду &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xm shutdown Linux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нажав [enter], вы увидите, что на первом терминале появляются стандартные сообщения завершения работы Linux. Другими словами, Xen не выдернула VM из розетки: VM сама себя остановила и вернула контроль родительской ОС. &lt;br /&gt;
&lt;br /&gt;
Этим команда shutdown отличается от команды destroy, которая как раз убивает VM. Уничтожение VM с помощью destroy может повредить диск, поэтому ее не рекомендуется пускать в ход, пока ваша VM не будет приостановлена.&lt;br /&gt;
&lt;br /&gt;
Вернувшись в командную строку главной виртуальной машины и перейдя в режим суперпользователя, откройте в текстовом редакторе файл '''xmlinux1''', найдите строку с параметром vcpus и установите его значение равным 4. Если перед параметром стоит знак комментария (символ #), удалите его. теперь перезапустите машину с помощью&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm create –c Linux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и войдите под своей учетной записью. В выводе команды cat '''/proc/cpuinfo''' вы увидите, что в наличии имеется 4 CPU. Физически у нас всего лишь 1 процессор на материнской плате, но Xen это не волнует: она виртуализует столько CPU, сколько потребуется. Если у вас в системе физических процессоров несколько, можно изменить параметр `cpus` в файле '''xmlinux1''' и указать количество процессоров, на которых должна работать VM.&lt;br /&gt;
&lt;br /&gt;
====Управление ОЗУ====&lt;br /&gt;
&lt;br /&gt;
С процессорами мы научились управляться, но как насчет ОЗУ? Наберите '''top''' внутри гостевой машины domU. В левом верхнем углу вы увидите строку, похожую на ‘Mem: 134900k total’. Это объем ОЗУ, который мы выделили машине. Теперь с другого терминала (вашей главной машины) запустите от имени суперпользователя '''xm list'''. Вы увидите, что домен Linux1 работает и ему действительно выделено 128 MБ ОзУ. Давайте поменяем объем RAM! Выполните следующую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm mem-set Linux1 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы уменьшили объем доступной Linux1 памяти до 64 MБ.Снова запустите команду top в гостевой машине domU. Вы увидите ‘Mem: 65536k’, то есть то, что нам нужно. Посмотрим, как вы сделаете это в Vmware Workstation...&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=СОВЕТ XEN: СТАТИСТИКА&lt;br /&gt;
|Содержание=&lt;br /&gt;
Если нужно отследить загруженность нескольких VM, поможет программа Xentop. Она выводит загрузку ОЗУ, ЦПУ, виртуального ЦПУ и сети для всех доменов, все на одном экране.&lt;br /&gt;
|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Команда '''mem-set''' позволяет изменять размер ОзУ, доступный виртуальной машине. Максимальный объем выделенной ОЗУ не может превышать значения, определенного в файле настройки. т.е. вы можете создать машину с 256 MБ ОзУ, а затем с помощью ''mem-set'' ограничить доступный объем до 8–16 MБ (в этом случае ядро начнет убивать процессы, чтобы высвободить память). можно увеличить объем до 128 MБ или даже установить начальное значение 256 MБ, однако попытки выйти за пределы 256 MБ будут проигнорированы. Если хотите достичь большей гибкости, рекомендуем создавать виртуальные машины с большими начальными значениями ОЗУ (для этого измените значение `memory =` в файле '''xmlinux1'''), а затем уменьшать ОЗУ до реально имеющихся. Если же объем ОЗУ потребуется увеличить, у вас будет запас для маневра.&lt;br /&gt;
&lt;br /&gt;
====Сохранение и перезагрузка====&lt;br /&gt;
&lt;br /&gt;
Теперь рассмотрим возможности поинтереснее: т.к. ядро Xen управляет гостями Linux, можно сохранить состояние выбранной VM перед ее отключением! По существу, происходит создание дампа оперативной памяти VM. Его размер будет равен объему ОЗУ, выделенного виртуальной машине. Если захотите вернуться в сохраненное состояние, то Xen просто скопирует дамп обратно в ОЗУ. Не меняйте расположение файлов '''vmdisk''' и '''vmswap''' после сохранения состояния виртуальной машины. Сохранение и восстановление виртуальных машин можно осуществлять следующими двумя командами:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm save Linux1 Linux1.state&lt;br /&gt;
 xm restore Linux1.state&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первая команда сохраняет машину Linux1 в файл '''Linux1.state''', затем происходит ее выключение. Вторая команда восстанавливает машину (если файл '''Linux1.state''' не находится в том же каталоге, что и вы, в команде придется указать его полный путь).&lt;br /&gt;
&lt;br /&gt;
Одна из особенностей Xen – ее виртуальные машины работают на уровне, отличном от уровня базовой машины (домен 0). После создания и запуска виртуальной машины с помощью '''xm create''', вы сможете войти в нее. Однако если вы закроете терминальное окно, VM будет продолжать работу в фоновом режиме, как если бы ничего не случилось. Ваше соединение с ней напоминает удаленный терминал: вы свободно подключаетесь и отключаетесь, а она невозмутимо работает.&lt;br /&gt;
&lt;br /&gt;
Вместо того, чтобы просто закрыть терминал, попробуйте нажать '''Ctrl + ]''' (правая квадратная скобка) для отсоединения от консоли VM и возврата в главную машину. Хотя VM работает, к ее выводу вы подсоединиться не можете. Чтобы вернуться в VM, наберите команду '''xm console Linux1'''. Возможно, потребуется нажать Enter еще раз, чтобы появилось приглашение команд- ной строки. Консоль VM – не то же самое, что настоящий удаленный терминал, потому что, запустив в двух терминалах &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm console Linux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
вы окажетесь в одной сессии консоли (проверьте: запустите в одном терминале '''uname –a''', затем переключитесь в другой и нажмите стрелку вверх, чтобы увидеть последнюю запущенную команду; вы увидите, что это ''uname'').&lt;br /&gt;
&lt;br /&gt;
Если хотите использовать настоящий удаленный терминал, попробуйте ''SSH''. Выполните '''/sbin/ifconfig''' в гостевом домене xenU, а затем из xen0 (ваша главная машина) подключитесь к xenU с помощью ''SSH''.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:Xen</id>
		<title>LXF77:Xen</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:Xen"/>
				<updated>2008-04-25T02:07:11Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Xen: виртуальный роман */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Xen: виртуальный роман==&lt;br /&gt;
&lt;br /&gt;
виртуализуйте оборудование и удивите друзей своим мастерством. Пол Хадсон покажет, как справиться с установкой Xen.&lt;br /&gt;
&lt;br /&gt;
Пускай у вас мощнейший компьютер – этакий Athlon FX-60, 4 ГБ ОЗУ, 1000 ГБ жесткого диска и Linux-система, и все таки единственная ошибка при обновлении операционной системы может вывести его из строя. Произошло повреждение файла настроек, обнаружились ошибки в Glibc или пропажа модуля ядра – и ваша ОС рухнула придется восстанавливать систему используя резервную копию.&lt;br /&gt;
&lt;br /&gt;
Но на грабли наступать вовсе не обязательно: клонируйте установленную ОС, запустите ее на виртуальной машине и выполните пробное обновление виртуально. если не обошлось без ошибок, то обновление можно отменить, виртуальную машину отключить, а ваша система останется невредимой.&lt;br /&gt;
&lt;br /&gt;
Это только один из способов применения виртуализации, на самом деле их гораздо больше. виртуализация произвела революцию на рынке серверов, так как позволяет снизить объем неиспользованных ресурсов. к примеру, два сервера, допустим, с Apache и MySQL, загруженных на 25%, можно разместить на одном физическом сервере, организовав на нем две виртуальные машины – затраты на оборудование и обслуживание уменьшатся вдвое. Другой популярный пример использования виртуализации в бизнесе –создание кластеров и их использование для обеспечения дополнительной надежности, а также для отработки сложных сценариев на простых Пк.&lt;br /&gt;
&lt;br /&gt;
Энтузиасты заинтересуются и просто шансом поиграть с новой технологией. владельцам домашних компьютеров виртуализация предоставляет возможность одновременно запустить несколько ОС, например, Fedora Core 4 и Fedora Core 5 Test 2, а также SUSe 10.0, NetBSD и в некоторых случаях Windows. Круто!&lt;br /&gt;
&lt;br /&gt;
===С чего начать===&lt;br /&gt;
&lt;br /&gt;
Самое свежее решение по виртуализации – программа Xen – явилось из мира Open Source. Мы рассказывали о Xen в LXF 67 и предположили, что за ней будущее виртуализации. так вот, это будущее настало!&lt;br /&gt;
&lt;br /&gt;
Что особенного в данной технологии? Подход Xen сильно отличается от так называемой аппаратной виртуализации, применяемой в VMware и других укоренившихся продуктах. В VMware гостевая ОС остается в неведении о своем виртуальном статусе, а в Xen исходный код гостевой ОС должен быть немного подправлен, чтобы она понимала: ее место – под Xen. Это похоже на отношение симбиоза в природе: гостевая ОС знает о существовании Xen и реагирует на команды, а базовая ОС знает о своих гостях и получает от них информацию.&lt;br /&gt;
&lt;br /&gt;
Новый подход окрестили «паравиртуализацией». На практике, паравиртуализация означает, что работа виртуальной машины (Virtual Machine, VM) не требует трудоемких операций, так как она осознает свой виртуальный статус и поэтому разделяет доступ ко всем ресурсам с остальными машинами без вмешательства Xen.&lt;br /&gt;
&lt;br /&gt;
В результате скорость работы Xen VM всего лишь на 3–8% меньше, чем запуск системы на настоящем оборудовании, поэтому «почувствовать разницу» не удастся. &lt;br /&gt;
&lt;br /&gt;
===Принцип работы Xen ===&lt;br /&gt;
&lt;br /&gt;
С тех пор, как мы рассказывали о Xen с десяток выпусков назад, она вошла в состав многих популярных дистрибутивов. SUSE, Fedora, Ubuntu, Gentoo и другие включили поддержку Xen, хотя качество поддержки зависит от дистрибутива. Xen негласно является одной из архитектур, под которые создается ядро Linux, наряду с x86, x86-64 и PowerPC.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|right|&lt;br /&gt;
|Заголовок=АППАРАТНАЯ ВИРТУАЛИЗАЦИЯ&lt;br /&gt;
|Содержание=&lt;br /&gt;
Паравиртуализация устраняет падение производительности, хотя придется подправить исходный код гостевой ОС. но это относится не ко всем архитектурам CPU. Архитектура Intel (x86–386, Pentium 4) а также клоны AMD и многие другие процессоры полагаются на иерархическую систему колец для назначения привилегий. Внутри процессора каждая программа (включая ОС) работает в кольце 0, 1, 2 или 3. в кольце 0 программы имеют полный контроль над машиной, а программы кольца 3 наиболее ограничены. на большинстве компьютеров ОС работает в кольце 0, а пользовательские программы в кольце 3, то есть даже самые агрессивные пользователи физически не могут отпихнуть ОС от ресурсов.&lt;br /&gt;
&lt;br /&gt;
Проблема, связанная с кольцевой архитектурой, заключается в следующем: операционная система воображает, что будет работать в кольце 0. но виртуальную ОС в кольце 0 запустить нельзя: это угрожает безопасности базовой ОС. Поэтому виртуальная ОС запускается в кольце с меньшим уровнем привилегий. когда ОС проверяет, в каком кольце она работает, и получает ответ – не 0, ее работа аварийно завершается. Данная проблема обычно решается т.н. двоичной корректировкой: VM отслеживает запросы гостевой ОС на номер кольца и подменяет ответ. Двоичная корректировка – довольно трудоемкий процесс, поэтому традиционные техники виртуализации требуют мощного оборудования.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Xen-0123.jpg|center|354px]]&lt;br /&gt;
&lt;br /&gt;
Паравиртуализация снимает проблему: ОС больше не претендует на работу в кольце 0, значит, никакая двоичная корректировка не нужна. Но что делать, если ОС невозможно подправить? Intel решила задачу с помощью технологии Vanderpool (сейчас просто VT), а AMD использует технологию Pacifica, которая заодно виртуализует контроллер памяти, тоже встроенный в чипы AMD64. новые чипы работают с двумя наборами привилегированных колец: VMX root и VMX Nonroot. Оба набора имеют кольца с 0 по 3, но только в наборе VMX&lt;br /&gt;
root кольцо 0 имеет полный контроль над компьютером. набор VMX Nonroot виртуализуется чипом: когда немодифицирован-ная ОС проверяет, в каком кольце она работает, то получает ответ `0`, но не может угадать, какому из двух наборов это кольцо принадлежит.&lt;br /&gt;
&lt;br /&gt;
VT и Pacifica все равно требуют программного обеспечения для поддержки виртуализации гостевых ОС и взаимодействия с пользователями. Xen поддерживает обе технологии, поэтому, если у вас имеется подходящее оборудование, вы можете запускать немодифицированные ОС (в том числе Windows XP) без потерь производительности.&lt;br /&gt;
|Ширина=400px}}&lt;br /&gt;
&lt;br /&gt;
Формально, когда вы устанавливаете Xen на компьютер, она становится главной операционной системой. Загрузка компьютера сопровождается загрузкой Xen OS, которая создает первоначальную виртуальную машину (известную как домен 0 или просто dom0), т.е. вашу базовую ОС. Все выглядит так, словно вы загружаете тот же Linux и затем X, как и до этого, но на самом деле вы используете виртуальную машину. Гостевая ОС dom0 является самой привилегированной, и поэтому имеет более высокий приоритет при доступе к оборудованию и вычислениях, чем другие гости. Этим гостям – обычно их называют непривилегированными доменами (domU) – требуется собственная порция оперативной памяти, а также постоянное место на диске для хранения своих данных.&lt;br /&gt;
&lt;br /&gt;
===Установка ядра===&lt;br /&gt;
&lt;br /&gt;
Хотя большинство дистрибутивов имеют поддержку Xen, мы потренируемся в сборке из исходных текстов, для гарантии, что вы сможете повторить процедуру установки с любым дистрибутивом. В данном руководстве мы будем использовать дистрибутив Fedora Core 4.&lt;br /&gt;
&lt;br /&gt;
Прежде, чем мы начнем, необходимо сделать замечание: Xen должна работать с реальным оборудованием. Вы не сможете установить ее внутри Vmware или с использованием других средств виртуализации.&lt;br /&gt;
&lt;br /&gt;
===Как установить XEN===&lt;br /&gt;
&lt;br /&gt;
Хватит болтать – установим-ка Xen и запустим нашу основную ОС как виртуальную машину.&lt;br /&gt;
&lt;br /&gt;
====1. Устранение зависимостей====&lt;br /&gt;
&lt;br /&gt;
У Xen достаточно много зависимостей, и если вы хотите насладиться виртуализацией по максимуму, то их необходимо устранить. Вам потребуются полный набор для компиляции программ (GCC, make и др.), VNC (серверная и клиентская части), libvncserver, библиотека python-twisted, а также программа brctl, Curl (включая библиотеки разработки) и SDL (также включая библиотеки разработки).&lt;br /&gt;
&lt;br /&gt;
Если вы устанавливаете Fedora Core 4, выберите Custom Setup. Отключите брандмауэр и SELinux (они могут вызывать проблемы), затем выберите следующие пакеты из предложенного списка: &lt;br /&gt;
*Из категории ''X Window System'' выберите '''xorg-x11-Xnest'''.&lt;br /&gt;
*Пометьте Development Tools (список выбранных пакетов по умолчанию нас устраивает)&lt;br /&gt;
*Из категории System Tools выберите VNC.&lt;br /&gt;
*Из Network Servers выберите vncserver.&lt;br /&gt;
&lt;br /&gt;
Когда установка закончится, проведите первоначальную настройку системы. зайдите в систему и загрузите Gnome. Если вы используете не FC4, менеджер пакетов вашего дистрибутива наверняка может предложить эквиваленты вышеназванных программ. Установка Xnest необязательна, но без остальных пакетов не обойтись. &lt;br /&gt;
&lt;br /&gt;
Теперь нам необходимо получить libvncserver, следовательно нам на сайт http://libvncserver.sourceforge.net. На момент написания статьи там была доступна для скачивания «предварительная версия» в виде файла '''LibVNCServer-0.8pre.tar.gz'''. Откройте терминал, перейдите в директорию, в которую скопировали его, и наберите&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xpvfz LibVNCServer-0.8pre.tar.gz&lt;br /&gt;
 cd LibVNCServer-0.8pre&lt;br /&gt;
 ./configure&lt;br /&gt;
 Make&lt;br /&gt;
 su -&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если у вас Fedora Core, то остальные пакеты устанавливаются командой&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 yum install python-twisted bridge-utils curl  SDL-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании другого дистрибутива, менеджер пакетов может предложить их аналоги. Если вы не можете найти пакет '''bridge-utils''', то поищите тот, который предоставляет команду ''brctl''.&lt;br /&gt;
&lt;br /&gt;
Теперь пора установить Xen. С сайта http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads скачайте файл '''xen-3.0.0-src.tgz'''. Если доступна более новая версия, можете попробовать ее, но&lt;br /&gt;
тогда мы не гарантируем, что дальнейшие инструкции будут работать. Наша версия находится на диске к журналу в директории Magazine/Xen. &lt;br /&gt;
&lt;br /&gt;
====2. Сборка ядра Xen====&lt;br /&gt;
&lt;br /&gt;
Получив файл с Xen, отправляйтесь обратно в терминал и выполните следующие команды:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvpfz xen-3.0.0-src.tgz&lt;br /&gt;
 cd xen-unstable&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На диске в директории Magazine/Xen вы найдете специальную версию ядра Linux. Если вы скопируете ядро в свежесозданную директорию xen-unstable, Xen использует его для сборки своего образа. Если вы не скопируете наше ядро, то Xen скачает его из сети, да и вы сами можете поступить так же! Итак, ядро скопировано; перейдите в директорию xen-unstable и&lt;br /&gt;
запустите&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 make world&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вне зависимости от способа установки ядра Linux, ядро будет извлечено, модифицировано для работы с Xen, а затем собрано дважды: сначала как xen0 (для dom0), а затем как xenU (для domU). Компиляция – процесс долгий, поэтому у вас будет достаточно времени на какие-нибудь другие дела.&lt;br /&gt;
&lt;br /&gt;
После завершения компиляции можно двигаться дальше:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 su&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Новые ядра Xen скопируются в директорию '''/boot''', а файлы конфигурации – в вашу систему. Чтобы компьютер загружался с нашим ядром, необходимо создать образ начального RAM-диска, используя следующую команду&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkinitrd      /boot/initrd-2.6.12-xen0.img  2.6.12.6-xen0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первый параметр – путь, куда надо сохранить образ диска, а второй – имя директории с модулями в '''/lib/modules'''.&lt;br /&gt;
&lt;br /&gt;
====3. Конфигурация загрузчика====&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить ядро xen0 в загрузчик ''Grub'', откройте в текстовом редакторе файл '''/boot/grub/menu.lst'''. По умолчанию в Fedora он выглядит следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 default=0&lt;br /&gt;
 timeout=5&lt;br /&gt;
 splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;
 hiddenmenu&lt;br /&gt;
 &lt;br /&gt;
 title Fedora Core (2.6.11-1.1369_FC4)&lt;br /&gt;
 root (hd0,0)&lt;br /&gt;
 kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;
 initrd /initrd-2.6.11-1.1369_FC4.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо привести его к следующему виду&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 default=0&lt;br /&gt;
 timeout=5&lt;br /&gt;
 splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;
 hiddenmenu&lt;br /&gt;
 &lt;br /&gt;
 title Xen 3.0/XenLinux 2.6&lt;br /&gt;
 root (hd0,0)&lt;br /&gt;
 kernel /xen-3.0.0.gz dom0_mem=131072&lt;br /&gt;
 module /vmlinuz-2.6.12.6-xen0 ro root=/dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;
 module /initrd-2.6.12-xen0.img&lt;br /&gt;
&lt;br /&gt;
 title Fedora Core (2.6.11-1.1369_FC4)&lt;br /&gt;
 root (hd0,0)&lt;br /&gt;
 kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/&lt;br /&gt;
 dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;
 initrd /initrd-2.6.11-1.1369_FC4.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Заметим, что теперь мы загружаем ядро Xen, а не Linux. Мы передаем имя Linux- ядра в Xen, и она запускает его в качестве гостевой ОС виртуальной машины dom0. Параметр '''dom0_mem''' определяет, сколько ОЗУ мы хотим выделить '''dom0'''. В нашем случае это 128 MБ. Можно указать любое другое значение, но не забудьте умножить количество мегабайт, которое вы хотите выделить виртуальной машине, на 1024.&lt;br /&gt;
&lt;br /&gt;
Сохраните файл, перегрузитесь, и теперь по умолчанию система грузит ядро Xen, которое может не содержать нужных вам настроек – тогда придется отредактировать его конфигурацию или пересобрать нужные вам драйверы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
|Заголовок=XEN НА ПРЕДПРИЯТИИ&lt;br /&gt;
|Содержание=&lt;br /&gt;
Вручение Xen администратору равносильно выдаче автомата калашникова неандертальцу: техника в руках дикаря приносит скорее вред, чем пользу, потому что требует специальных знаний и навыков. крупная фирма не станет действовать «в лоб» и сокращать количество серверов, загруженных на 25%, просто распределив их на меньшем количестве серверов с загрузкой 90% и выбрав Xen в качестве средства виртуализации. Конечно, такая возможность есть, но переход потребует огромных затрат на планирование, тестирование и внедрение. На наш урок вам потребуется час или около того; а сколько понадобится времени, если вы работаете на ответственной системе? Или если бы вам пришлось дублировать точные конфигурации сервера, а то и – самое сложное – развертывать Xen на множестве серверов и добиваться их слаженной работы? &lt;br /&gt;
&lt;br /&gt;
Сама по себе Xen – просто инструмент; в ее состав не входят другие средства управления, кроме рассмотренных здесь. Однако фирма XenSource, разработчик Xen, предусмотрела проприетарный программный продукт для управления, именуемый XenOptimizer. Он позволяет предприятиям развертывать и управлять Xen в вычислительных центрах, предоставляя консоль, с которой администратор может контролировать ресурсы, создавать и модифицировать виртуальные машины Xen, а также осуществлять динамическое распределение нагрузки на сервера, чтобы отвечать любым потребностям пользователей. если вы намерены развертывать Xen на более чем 10 физических серверах, то XenOptimizer может сэкономить время и деньги и даже спасти положение.&lt;br /&gt;
&lt;br /&gt;
http://www2.getxen.com/products/xenoptimizer.html/&lt;br /&gt;
|Ширина=400px}}&lt;br /&gt;
&lt;br /&gt;
Теперь войдите в систему, запустите консоль и наберите '''uname -a'''. 'xen0' в строке вывода результата команды сигнализирует о том, что вы теперь в домене 0. Переключитесь в режим root с помощью команды '''su -''' и запустите '''xend start''', а потом '''xm list'''. Последняя команда выводит список всех работающих в данный момент виртуальных машин. В этом списке вы видите dom0, которой выделено 128 MБ ОзУ. Поздравляем! Ваша система заработала в Xen!&lt;br /&gt;
&lt;br /&gt;
===Cоздание виртуальной гостевой ОС===&lt;br /&gt;
&lt;br /&gt;
Работали мы, работали...  и что вышло? Ваша система работает так же, как и до этого, верно? Нет, не совсем: теперь можно создавать непривилегированных гостей domU. Приступим...&lt;br /&gt;
&lt;br /&gt;
====1. Создание образов диска====&lt;br /&gt;
&lt;br /&gt;
Переключитесь в суперпользователя и запустите '''df -h''', чтобы проверить, сколько свободного места в системе. Вам понадобится 4 ГБ свободной памяти, однако примите во внимание объем текущей инсталляции Linux. Чтобы запустить гостя domU, необходимо сначала создать образ для его корневого раздела, а также образ для раздела подкачки. Следующие две команды создадут образ корневого раздела. Выполнять их надо из директории '''/root''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 dd if=/dev/zero of=vmdisk bs=1k seek=4096k count=1&lt;br /&gt;
 mkfs.ext3 vmdisk&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
За запуском второй команды последует предупреждение, что файл не является специальным блочным устройством; для продолжения, просто нажмите [y]. Установка параметра '''seek''' как 4096k дает нам образ диска размером в 4 ГБ; вы можете менять размер по своему усмотрению: 1024 соответствует 1 ГБ, 2048 – 2 ГБ, 8192 – 8 ГБ и т.д. В данный момент диск отформатирован как ext3, но он совершенно пуст, поэтому необходимо сделать на нем клон нашей системы.&lt;br /&gt;
&lt;br /&gt;
Следующие команды монтируют образ как loopback-устройство, а затем копируют на него вашу ОС. Если у вас много чего установлено или вы хотите скопировать только некоторые части системы, тогда придется быть более точным.&lt;br /&gt;
&lt;br /&gt;
Прежде чем продолжить, ответьте на&lt;br /&gt;
следующие вопросы:&lt;br /&gt;
*Вы проверили, какой объем занимает ваша установленная система с помощью '''df -h'''?&lt;br /&gt;
*Вы создали образ диска необходимого объема?&lt;br /&gt;
*Вы создали файл '''vmdisk''' в каталоге '''/root'''?&lt;br /&gt;
&lt;br /&gt;
Если ответом на все три вопроса было '''«да»''', тогда двигаемся дальше. Выполните следующие команды:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mkdir /mnt/vmdisk&lt;br /&gt;
 mount –o loop vmdisk /mnt/vmdisk&lt;br /&gt;
 cp –ax /{ bin,dev,etc,home,lib,sbin,usr,var} /mnt/vmdisk/&lt;br /&gt;
 mkdir /mnt/vmdisk/{proc,sys,tmp,root}&lt;br /&gt;
 chmod og+w /mnt/vmdisk/tmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команде '''cp -ax''' требуется ощутимое время для исполнения. Директории '''proc, sys, tmp''' и '''root''' копировать не нужно, они просто создаются командой mkdir. В некоторых дистрибутивах необходимо так-же скопировать каталог '''/opt''', однако под Fedora этого не понадобится.&lt;br /&gt;
&lt;br /&gt;
Последняя команда меняет права доступа к '''/tmp''', разрешая программам записывать туда свои данные.&lt;br /&gt;
&lt;br /&gt;
Гость dom0 имеет прямой доступ к оборудованию, в то время как гость domU будет использовать образ диска для хранения данных. Поэтому им необходимы разные настройки fstab. Откройте в текстовом редакторе файл '''/mnt/vmdisk/etc/fstab'''. В Fedora он будет выглядеть следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # This file is edited by fstab-sync - see ‘man  fstab-sync’ for details&lt;br /&gt;
 /dev/VolGroup00/LogVol00 	/ 		ext3 	defaults 1 1&lt;br /&gt;
 LABEL=/boot 		/boot 		ext3 	defaults 1 2&lt;br /&gt;
 /dev/devpts 			/dev/pts 	devpts 	gid=5,mode=620  0 0&lt;br /&gt;
 /dev/shm 			/dev/shm 	tmpfs 	defaults 0 0&lt;br /&gt;
 /dev/proc 			/proc 		proc 	defaults 0 0&lt;br /&gt;
 /dev/sys 			/sys 		sysfs 	defaults 0 0&lt;br /&gt;
 /dev/VolGroup00/LogVol01 swap 		swap  	defaults 0 0&lt;br /&gt;
 /dev/hdc 			/media/cdrom 	auto 	pamconsole,exec,noauto,managed 0 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, Fedora использует логические тома '''(LVM)''' для управления жесткими дисками, о чем говорит запись '''VolGroup00'''. Однако ваш файл '''fstab''' может просто использовать '''/dev/hda1''' и '''/dev/hda2'''. В нашем случае необходимо отредактировать файл, чтобы он монтировал '''hda1''' и '''hda2''' в качестве корневого раздела и раздела подкачки соответственно. Исправленный файл&lt;br /&gt;
должен выглядеть так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 /dev/hda1 	/ 		ext3 	defaults 		1 1&lt;br /&gt;
 /dev/devpts 	/dev/pts 	devpts 	gid=5,mode=620 	0 0&lt;br /&gt;
 /dev/shm 	/dev/shm 	tmpfs 	defaults 		0 0&lt;br /&gt;
 /dev/proc 	/proc 		proc 	defaults 		0 0&lt;br /&gt;
 /dev/sys 	/sys 		sysfs 	defaults 		0 0&lt;br /&gt;
 /dev/hda2 	swap 		swap 	defaults 		0 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните его и выполните '''unmout /mnt/vmdisk''', чтобы размонтировать виртуальный образ. Это важно, т.к. Xen не может использовать файловые системы, которые уже смонтированы Linux. теперь создадим виртуальный диск для раздела подкачки объемом 256 MБ, следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 dd if=/dev/zero of=vmswap bs=1k seek=256k  count=1&lt;br /&gt;
 mkswap vmswap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====2. создание файла настройки====&lt;br /&gt;
&lt;br /&gt;
Создание дисков для виртуальной машины закончено, осталось настроить файл конфигурации. Выполните команду: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cp /etc/xen/xmexample1 ~/xmlinux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате файл с примером конфигурации Xen скопируется в текущую директорию. Откройте его в текстовом редакторе.&lt;br /&gt;
&lt;br /&gt;
Необходимо сделать несколько изменений – найдите следующие строки и исправьте их на указанные значения:&lt;br /&gt;
*`kernel=` в /boot/vmlinuz-2.6.12-xenU.&lt;br /&gt;
*`memory=` в 128&lt;br /&gt;
*`name=` в Linux1&lt;br /&gt;
*`disk=` в [ ‘file:/root/vmdisk,hda1,w’, ‘file:/root/vmswap,hda2,w’ ].&lt;br /&gt;
&lt;br /&gt;
Если ваша версия ядра отличается от нашей, то подправьте файл соответствующим образом. Память измеряется в мегабайтах; мы работаем со 128 MБ ОЗУ и 256-MБ диском подкачки, однако если у вас система мощнее, можете определить собственные значения параметров. Имя Linux1 дано, чтобы отличить VM от других (к тому же его легко запомнить); у каждойVM должно быть уникальное имя.&lt;br /&gt;
&lt;br /&gt;
Наконец, параметры диска определяют, что '''/root/vmdisk''' монтируется как '''hda1''' (корневой раздел гостя domU) с правами запись/чтение, а '''/root/vmswap''' монтируется как '''hda2''' (файл подкачки гостя domU), также с правами запись/чтение.&lt;br /&gt;
&lt;br /&gt;
Теперь можно запустить новую VM!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm create -c xmlinux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметр '''–c''' позволяет определить наш файл конфигурации для новой виртуальной машины. Если появляется ошибка 'Error connecting to xend: Connection refused', значит, вы забыли выполнить '''xend start''' от имени root на предыдущем шаге. Также может появиться ошибка ‘File /root/vmdisk is loopback-mounted through /dev/loop0’. Она говорит о том, что вы не отмонтировали образ виртуального диска.&lt;br /&gt;
&lt;br /&gt;
Ошибка ‘error creating domain: VM name ‘Linux1’ already in use` говорит сама за себя. Обычно она появляется после другой ошибки: Xen создает VM, пытается запустить ее и терпит неудачу, но созданную VM при этом не уничтожает. Выполнив '''xm list''', вы увидите, что Linux1 находится в состоянии '''p''' (приостановлена). Уничтожьте ее с помощью '''xm destroy''' Linux1 и создайте заново.&lt;br /&gt;
&lt;br /&gt;
Если не произошло ни одной ошибки (считайте себя счастливчиком!), вы увидите, как начнет загружаться новая машина. В конце концов появится приглашение войти в систему.  Используйте ваш логин и пароль, т.к. мы скопировали '''/etc/passwd''' на виртуальный диск.&lt;br /&gt;
&lt;br /&gt;
===Работа с XEN===&lt;br /&gt;
&lt;br /&gt;
В данный момент у нас работает Linux на Linux, хотя и только в командной строке. Посмотрим, как можно переключиться в графический режим, а также как управлять и работать с Xen. &lt;br /&gt;
&lt;br /&gt;
====Управление CPU====&lt;br /&gt;
&lt;br /&gt;
В отличие от других техник виртуализации, при паравиртуализации, примененной в Xen, гостевая ОС знает о своем виртуальном статусе. На практике это означает, что мы может посылать гостевой ОС команды и получать от нее ответ. Например, откройте второй терминал (первый оставьте работать с гостевой ОС dom0), переключитесь в суперпользователя с помощью '''su -''' и выполните команду &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xm shutdown Linux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нажав [enter], вы увидите, что на первом терминале появляются стандартные сообщения завершения работы Linux. Другими словами, Xen не выдернула VM из розетки: VM сама себя остановила и вернула контроль родительской ОС. &lt;br /&gt;
&lt;br /&gt;
Этим команда shutdown отличается от команды destroy, которая как раз убивает VM. Уничтожение VM с помощью destroy может повредить диск, поэтому ее не рекомендуется пускать в ход, пока ваша VM не будет приостановлена.&lt;br /&gt;
&lt;br /&gt;
Вернувшись в командную строку главной виртуальной машины и перейдя в режим суперпользователя, откройте в текстовом редакторе файл '''xmlinux1''', найдите строку с параметром vcpus и установите его значение равным 4. Если перед параметром стоит знак комментария (символ #), удалите его. теперь перезапустите машину с помощью&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm create –c Linux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и войдите под своей учетной записью. В выводе команды cat '''/proc/cpuinfo''' вы увидите, что в наличии имеется 4 CPU. Физически у нас всего лишь 1 процессор на материнской плате, но Xen это не волнует: она виртуализует столько CPU, сколько потребуется. Если у вас в системе физических процессоров несколько, можно изменить параметр `cpus` в файле '''xmlinux1''' и указать количество процессоров, на которых должна работать VM.&lt;br /&gt;
&lt;br /&gt;
====Управление ОЗУ====&lt;br /&gt;
&lt;br /&gt;
С процессорами мы научились управляться, но как насчет ОЗУ? Наберите '''top''' внутри гостевой машины domU. В левом верхнем углу вы увидите строку, похожую на ‘Mem: 134900k total’. Это объем ОЗУ, который мы выделили машине. Теперь с другого терминала (вашей главной машины) запустите от имени суперпользователя '''xm list'''. Вы увидите, что домен Linux1 работает и ему действительно выделено 128 MБ ОзУ. Давайте поменяем объем RAM! Выполните следующую команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm mem-set Linux1 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы уменьшили объем доступной Linux1 памяти до 64 MБ.Снова запустите команду top в гостевой машине domU. Вы увидите ‘Mem: 65536k’, то есть то, что нам нужно. Посмотрим, как вы сделаете это в Vmware Workstation...&lt;br /&gt;
&lt;br /&gt;
Команда '''mem-set''' позволяет изменять размер ОзУ, доступный виртуальной машине. Максимальный объем выделенной ОЗУ не может превышать значения, определенного в файле настройки. т.е. вы можете создать машину с 256 MБ ОзУ, а затем с помощью ''mem-set'' ограничить доступный объем до 8–16 MБ (в этом случае ядро начнет убивать процессы, чтобы высвободить память). можно увеличить объем до 128 MБ или даже установить начальное значение 256 MБ, однако попытки выйти за пределы 256 MБ будут проигнорированы. Если хотите достичь большей гибкости, рекомендуем создавать виртуальные машины с большими начальными значениями ОЗУ (для этого измените значение `memory =` в файле '''xmlinux1'''), а затем уменьшать ОЗУ до реально имеющихся. Если же объем ОЗУ потребуется увеличить, у вас будет запас для маневра.&lt;br /&gt;
&lt;br /&gt;
====Сохранение и перезагрузка====&lt;br /&gt;
&lt;br /&gt;
Теперь рассмотрим возможности поинтереснее: т.к. ядро Xen управляет гостями Linux, можно сохранить состояние выбранной VM перед ее отключением! По существу, происходит создание дампа оперативной памяти VM. Его размер будет равен объему ОЗУ, выделенного виртуальной машине. Если захотите вернуться в сохраненное состояние, то Xen просто скопирует дамп обратно в ОЗУ. Не меняйте расположение файлов '''vmdisk''' и '''vmswap''' после сохранения состояния виртуальной машины. Сохранение и восстановление виртуальных машин можно осуществлять следующими двумя командами:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm save Linux1 Linux1.state&lt;br /&gt;
 xm restore Linux1.state&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первая команда сохраняет машину Linux1 в файл '''Linux1.state''', затем происходит ее выключение. Вторая команда восстанавливает машину (если файл '''Linux1.state''' не находится в том же каталоге, что и вы, в команде придется указать его полный путь).&lt;br /&gt;
&lt;br /&gt;
Одна из особенностей Xen – ее виртуальные машины работают на уровне, отличном от уровня базовой машины (домен 0). После создания и запуска виртуальной машины с помощью '''xm create''', вы сможете войти в нее. Однако если вы закроете терминальное окно, VM будет продолжать работу в фоновом режиме, как если бы ничего не случилось. Ваше соединение с ней напоминает удаленный терминал: вы свободно подключаетесь и отключаетесь, а она невозмутимо работает.&lt;br /&gt;
&lt;br /&gt;
Вместо того, чтобы просто закрыть терминал, попробуйте нажать '''Ctrl + ]''' (правая квадратная скобка) для отсоединения от консоли VM и возврата в главную машину. Хотя VM работает, к ее выводу вы подсоединиться не можете. Чтобы вернуться в VM, наберите команду '''xm console Linux1'''. Возможно, потребуется нажать Enter еще раз, чтобы появилось приглашение команд- ной строки. Консоль VM – не то же самое, что настоящий удаленный терминал, потому что, запустив в двух терминалах &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xm console Linux1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
вы окажетесь в одной сессии консоли (проверьте: запустите в одном терминале '''uname –a''', затем переключитесь в другой и нажмите стрелку вверх, чтобы увидеть последнюю запущенную команду; вы увидите, что это ''uname'').&lt;br /&gt;
&lt;br /&gt;
Если хотите использовать настоящий удаленный терминал, попробуйте ''SSH''. Выполните '''/sbin/ifconfig''' в гостевом домене xenU, а затем из xen0 (ваша главная машина) подключитесь к xenU с помощью ''SSH''.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%91%D0%BE%D0%B8_%D0%B7%D0%B0_%D0%90%D0%B2%D0%B4%D0%B5%D0%B5%D0%B2%D0%BA%D1%83_2023</id>
		<title>Бои за Авдеевку 2023</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%91%D0%BE%D0%B8_%D0%B7%D0%B0_%D0%90%D0%B2%D0%B4%D0%B5%D0%B5%D0%B2%D0%BA%D1%83_2023"/>
				<updated>2008-04-24T13:06:53Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: Перенес рисунок и подправил форматирование первых листингов&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{цикл/Python}}&lt;br /&gt;
УЧЕБНИК ''Python''&lt;br /&gt;
&lt;br /&gt;
ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ&lt;br /&gt;
&lt;br /&gt;
== Уроки Python ==&lt;br /&gt;
'''ЧАСТЬ 6 '''&lt;br /&gt;
&lt;br /&gt;
''Теперь, когда мы научились обрабатывать строки, самое время показать наше умение другим. Но кто будет смотреть сценарий «без лица», пусть даже в Konsole с красивым прозрачным фоном? Для тех, кто не Квентин Тарантино, '''Сергей Супрунов '''покажет, как создаются на ''Python ''графические интерфейсы.''&lt;br /&gt;
&lt;br /&gt;
Чем больше работаешь с ''Python'', тем сильнее ощущаешь его мощь и гибкость. Порой кажется, что для этого языка нет ничего невозможного. Это же можно отнести и к разработке графического интерфейса пользователя (хотя здесь ''Python ''просто использует возможности мощных библиотек). Как вы увидите, ''Python и в'' этом вопросе сохраняет простоту и эффективность, становясь весьма удобным инструментом для решения таких задач, как создание «обёрток» к различным консольным утилитам, разработка графических конфигураторов для ваших любимых инструментов, проектирование прототипов программ (куда проще за пару дней согласовать с заказчиком все «интерфейсные» моменты разрабатываемого проекта, меняя внешний вид прямо на переговорах, чем спустя месяцы напряжённой работы переделывать многомегабайтный проект на C++, только лишь потому, что заказчик счёл интерфейс слишком сложным для освоения), и т.д. Кстати, инсталлятор Gentoo, появившийся в версии 2006.0 и наделавший столько шума, тоже написан на ''Python''.&lt;br /&gt;
&lt;br /&gt;
Для ''Python ''разработано множество инструментов, отличающихся по гибкости, сложности, степени интеграции с вашим окружением. В рамках одного урока сложно рассмотреть всё это многообразие даже в общих чертах. Поэтому мы ограничимся кратким знакомством с модулем ''Tkinter ''и «привязками» ''PyQt ''и ''PyGTK''.&lt;br /&gt;
&lt;br /&gt;
Есть ещё достаточно мощный и переносимый модуль wx''Python, я''вляющийся привязкой к графической библиотеке wxWidgets, который тоже заслуживает внимания, но думаю, вы сможете разобраться с ним самостоятельно.&lt;br /&gt;
&lt;br /&gt;
Начнём со старого доброго ''Tkinter'', который, несмотря на некоторую «неказистость» и плохую интеграцию с системой, всё же остаётся стандартным модулем, входящим в поставку практически всех дистрибутивов. К тому же его простота – идеальная особенность для учебных целей. А разобравшись с ним, вы без труда освоите и другие инструменты.&lt;br /&gt;
&lt;br /&gt;
=== Очарование простоты ===&lt;br /&gt;
Проверить наличие ''Tkinter'' в вашем дистрибутиве достаточно просто (он должен быть, но всякое случается): запустите ''Python'' и выполните команду import ''Tkinter'' (обратите внимание на заглавную первую букву). Если вам не повезло и вы увидели сообщение об ошибке, придётся установить этот модуль отдельно. Проконсультируйтесь с вашим менеджером пакетов, не знает ли он случайно про ''Tkinter'' (имя пакета, в отличие от модуля, обычно записывается только маленькими буквами). Если он окажется из партизанской семьи, то прямая дорога вам на http://www.python.org/ (который с новым дизайном смотрится очень даже приятно).&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_98_2.jpg|thumb|400px|Рисунок 1. Tkinter – лучший способ сделать не так, как у других!]]&lt;br /&gt;
&lt;br /&gt;
Разобравшись с модулем, приступим сразу к серьёзной работе. В качестве примера выберем такую задачу: разработать графический интерфейс для просмотра man-страниц. Хорош он тем, что логика предельно проста, и нам почти не придётся отвлекаться от основной задачи. Итак, сразу код (по мере необходимости, будем прерывать его некоторыми пояснениями):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 #!/usr/bin/Python&lt;br /&gt;
 # -*- coding: utf-8 -*i&amp;lt;/nowiki&amp;gt;mport os, re&lt;br /&gt;
 from Tkinter import *&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь мы объявили кодировку нашей локали и подключили необходимые для работы модули (не забывайте следить за регистром символов). Далее опишем класс, который будет отвечать за работу нашего приложения. Использование объектного подхода позволит в дальнейшем, если потребуется, легко создавать модифицированные приложения на базе этого класса или интегрировать его функциональность в другие объекты:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 class ManReader:&lt;br /&gt;
   def getman(self, manpage, sn):&lt;br /&gt;
     bschar = '\b'&lt;br /&gt;
     tmp = os.popen('man %s %s 2&amp;gt;/dev/null' % (sn, manpage)).read()&lt;br /&gt;
     if tmp:&lt;br /&gt;
       tmp = re.sub(r’(.)%c\1’ % bschar, r’\1’, tmp)&lt;br /&gt;
       tmp = tmp.replace(‘_%c’ % bschar, ‘’)&lt;br /&gt;
     else:&lt;br /&gt;
       tmp = ‘Page “%s” in section “%s” not found’ % (manpage, sn or ‘Auto’)&lt;br /&gt;
     return tmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод с украинским именем '''getman()''' отвечает за то, чтобы вернуть запрошенную man-страницу в виде текстовой переменной. Для этого используем уже знакомую нам функцию '''popen()''' модуля '''os'''. Нужно учитывать, что man-страницы могут содержать специальное форматирование: подсветку и подчёркивание. Чтобы не усложнять наш пример, мы просто избавляемся от ненужных символов, оставляя чистый текст. Пожалуй, нужно пояснить, как мы это делаем.&lt;br /&gt;
&lt;br /&gt;
Если вы посмотрите на результат работы команды man в «натуральном» виде, например, сохранив его в файл, то заметите, что яркость создаётся следующим приёмом: символ выводится, стирается символом «'''\b'''» (Backspace) и затем снова выводится. Подчёркивание достигается выводом и последующим стиранием символа «_». То есть вы можете увидеть что-то такое: '''N\bNA\bAM\bME\bE = NAME,_\b/_\be_\bt_\bc = /etc'''. С удалением подчёркиваний всё понятно. А вот для удаления «символов яркости» мы используем регулярное выражение, причём на первый фрагмент, взятый в скобки, мы можем в дальнейшем ссылаться с помощью '''\1'''. То есть регулярное выражение «'''(.)!\1'''» означает два одинаковых символа, разделённых восклицательным знаком. Мы же используем символ '''\b'''. Обратите внимание, что его нельзя указывать непосредственно в регулярном выражении, иначе он будет трактоваться как граница слова. Вернёмся к нашим «виджетам»:&lt;br /&gt;
&lt;br /&gt;
 def pressBtn(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sn = sectno.get()[0]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 if sn == ‘-’: sn = ‘’&lt;br /&gt;
 tx.delete(1.0, END)&lt;br /&gt;
 tx.insert(1.0, self.getman(ent.get(), sn))&lt;br /&gt;
&lt;br /&gt;
Это – функция-обработчик нажатия на кнопку (которую мы пока не нарисовали). Ещё ничего не понятно, но мы вернёмся к ней чуть позже, а сейчас перейдем к самому важному методу нашего класса, собственно и рисующему рабочее окно. Разберём его подробнее:&lt;br /&gt;
&lt;br /&gt;
 def Drawface(self):&lt;br /&gt;
 global ent, tx, sectno&lt;br /&gt;
&lt;br /&gt;
Объявляем некоторые переменные как глобальные, чтобы мы могли обращаться к ним из других функций (в нашем примере – из '''pressBtn''').&lt;br /&gt;
&lt;br /&gt;
 win = Tk()&lt;br /&gt;
 win.title(‘Просмотрщик man-страниц’)&lt;br /&gt;
&lt;br /&gt;
Так мы создаём объект, который будет являться нашим рабочим окном. Заодно задаём ему заголовок.&lt;br /&gt;
&lt;br /&gt;
 sectno = StringVar()&lt;br /&gt;
 sectno.set(‘---Auto---’)&lt;br /&gt;
&lt;br /&gt;
В будущем нам понадобится эта переменная – она должна представлять собой особый объект, поэтому и создаём её как экземпляр класса '''Tkinter.StringVar()'''.&lt;br /&gt;
&lt;br /&gt;
 fcmd = Frame(win)&lt;br /&gt;
 fcmd.pack(side=TOP, fill=X)&lt;br /&gt;
&lt;br /&gt;
В основном окне создаём фрейм, который будет являться контейнером для элементов управления. Второй строчкой «упаковываем» его, т.е. указываем место расположения на главном окне. Параметры метода '''pack()''' означают: прикрепить элемент к верхнему краю (TOP) и растянуть по горизонтальной оси.&lt;br /&gt;
&lt;br /&gt;
Здесь нужно сказать, что '''pack''' – не единственный метод упаковки в T''kinter''. В ряде случаев удобнее использовать упаковку «по сетке» – '''grid''' (подробности можно узнать в документации). Приступаем к созданию графических элементов:&lt;br /&gt;
&lt;br /&gt;
 lbl1 = Label(fcmd, text=’Read about ‘)&lt;br /&gt;
 lbl1.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Это – обычная текстовая метка. Она размещается во фрейме (первый аргумент метода) и упакована по левому краю.&lt;br /&gt;
&lt;br /&gt;
 ent = Entry(fcmd)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ent.bind(‘&amp;lt;Return&amp;gt;’, (lambda event: self.pressBtn()))&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 ent.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Текстовое поле ввода также упаковываем слева, сразу после '''lbl1'''.&lt;br /&gt;
&lt;br /&gt;
Метод '''bind()''' &amp;lt;nowiki&amp;gt;задаёт реакцию поля на нажатие клавиши [Enter] (a.k.a. Return) – будет вызван метод &amp;lt;/nowiki&amp;gt;'''pressBtn().'''&lt;br /&gt;
&lt;br /&gt;
 lbl2 = Label(fcmd, text=’ in section ‘)&lt;br /&gt;
 lbl2.pack(side=LEFT)&lt;br /&gt;
 slt = OptionMenu(fcmd, sectno,&lt;br /&gt;
 ‘---Auto---’,&lt;br /&gt;
 ‘1 User Utilities’,&lt;br /&gt;
 ‘2 System Calls’,&lt;br /&gt;
 ‘3 Library Functions’,&lt;br /&gt;
 ‘4 Devices &amp;amp; Kernel Interfaces’,&lt;br /&gt;
 ‘5 File Formats’,&lt;br /&gt;
 ‘6 Games’,&lt;br /&gt;
 ‘7 Macros &amp;amp; SQL Commands’,&lt;br /&gt;
 ‘8 System Utilities’,&lt;br /&gt;
 ‘9 X Window’,&lt;br /&gt;
 ‘n Built-In commands’,&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 slt.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Ещё одна текстовая метка, и далее – выпадающий список. В нём мы перечисляем имеющиеся разделы справки, к которым будет относиться наш запрос.&lt;br /&gt;
&lt;br /&gt;
 btn1 = Button(fcmd, command=win.quit, text=’Quit’)&lt;br /&gt;
 btn1.pack(side=RIGHT)&lt;br /&gt;
 btn2 = Button(fcmd, command=self.pressBtn, text=’Open’)&lt;br /&gt;
 btn2.pack(side=RIGHT)&lt;br /&gt;
&lt;br /&gt;
Две кнопки – завершающая работу и отображающая запрошенную man-страницу. Обратите внимание, что здесь упаковка выполняется по правому краю, т.е. Quit будет самой правой, а Open – чуть левее. Важнейший параметр – command, задает функцию-обработчик. В первом случае используется встроенный метод '''quit''', завершающий работу, во втором – наш метод '''pressBtn'''. Обратите внимание, что здесь происходит не вызов метода, а даётся ссылка на него, т.е. имя указывается без скобок.&lt;br /&gt;
&lt;br /&gt;
 fview = Frame(win)&lt;br /&gt;
 fview.pack(side=BOTTOM, fill=BOTH, expand=YES)&lt;br /&gt;
 sb = Scrollbar(fview)&lt;br /&gt;
 tx = Text(fview, relief=SUNKEN)&lt;br /&gt;
 sb.config(command=tx.yview)&lt;br /&gt;
 tx.config(yscrollcommand=sb.set)&lt;br /&gt;
 sb.pack(side=RIGHT, fill=Y)&lt;br /&gt;
 tx.pack(side=TOP, expand=YES, fill=BOTH)&lt;br /&gt;
&lt;br /&gt;
Во втором фрейме, который мы прикрепляем к нижнему краю и растягиваем во все стороны, заполняя всё доступное пространство, размещается текстовое поле, где мы будем отображать содержимое man-страницы. Поскольку последняя может быть достаточно длинной, понадобится скроллинг (элемент Scrollbar). Обратите внимание на то, как методами '''config()''' мы обеспечиваем взаимную привязку текстового поля и полосы прокрутки. Параметр relief в описании текстового поля задаёт вид рамки вокруг поля.&lt;br /&gt;
&lt;br /&gt;
Настало время поговорить о '''pressBtn'''&amp;lt;nowiki&amp;gt;. Как вы видели, этот метод будет выполняться в двух случаях – по щелчку на кнопке Open и при нажатии [Enter] в поле ввода. Получив цифру раздела справки и очистив текущее содержимое поля &amp;lt;/nowiki&amp;gt;'''tx''' от начала ('''1,0''') до конца (END), вызываем метод '''getman()''' и вставляем результат в '''tx'''.&lt;br /&gt;
&lt;br /&gt;
 win.mainloop()&lt;br /&gt;
&lt;br /&gt;
Всё выше было просто подготовкой. А вот этой командой мы запускаем наше окно в работу. С этого момента управление передаётся ''Tkinterо''бъекту, и влиять на его поведение можно только с помощью описанных ранее обработчиков событий.&lt;br /&gt;
&lt;br /&gt;
 if __name__ == ‘__main__’:&lt;br /&gt;
 test = ManReader()&lt;br /&gt;
 test.Drawface()&lt;br /&gt;
&lt;br /&gt;
Ну, это должно быть понятно – если скрипт запускается автономно, а не экспортируется в другой, то создаём объект нашего класса и запускаем его в работу.&lt;br /&gt;
&lt;br /&gt;
Фух… Кажется, мы сделали это. Результат наших трудов можно наблюдать на рисунке (Рисунок 1). Как видите, «виджеты» имеют свой уникальный дизайн и будут резко выделяться на фоне остального интерфейса, внешний вид которого вы с такой любовью выбирали среди десятков различных стилей. Но это работает (причём одинаково) и в KDE, и в Gnome, и даже в Windows и Mac OS X.&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы разобрались с основами, самое время перейти к «родным» для Linux-окружения средствам – ''PyQt ''и ''PyGTK''. Прежде чем приступать к работе, проверьте, есть ли в вашей системе нужные модули.&lt;br /&gt;
&lt;br /&gt;
=== Пара слов про PyGTK ===&lt;br /&gt;
&lt;br /&gt;
Мощь библиотеки ''GTK ''позволяет создавать таких «гигантов графики», как ''Gimp''. Отрадно, что мы можем в значительной степени воспользоваться её возможностями и в сценариях ''Python''. В каталоге '''/usr/share/doc/pygtk&amp;lt;версия&amp;gt;/examples''' вы найдёте массу примеров её использования. Здесь приведём простейший вариант:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import gtk&lt;br /&gt;
&lt;br /&gt;
# Создаём основное окно&lt;br /&gt;
win = gtk.Window()&lt;br /&gt;
def main():&lt;br /&gt;
	&lt;br /&gt;
	# Задаём параметры окна (размер, заголовок и т.д.)&lt;br /&gt;
	win.set_default_size(300, 50)&lt;br /&gt;
	win.set_border_width(10)&lt;br /&gt;
	win.connect('destroy', gtk.main_quit)&lt;br /&gt;
	win.set_title('Небольшой пример') &lt;br /&gt;
	txtvar = 'Библиотека ''GTK ''привносит в ''Python ''небывалую мощь и высокий уровень интеграции в среду Gnome.' &lt;br /&gt;
	&lt;br /&gt;
	# Текстовая метка – не забывайте применять метод show() к каждому объекту, чтобы он был видимым&lt;br /&gt;
	txt = gtk.Label(txtvar)&lt;br /&gt;
	txt.show()&lt;br /&gt;
	# Кнопка. На неё «привязываем» завершение работы&lt;br /&gt;
	btn = gtk.Button('Закрыть')&lt;br /&gt;
	btn.connect('pressed', lambda button: gtk.main_quit())&lt;br /&gt;
	btn.show()&lt;br /&gt;
	# объект Window может содержать только один элемент, так что им будет HBox, &lt;br /&gt;
	# который служит контейнером для остальных&lt;br /&gt;
	box = gtk.HBox()&lt;br /&gt;
	box.pack_start(txt)&lt;br /&gt;
	box.pack_start(btn)&lt;br /&gt;
	win.add(box)&lt;br /&gt;
	box.show()&lt;br /&gt;
	win.show()&lt;br /&gt;
	&lt;br /&gt;
	gtk.main()&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат представлен на рисунке 2.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_98_1.jpg|left|thumb|400px|Рисунок 2. Именно так вы и должны представлять себе GTK-&lt;br /&gt;
приложение.]]&lt;br /&gt;
&lt;br /&gt;
=== Фанатам KDE посвящается ===&lt;br /&gt;
Если для вас Linux не мыслим без KDE, то ''PyQt ''– как раз тот инструмент, который способен обеспечить «бесшовную» интеграцию ваших ''Pythonс''ценариев с окружением рабочего стола. (Впрочем, ''Qt ''работает не только в Linux, так что ваши решения по-прежнему сохранят определённый уровень переносимости.) К тому же, для разработки интерфейса к вашим услугам ''Qt Designer''. А создадим мы программу для просмотра запущенных в системе процессов. Итак, в путь!&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_99_1.jpg|thumb|400px|Рисунок 3. Мышкой влево, мышкой вправо – а зачем вам&lt;br /&gt;
вообще клавиатура?]]&lt;br /&gt;
&lt;br /&gt;
=== Делай «РАЗ»! ===&lt;br /&gt;
Первым делом, запустите Qt Designer и откройте новый проект типа Widget. Для кнопки создайте соединение с формой (Connect Signal/ Slots) и объявите новый слот, назвав его showPs. В дальнейшем это будет наш обработчик нажатия кнопки. Сохранив интерфейс (Рисунок 3) под именем psview.ui, нужно конвертировать его в ''Python''-код:&lt;br /&gt;
&lt;br /&gt;
 $ pyuic psview.ui &amp;gt; psview.py&lt;br /&gt;
&lt;br /&gt;
Теперь в '''psview.py''' описан класс, отвечающий за наш интерфейс. Если вы посмотрите на него, то увидите, что всё не намного сложнее, чем в ''Tkinter'', так что при желании интерфейс можно создать и вручную.&lt;br /&gt;
&lt;br /&gt;
=== Делай «ДВА»! ===&lt;br /&gt;
Далее, нам нужно довести всё это до ума. Непосредственное редактирование созданного сценария – самое плохое решение, поскольку вы лишитесь возможности корректировать интерфейс в ''Qt Designer'', т.к. все изменения при этом будут потеряны. Поэтому правильно будет оставить psview.py в неприкосновенном виде, а для работы описать ещё один класс на базе созданного, пользуясь возможностями наследования. Просто создать экземпляр класса Form1 тоже не совсем хорошо – ведь нам нужно будет изменить поведение класса, отредактировав обработчик нажатия кнопки. Полученный код с переопределённой функциейобработчиком будет выглядеть так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/Python&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# -*- coding: utf-8 -*import os, sys&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Импортируем модуль, созданный автоматически&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 from psview import *&lt;br /&gt;
 class PsForm(Form1): # наследуем от Form1&lt;br /&gt;
 def __init__(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Помните, что при наследовании инициализацию&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- родительского класса нужно делать вручную?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Form1.__init__(self)&lt;br /&gt;
 def showPs(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Формируем нужные ключи команды ps&lt;br /&gt;
 if self.radioButton1.isChecked():&lt;br /&gt;
 all = ‘a’&lt;br /&gt;
 else:&lt;br /&gt;
 all = ‘’&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Выводимые поля описываются после ключа «o»&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- Очень важно не допускать пробелов!&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 fields = ‘o’&lt;br /&gt;
 if self.checkBox1.isChecked():&lt;br /&gt;
 fields += ‘pid,’&lt;br /&gt;
 if self.checkBox2.isChecked():&lt;br /&gt;
 fields += ‘user,’&lt;br /&gt;
 if self.checkBox3.isChecked():&lt;br /&gt;
 fields += ‘stat,’&lt;br /&gt;
 if self.checkBox4.isChecked():&lt;br /&gt;
 fields += ‘command,’&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;fields = fields[:-1] # &amp;lt;/nowiki&amp;gt;последнюю запятую – долой!&lt;br /&gt;
 filter = self.lineEdit1.text()&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Если есть фильтр, то заголовок придётся забирать&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- отдельной командой (head – чтобы не выводить лишнее)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 if filter:&lt;br /&gt;
 cmd = ‘ps %sx%s | grep %s | grep -v grep’ % (all, fields,&lt;br /&gt;
 filter)&lt;br /&gt;
 head = os.popen(‘ps %s | head’ % fields).readline()&lt;br /&gt;
 body = os.popen(cmd).read()&lt;br /&gt;
 else:&lt;br /&gt;
 cmd = ‘ps %sx%s’ % (all, fields)&lt;br /&gt;
 pspipe = os.popen(cmd)&lt;br /&gt;
 head = pspipe.readline() # первая строка&lt;br /&gt;
 body = pspipe.read() # всё остальное&lt;br /&gt;
 pspipe.close()&lt;br /&gt;
 self.tl_header.setText(head)&lt;br /&gt;
 self.te_body.setText(body)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Создаём объект-приложение&lt;br /&gt;
 app = QApplication(sys.argv)&lt;br /&gt;
 form = PsForm()&lt;br /&gt;
 app.setMainWidget(form)&lt;br /&gt;
 form.show()&lt;br /&gt;
 app.exec_loop()&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_99_2.jpg|thumb|400px|Рисунок 4. Ну, нравится мне стиль Redmond – ничего с собой&lt;br /&gt;
поделать не могу…]]&lt;br /&gt;
&lt;br /&gt;
Небольшое пояснение: чтобы при прокрутке заголовок был всегда на виду, мы вынесли его в отдельную текстовую метку '''(tl_header)'''. Поскольку при использовании ''grep ''заголовок теряется, придётся приложить чуточку усилий, чтобы всё-таки обеспечить его вывод (см. фрагмент «'''if filter – else'''»).&lt;br /&gt;
&lt;br /&gt;
=== Делай «ТРИ»! ===&lt;br /&gt;
&lt;br /&gt;
Всё! Можно запускать нашу оболочку, не забыв сделать скрипт исполняемым (Рисунок 4). Конечно, это не верх совершенства – из множества доступных полей поддерживаются только четыре, нет проверки выражения фильтра на безопасность (а что, если пользователь введёт '''«root; rm -Rf /»'''?). Впрочем, это беда любого графического интерфейса – неизбежная потеря функциональности и гибкости в угоду сомнительным удобствам. Тем не менее, наша задача была всё-таки в другом – показать пример разработки ГИП, с чем мы успешно справились.&lt;br /&gt;
&lt;br /&gt;
Как видите, изложенное сегодня – всего лишь основа. Но, надеюсь, этого будет достаточно, чтобы приступить к быстрой и эффективной разработке графических интерфейсов. На этом мы завершаем «Уроки P''ython''», но не прощаемся – со следующего номера начинается серия «''Python ''для профессионалов», где мы поговорим о многопоточных приложениях, обработке сетевых протоколов, взаимодействии с СУБД и библиотеке ''Python Image Library''.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%91%D0%BE%D0%B8_%D0%B7%D0%B0_%D0%90%D0%B2%D0%B4%D0%B5%D0%B5%D0%B2%D0%BA%D1%83_2023</id>
		<title>Бои за Авдеевку 2023</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%91%D0%BE%D0%B8_%D0%B7%D0%B0_%D0%90%D0%B2%D0%B4%D0%B5%D0%B5%D0%B2%D0%BA%D1%83_2023"/>
				<updated>2008-04-24T12:59:30Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Пара слов про PyGTK */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{цикл/Python}}&lt;br /&gt;
УЧЕБНИК ''Python''&lt;br /&gt;
&lt;br /&gt;
ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ&lt;br /&gt;
&lt;br /&gt;
== Уроки Python ==&lt;br /&gt;
'''ЧАСТЬ 6 '''&lt;br /&gt;
&lt;br /&gt;
''Теперь, когда мы научились обрабатывать строки, самое время показать наше умение другим. Но кто будет смотреть сценарий «без лица», пусть даже в Konsole с красивым прозрачным фоном? Для тех, кто не Квентин Тарантино, '''Сергей Супрунов '''покажет, как создаются на ''Python ''графические интерфейсы.''&lt;br /&gt;
&lt;br /&gt;
Чем больше работаешь с ''Python'', тем сильнее ощущаешь его мощь и гибкость. Порой кажется, что для этого языка нет ничего невозможного. Это же можно отнести и к разработке графического интерфейса пользователя (хотя здесь ''Python ''просто использует возможности мощных библиотек). Как вы увидите, ''Python и в'' этом вопросе сохраняет простоту и эффективность, становясь весьма удобным инструментом для решения таких задач, как создание «обёрток» к различным консольным утилитам, разработка графических конфигураторов для ваших любимых инструментов, проектирование прототипов программ (куда проще за пару дней согласовать с заказчиком все «интерфейсные» моменты разрабатываемого проекта, меняя внешний вид прямо на переговорах, чем спустя месяцы напряжённой работы переделывать многомегабайтный проект на C++, только лишь потому, что заказчик счёл интерфейс слишком сложным для освоения), и т.д. Кстати, инсталлятор Gentoo, появившийся в версии 2006.0 и наделавший столько шума, тоже написан на ''Python''.&lt;br /&gt;
&lt;br /&gt;
Для ''Python ''разработано множество инструментов, отличающихся по гибкости, сложности, степени интеграции с вашим окружением. В рамках одного урока сложно рассмотреть всё это многообразие даже в общих чертах. Поэтому мы ограничимся кратким знакомством с модулем ''Tkinter ''и «привязками» ''PyQt ''и ''PyGTK''.&lt;br /&gt;
&lt;br /&gt;
Есть ещё достаточно мощный и переносимый модуль wx''Python, я''вляющийся привязкой к графической библиотеке wxWidgets, который тоже заслуживает внимания, но думаю, вы сможете разобраться с ним самостоятельно.&lt;br /&gt;
&lt;br /&gt;
Начнём со старого доброго ''Tkinter'', который, несмотря на некоторую «неказистость» и плохую интеграцию с системой, всё же остаётся стандартным модулем, входящим в поставку практически всех дистрибутивов. К тому же его простота – идеальная особенность для учебных целей. А разобравшись с ним, вы без труда освоите и другие инструменты.&lt;br /&gt;
&lt;br /&gt;
=== Очарование простоты ===&lt;br /&gt;
Проверить наличие ''Tkinter ''в вашем дистрибутиве достаточно просто (он должен быть, но всякое случается): запустите ''Python ''и выполните команду import ''Tkinter ''(обратите внимание на заглавную первую букву). Если вам не повезло и вы увидели сообщение об ошибке, придётся установить этот модуль отдельно. Проконсультируйтесь с вашим менеджером пакетов, не знает ли он случайно про ''Tkinter ''(имя пакета, в отличие от модуля, обычно записывается только маленькими буквами). Если он окажется из партизанской семьи, то прямая дорога вам на '''www.Python.org '''(который с новым дизайном смотрится очень даже приятно).&lt;br /&gt;
&lt;br /&gt;
Разобравшись с модулем, приступим сразу к серьёзной работе. В качестве примера выберем такую задачу: разработать графический интерфейс для просмотра man-страниц. Хорош он тем, что логика предельно проста, и нам почти не придётся отвлекаться от основной задачи. Итак, сразу код (по мере необходимости, будем прерывать его некоторыми пояснениями):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/Python&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# -*- coding: utf-8 -*i&amp;lt;/nowiki&amp;gt;mport os, re&lt;br /&gt;
 from Tkinter import *&lt;br /&gt;
&lt;br /&gt;
Здесь мы объявили кодировку нашей локали и подключили необходимые для работы модули (не забывайте следить за регистром символов). Далее опишем класс, который будет отвечать за работу нашего приложения. Использование объектного подхода позволит в дальнейшем, если потребуется, легко создавать модифицированные приложения на базе этого класса или интегрировать его функциональность в другие объекты:&lt;br /&gt;
&lt;br /&gt;
 class ManReader:&lt;br /&gt;
 def getman(self, manpage, sn):&lt;br /&gt;
 bschar = ‘\b’&lt;br /&gt;
 tmp = os.popen(‘man %s %s 2&amp;gt;/dev/null’ % (sn, manpage)).&lt;br /&gt;
 read()&lt;br /&gt;
 if tmp:&lt;br /&gt;
 tmp = re.sub(r’(.)%c\1’ % bschar, r’\1’, tmp)&lt;br /&gt;
 tmp = tmp.replace(‘_%c’ % bschar, ‘’)&lt;br /&gt;
 else:&lt;br /&gt;
 tmp = ‘Page “%s” in section “%s” not found’ % \&lt;br /&gt;
 (manpage, sn or ‘Auto’)&lt;br /&gt;
 return tmp&lt;br /&gt;
&lt;br /&gt;
Метод с украинским именем '''getman()''' отвечает за то, чтобы вернуть запрошенную man-страницу в виде текстовой переменной. Для этого используем уже знакомую нам функцию '''popen()''' модуля '''os'''. Нужно учитывать, что man-страницы могут содержать специальное форматирование: подсветку и подчёркивание. Чтобы не усложнять наш пример, мы просто избавляемся от ненужных символов, оставляя чистый текст. Пожалуй, нужно пояснить, как мы это делаем.&lt;br /&gt;
&lt;br /&gt;
Если вы посмотрите на результат работы команды man в «натуральном» виде, например, сохранив его в файл, то заметите, что яркость создаётся следующим приёмом: символ выводится, стирается символом «'''\b'''» (Backspace) и затем снова выводится. Подчёркивание достигается выводом и последующим стиранием символа «_». То есть вы можете увидеть что-то такое: '''N\bNA\bAM\bME\bE = NAME,_\b/_\be_\bt_\bc = /etc'''. С удалением подчёркиваний всё понятно. А вот для удаления «символов яркости» мы используем регулярное выражение, причём на первый фрагмент, взятый в скобки, мы можем в дальнейшем ссылаться с помощью '''\1'''. То есть регулярное выражение «'''(.)!\1'''» означает два одинаковых символа, разделённых восклицательным знаком. Мы же используем символ '''\b'''. Обратите внимание, что его нельзя указывать непосредственно в регулярном выражении, иначе он будет трактоваться как граница слова. Вернёмся к нашим «виджетам»:&lt;br /&gt;
&lt;br /&gt;
 def pressBtn(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sn = sectno.get()[0]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 if sn == ‘-’: sn = ‘’&lt;br /&gt;
 tx.delete(1.0, END)&lt;br /&gt;
 tx.insert(1.0, self.getman(ent.get(), sn))&lt;br /&gt;
&lt;br /&gt;
Это – функция-обработчик нажатия на кнопку (которую мы пока не нарисовали). Ещё ничего не понятно, но мы вернёмся к ней чуть позже, а сейчас перейдем к самому важному методу нашего класса, собственно и рисующему рабочее окно. Разберём его подробнее:&lt;br /&gt;
&lt;br /&gt;
 def Drawface(self):&lt;br /&gt;
 global ent, tx, sectno&lt;br /&gt;
&lt;br /&gt;
Объявляем некоторые переменные как глобальные, чтобы мы могли обращаться к ним из других функций (в нашем примере – из '''pressBtn''').&lt;br /&gt;
&lt;br /&gt;
 win = Tk()&lt;br /&gt;
 win.title(‘Просмотрщик man-страниц’)&lt;br /&gt;
&lt;br /&gt;
Так мы создаём объект, который будет являться нашим рабочим окном. Заодно задаём ему заголовок.&lt;br /&gt;
&lt;br /&gt;
 sectno = StringVar()&lt;br /&gt;
 sectno.set(‘---Auto---’)&lt;br /&gt;
&lt;br /&gt;
В будущем нам понадобится эта переменная – она должна представлять собой особый объект, поэтому и создаём её как экземпляр класса '''Tkinter.StringVar()'''.&lt;br /&gt;
&lt;br /&gt;
 fcmd = Frame(win)&lt;br /&gt;
 fcmd.pack(side=TOP, fill=X)&lt;br /&gt;
&lt;br /&gt;
В основном окне создаём фрейм, который будет являться контейнером для элементов управления. Второй строчкой «упаковываем» его, т.е. указываем место расположения на главном окне. Параметры метода '''pack()''' означают: прикрепить элемент к верхнему краю (TOP) и растянуть по горизонтальной оси.&lt;br /&gt;
&lt;br /&gt;
Здесь нужно сказать, что '''pack''' – не единственный метод упаковки в T''kinter''. В ряде случаев удобнее использовать упаковку «по сетке» – '''grid''' (подробности можно узнать в документации). Приступаем к созданию графических элементов:&lt;br /&gt;
&lt;br /&gt;
 lbl1 = Label(fcmd, text=’Read about ‘)&lt;br /&gt;
 lbl1.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Это – обычная текстовая метка. Она размещается во фрейме (первый аргумент метода) и упакована по левому краю.&lt;br /&gt;
&lt;br /&gt;
 ent = Entry(fcmd)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ent.bind(‘&amp;lt;Return&amp;gt;’, (lambda event: self.pressBtn()))&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 ent.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Текстовое поле ввода также упаковываем слева, сразу после '''lbl1'''.&lt;br /&gt;
&lt;br /&gt;
Метод '''bind()''' &amp;lt;nowiki&amp;gt;задаёт реакцию поля на нажатие клавиши [Enter] (a.k.a. Return) – будет вызван метод &amp;lt;/nowiki&amp;gt;'''pressBtn().'''&lt;br /&gt;
&lt;br /&gt;
 lbl2 = Label(fcmd, text=’ in section ‘)&lt;br /&gt;
 lbl2.pack(side=LEFT)&lt;br /&gt;
 slt = OptionMenu(fcmd, sectno,&lt;br /&gt;
 ‘---Auto---’,&lt;br /&gt;
 ‘1 User Utilities’,&lt;br /&gt;
 ‘2 System Calls’,&lt;br /&gt;
 ‘3 Library Functions’,&lt;br /&gt;
 ‘4 Devices &amp;amp; Kernel Interfaces’,&lt;br /&gt;
 ‘5 File Formats’,&lt;br /&gt;
 ‘6 Games’,&lt;br /&gt;
 ‘7 Macros &amp;amp; SQL Commands’,&lt;br /&gt;
 ‘8 System Utilities’,&lt;br /&gt;
 ‘9 X Window’,&lt;br /&gt;
 ‘n Built-In commands’,&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 slt.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Ещё одна текстовая метка, и далее – выпадающий список. В нём мы перечисляем имеющиеся разделы справки, к которым будет относиться наш запрос.&lt;br /&gt;
&lt;br /&gt;
 btn1 = Button(fcmd, command=win.quit, text=’Quit’)&lt;br /&gt;
 btn1.pack(side=RIGHT)&lt;br /&gt;
 btn2 = Button(fcmd, command=self.pressBtn, text=’Open’)&lt;br /&gt;
 btn2.pack(side=RIGHT)&lt;br /&gt;
&lt;br /&gt;
Две кнопки – завершающая работу и отображающая запрошенную man-страницу. Обратите внимание, что здесь упаковка выполняется по правому краю, т.е. Quit будет самой правой, а Open – чуть левее. Важнейший параметр – command, задает функцию-обработчик. В первом случае используется встроенный метод '''quit''', завершающий работу, во втором – наш метод '''pressBtn'''. Обратите внимание, что здесь происходит не вызов метода, а даётся ссылка на него, т.е. имя указывается без скобок.&lt;br /&gt;
&lt;br /&gt;
 fview = Frame(win)&lt;br /&gt;
 fview.pack(side=BOTTOM, fill=BOTH, expand=YES)&lt;br /&gt;
 sb = Scrollbar(fview)&lt;br /&gt;
 tx = Text(fview, relief=SUNKEN)&lt;br /&gt;
 sb.config(command=tx.yview)&lt;br /&gt;
 tx.config(yscrollcommand=sb.set)&lt;br /&gt;
 sb.pack(side=RIGHT, fill=Y)&lt;br /&gt;
 tx.pack(side=TOP, expand=YES, fill=BOTH)&lt;br /&gt;
&lt;br /&gt;
Во втором фрейме, который мы прикрепляем к нижнему краю и растягиваем во все стороны, заполняя всё доступное пространство, размещается текстовое поле, где мы будем отображать содержимое man-страницы. Поскольку последняя может быть достаточно длинной, понадобится скроллинг (элемент Scrollbar). Обратите внимание на то, как методами '''config()''' мы обеспечиваем взаимную привязку текстового поля и полосы прокрутки. Параметр relief в описании текстового поля задаёт вид рамки вокруг поля.&lt;br /&gt;
&lt;br /&gt;
Настало время поговорить о '''pressBtn'''&amp;lt;nowiki&amp;gt;. Как вы видели, этот метод будет выполняться в двух случаях – по щелчку на кнопке Open и при нажатии [Enter] в поле ввода. Получив цифру раздела справки и очистив текущее содержимое поля &amp;lt;/nowiki&amp;gt;'''tx''' от начала ('''1,0''') до конца (END), вызываем метод '''getman()''' и вставляем результат в '''tx'''.&lt;br /&gt;
&lt;br /&gt;
 win.mainloop()&lt;br /&gt;
&lt;br /&gt;
Всё выше было просто подготовкой. А вот этой командой мы запускаем наше окно в работу. С этого момента управление передаётся ''Tkinterо''бъекту, и влиять на его поведение можно только с помощью описанных ранее обработчиков событий.&lt;br /&gt;
&lt;br /&gt;
 if __name__ == ‘__main__’:&lt;br /&gt;
 test = ManReader()&lt;br /&gt;
 test.Drawface()&lt;br /&gt;
&lt;br /&gt;
Ну, это должно быть понятно – если скрипт запускается автономно, а не экспортируется в другой, то создаём объект нашего класса и запускаем его в работу.&lt;br /&gt;
&lt;br /&gt;
Фух… Кажется, мы сделали это. Результат наших трудов можно наблюдать на рисунке (Рисунок 1). Как видите, «виджеты» имеют свой уникальный дизайн и будут резко выделяться на фоне остального интерфейса, внешний вид которого вы с такой любовью выбирали среди десятков различных стилей. Но это работает (причём одинаково) и в KDE, и в Gnome, и даже в Windows и Mac OS X.&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы разобрались с основами, самое время перейти к «родным» для Linux-окружения средствам – ''PyQt ''и ''PyGTK''. Прежде чем приступать к работе, проверьте, есть ли в вашей системе нужные модули.&lt;br /&gt;
&lt;br /&gt;
=== Пара слов про PyGTK ===&lt;br /&gt;
&lt;br /&gt;
Мощь библиотеки ''GTK ''позволяет создавать таких «гигантов графики», как ''Gimp''. Отрадно, что мы можем в значительной степени воспользоваться её возможностями и в сценариях ''Python''. В каталоге '''/usr/share/doc/pygtk&amp;lt;версия&amp;gt;/examples''' вы найдёте массу примеров её использования. Здесь приведём простейший вариант:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import gtk&lt;br /&gt;
&lt;br /&gt;
# Создаём основное окно&lt;br /&gt;
win = gtk.Window()&lt;br /&gt;
def main():&lt;br /&gt;
	&lt;br /&gt;
	# Задаём параметры окна (размер, заголовок и т.д.)&lt;br /&gt;
	win.set_default_size(300, 50)&lt;br /&gt;
	win.set_border_width(10)&lt;br /&gt;
	win.connect('destroy', gtk.main_quit)&lt;br /&gt;
	win.set_title('Небольшой пример') &lt;br /&gt;
	txtvar = 'Библиотека ''GTK ''привносит в ''Python ''небывалую мощь и высокий уровень интеграции в среду Gnome.' &lt;br /&gt;
	&lt;br /&gt;
	# Текстовая метка – не забывайте применять метод show() к каждому объекту, чтобы он был видимым&lt;br /&gt;
	txt = gtk.Label(txtvar)&lt;br /&gt;
	txt.show()&lt;br /&gt;
	# Кнопка. На неё «привязываем» завершение работы&lt;br /&gt;
	btn = gtk.Button('Закрыть')&lt;br /&gt;
	btn.connect('pressed', lambda button: gtk.main_quit())&lt;br /&gt;
	btn.show()&lt;br /&gt;
	# объект Window может содержать только один элемент, так что им будет HBox, &lt;br /&gt;
	# который служит контейнером для остальных&lt;br /&gt;
	box = gtk.HBox()&lt;br /&gt;
	box.pack_start(txt)&lt;br /&gt;
	box.pack_start(btn)&lt;br /&gt;
	win.add(box)&lt;br /&gt;
	box.show()&lt;br /&gt;
	win.show()&lt;br /&gt;
	&lt;br /&gt;
	gtk.main()&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат представлен на рисунке 2.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_98_1.jpg|left|thumb|400px|Рисунок 2. Именно так вы и должны представлять себе GTK-&lt;br /&gt;
приложение.]]&lt;br /&gt;
&lt;br /&gt;
=== Фанатам KDE посвящается ===&lt;br /&gt;
Если для вас Linux не мыслим без KDE, то ''PyQt ''– как раз тот инструмент, который способен обеспечить «бесшовную» интеграцию ваших ''Pythonс''ценариев с окружением рабочего стола. (Впрочем, ''Qt ''работает не только в Linux, так что ваши решения по-прежнему сохранят определённый уровень переносимости.) К тому же, для разработки интерфейса к вашим услугам ''Qt Designer''. А создадим мы программу для просмотра запущенных в системе процессов. Итак, в путь!&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_99_1.jpg|thumb|400px|Рисунок 3. Мышкой влево, мышкой вправо – а зачем вам&lt;br /&gt;
вообще клавиатура?]]&lt;br /&gt;
&lt;br /&gt;
=== Делай «РАЗ»! ===&lt;br /&gt;
Первым делом, запустите Qt Designer и откройте новый проект типа Widget. Для кнопки создайте соединение с формой (Connect Signal/ Slots) и объявите новый слот, назвав его showPs. В дальнейшем это будет наш обработчик нажатия кнопки. Сохранив интерфейс (Рисунок 3) под именем psview.ui, нужно конвертировать его в ''Python''-код:&lt;br /&gt;
&lt;br /&gt;
 $ pyuic psview.ui &amp;gt; psview.py&lt;br /&gt;
&lt;br /&gt;
Теперь в '''psview.py''' описан класс, отвечающий за наш интерфейс. Если вы посмотрите на него, то увидите, что всё не намного сложнее, чем в ''Tkinter'', так что при желании интерфейс можно создать и вручную.&lt;br /&gt;
&lt;br /&gt;
=== Делай «ДВА»! ===&lt;br /&gt;
Далее, нам нужно довести всё это до ума. Непосредственное редактирование созданного сценария – самое плохое решение, поскольку вы лишитесь возможности корректировать интерфейс в ''Qt Designer'', т.к. все изменения при этом будут потеряны. Поэтому правильно будет оставить psview.py в неприкосновенном виде, а для работы описать ещё один класс на базе созданного, пользуясь возможностями наследования. Просто создать экземпляр класса Form1 тоже не совсем хорошо – ведь нам нужно будет изменить поведение класса, отредактировав обработчик нажатия кнопки. Полученный код с переопределённой функциейобработчиком будет выглядеть так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/Python&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# -*- coding: utf-8 -*import os, sys&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Импортируем модуль, созданный автоматически&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 from psview import *&lt;br /&gt;
 class PsForm(Form1): # наследуем от Form1&lt;br /&gt;
 def __init__(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Помните, что при наследовании инициализацию&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- родительского класса нужно делать вручную?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Form1.__init__(self)&lt;br /&gt;
 def showPs(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Формируем нужные ключи команды ps&lt;br /&gt;
 if self.radioButton1.isChecked():&lt;br /&gt;
 all = ‘a’&lt;br /&gt;
 else:&lt;br /&gt;
 all = ‘’&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Выводимые поля описываются после ключа «o»&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- Очень важно не допускать пробелов!&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 fields = ‘o’&lt;br /&gt;
 if self.checkBox1.isChecked():&lt;br /&gt;
 fields += ‘pid,’&lt;br /&gt;
 if self.checkBox2.isChecked():&lt;br /&gt;
 fields += ‘user,’&lt;br /&gt;
 if self.checkBox3.isChecked():&lt;br /&gt;
 fields += ‘stat,’&lt;br /&gt;
 if self.checkBox4.isChecked():&lt;br /&gt;
 fields += ‘command,’&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;fields = fields[:-1] # &amp;lt;/nowiki&amp;gt;последнюю запятую – долой!&lt;br /&gt;
 filter = self.lineEdit1.text()&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Если есть фильтр, то заголовок придётся забирать&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- отдельной командой (head – чтобы не выводить лишнее)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 if filter:&lt;br /&gt;
 cmd = ‘ps %sx%s | grep %s | grep -v grep’ % (all, fields,&lt;br /&gt;
 filter)&lt;br /&gt;
 head = os.popen(‘ps %s | head’ % fields).readline()&lt;br /&gt;
 body = os.popen(cmd).read()&lt;br /&gt;
 else:&lt;br /&gt;
 cmd = ‘ps %sx%s’ % (all, fields)&lt;br /&gt;
 pspipe = os.popen(cmd)&lt;br /&gt;
 head = pspipe.readline() # первая строка&lt;br /&gt;
 body = pspipe.read() # всё остальное&lt;br /&gt;
 pspipe.close()&lt;br /&gt;
 self.tl_header.setText(head)&lt;br /&gt;
 self.te_body.setText(body)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Создаём объект-приложение&lt;br /&gt;
 app = QApplication(sys.argv)&lt;br /&gt;
 form = PsForm()&lt;br /&gt;
 app.setMainWidget(form)&lt;br /&gt;
 form.show()&lt;br /&gt;
 app.exec_loop()&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_99_2.jpg|thumb|400px|Рисунок 4. Ну, нравится мне стиль Redmond – ничего с собой&lt;br /&gt;
поделать не могу…]]&lt;br /&gt;
&lt;br /&gt;
Небольшое пояснение: чтобы при прокрутке заголовок был всегда на виду, мы вынесли его в отдельную текстовую метку '''(tl_header)'''. Поскольку при использовании ''grep ''заголовок теряется, придётся приложить чуточку усилий, чтобы всё-таки обеспечить его вывод (см. фрагмент «'''if filter – else'''»).&lt;br /&gt;
&lt;br /&gt;
=== Делай «ТРИ»! ===&lt;br /&gt;
&lt;br /&gt;
Всё! Можно запускать нашу оболочку, не забыв сделать скрипт исполняемым (Рисунок 4). Конечно, это не верх совершенства – из множества доступных полей поддерживаются только четыре, нет проверки выражения фильтра на безопасность (а что, если пользователь введёт '''«root; rm -Rf /»'''?). Впрочем, это беда любого графического интерфейса – неизбежная потеря функциональности и гибкости в угоду сомнительным удобствам. Тем не менее, наша задача была всё-таки в другом – показать пример разработки ГИП, с чем мы успешно справились.&lt;br /&gt;
&lt;br /&gt;
Как видите, изложенное сегодня – всего лишь основа. Но, надеюсь, этого будет достаточно, чтобы приступить к быстрой и эффективной разработке графических интерфейсов. На этом мы завершаем «Уроки P''ython''», но не прощаемся – со следующего номера начинается серия «''Python ''для профессионалов», где мы поговорим о многопоточных приложениях, обработке сетевых протоколов, взаимодействии с СУБД и библиотеке ''Python Image Library''.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%91%D0%BE%D0%B8_%D0%B7%D0%B0_%D0%90%D0%B2%D0%B4%D0%B5%D0%B5%D0%B2%D0%BA%D1%83_2023</id>
		<title>Бои за Авдеевку 2023</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%91%D0%BE%D0%B8_%D0%B7%D0%B0_%D0%90%D0%B2%D0%B4%D0%B5%D0%B5%D0%B2%D0%BA%D1%83_2023"/>
				<updated>2008-04-24T12:58:41Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: полностью поменял форматирование кода т.к. не работал&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{цикл/Python}}&lt;br /&gt;
УЧЕБНИК ''Python''&lt;br /&gt;
&lt;br /&gt;
ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ&lt;br /&gt;
&lt;br /&gt;
== Уроки Python ==&lt;br /&gt;
'''ЧАСТЬ 6 '''&lt;br /&gt;
&lt;br /&gt;
''Теперь, когда мы научились обрабатывать строки, самое время показать наше умение другим. Но кто будет смотреть сценарий «без лица», пусть даже в Konsole с красивым прозрачным фоном? Для тех, кто не Квентин Тарантино, '''Сергей Супрунов '''покажет, как создаются на ''Python ''графические интерфейсы.''&lt;br /&gt;
&lt;br /&gt;
Чем больше работаешь с ''Python'', тем сильнее ощущаешь его мощь и гибкость. Порой кажется, что для этого языка нет ничего невозможного. Это же можно отнести и к разработке графического интерфейса пользователя (хотя здесь ''Python ''просто использует возможности мощных библиотек). Как вы увидите, ''Python и в'' этом вопросе сохраняет простоту и эффективность, становясь весьма удобным инструментом для решения таких задач, как создание «обёрток» к различным консольным утилитам, разработка графических конфигураторов для ваших любимых инструментов, проектирование прототипов программ (куда проще за пару дней согласовать с заказчиком все «интерфейсные» моменты разрабатываемого проекта, меняя внешний вид прямо на переговорах, чем спустя месяцы напряжённой работы переделывать многомегабайтный проект на C++, только лишь потому, что заказчик счёл интерфейс слишком сложным для освоения), и т.д. Кстати, инсталлятор Gentoo, появившийся в версии 2006.0 и наделавший столько шума, тоже написан на ''Python''.&lt;br /&gt;
&lt;br /&gt;
Для ''Python ''разработано множество инструментов, отличающихся по гибкости, сложности, степени интеграции с вашим окружением. В рамках одного урока сложно рассмотреть всё это многообразие даже в общих чертах. Поэтому мы ограничимся кратким знакомством с модулем ''Tkinter ''и «привязками» ''PyQt ''и ''PyGTK''.&lt;br /&gt;
&lt;br /&gt;
Есть ещё достаточно мощный и переносимый модуль wx''Python, я''вляющийся привязкой к графической библиотеке wxWidgets, который тоже заслуживает внимания, но думаю, вы сможете разобраться с ним самостоятельно.&lt;br /&gt;
&lt;br /&gt;
Начнём со старого доброго ''Tkinter'', который, несмотря на некоторую «неказистость» и плохую интеграцию с системой, всё же остаётся стандартным модулем, входящим в поставку практически всех дистрибутивов. К тому же его простота – идеальная особенность для учебных целей. А разобравшись с ним, вы без труда освоите и другие инструменты.&lt;br /&gt;
&lt;br /&gt;
=== Очарование простоты ===&lt;br /&gt;
Проверить наличие ''Tkinter ''в вашем дистрибутиве достаточно просто (он должен быть, но всякое случается): запустите ''Python ''и выполните команду import ''Tkinter ''(обратите внимание на заглавную первую букву). Если вам не повезло и вы увидели сообщение об ошибке, придётся установить этот модуль отдельно. Проконсультируйтесь с вашим менеджером пакетов, не знает ли он случайно про ''Tkinter ''(имя пакета, в отличие от модуля, обычно записывается только маленькими буквами). Если он окажется из партизанской семьи, то прямая дорога вам на '''www.Python.org '''(который с новым дизайном смотрится очень даже приятно).&lt;br /&gt;
&lt;br /&gt;
Разобравшись с модулем, приступим сразу к серьёзной работе. В качестве примера выберем такую задачу: разработать графический интерфейс для просмотра man-страниц. Хорош он тем, что логика предельно проста, и нам почти не придётся отвлекаться от основной задачи. Итак, сразу код (по мере необходимости, будем прерывать его некоторыми пояснениями):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/Python&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# -*- coding: utf-8 -*i&amp;lt;/nowiki&amp;gt;mport os, re&lt;br /&gt;
 from Tkinter import *&lt;br /&gt;
&lt;br /&gt;
Здесь мы объявили кодировку нашей локали и подключили необходимые для работы модули (не забывайте следить за регистром символов). Далее опишем класс, который будет отвечать за работу нашего приложения. Использование объектного подхода позволит в дальнейшем, если потребуется, легко создавать модифицированные приложения на базе этого класса или интегрировать его функциональность в другие объекты:&lt;br /&gt;
&lt;br /&gt;
 class ManReader:&lt;br /&gt;
 def getman(self, manpage, sn):&lt;br /&gt;
 bschar = ‘\b’&lt;br /&gt;
 tmp = os.popen(‘man %s %s 2&amp;gt;/dev/null’ % (sn, manpage)).&lt;br /&gt;
 read()&lt;br /&gt;
 if tmp:&lt;br /&gt;
 tmp = re.sub(r’(.)%c\1’ % bschar, r’\1’, tmp)&lt;br /&gt;
 tmp = tmp.replace(‘_%c’ % bschar, ‘’)&lt;br /&gt;
 else:&lt;br /&gt;
 tmp = ‘Page “%s” in section “%s” not found’ % \&lt;br /&gt;
 (manpage, sn or ‘Auto’)&lt;br /&gt;
 return tmp&lt;br /&gt;
&lt;br /&gt;
Метод с украинским именем '''getman()''' отвечает за то, чтобы вернуть запрошенную man-страницу в виде текстовой переменной. Для этого используем уже знакомую нам функцию '''popen()''' модуля '''os'''. Нужно учитывать, что man-страницы могут содержать специальное форматирование: подсветку и подчёркивание. Чтобы не усложнять наш пример, мы просто избавляемся от ненужных символов, оставляя чистый текст. Пожалуй, нужно пояснить, как мы это делаем.&lt;br /&gt;
&lt;br /&gt;
Если вы посмотрите на результат работы команды man в «натуральном» виде, например, сохранив его в файл, то заметите, что яркость создаётся следующим приёмом: символ выводится, стирается символом «'''\b'''» (Backspace) и затем снова выводится. Подчёркивание достигается выводом и последующим стиранием символа «_». То есть вы можете увидеть что-то такое: '''N\bNA\bAM\bME\bE = NAME,_\b/_\be_\bt_\bc = /etc'''. С удалением подчёркиваний всё понятно. А вот для удаления «символов яркости» мы используем регулярное выражение, причём на первый фрагмент, взятый в скобки, мы можем в дальнейшем ссылаться с помощью '''\1'''. То есть регулярное выражение «'''(.)!\1'''» означает два одинаковых символа, разделённых восклицательным знаком. Мы же используем символ '''\b'''. Обратите внимание, что его нельзя указывать непосредственно в регулярном выражении, иначе он будет трактоваться как граница слова. Вернёмся к нашим «виджетам»:&lt;br /&gt;
&lt;br /&gt;
 def pressBtn(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sn = sectno.get()[0]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 if sn == ‘-’: sn = ‘’&lt;br /&gt;
 tx.delete(1.0, END)&lt;br /&gt;
 tx.insert(1.0, self.getman(ent.get(), sn))&lt;br /&gt;
&lt;br /&gt;
Это – функция-обработчик нажатия на кнопку (которую мы пока не нарисовали). Ещё ничего не понятно, но мы вернёмся к ней чуть позже, а сейчас перейдем к самому важному методу нашего класса, собственно и рисующему рабочее окно. Разберём его подробнее:&lt;br /&gt;
&lt;br /&gt;
 def Drawface(self):&lt;br /&gt;
 global ent, tx, sectno&lt;br /&gt;
&lt;br /&gt;
Объявляем некоторые переменные как глобальные, чтобы мы могли обращаться к ним из других функций (в нашем примере – из '''pressBtn''').&lt;br /&gt;
&lt;br /&gt;
 win = Tk()&lt;br /&gt;
 win.title(‘Просмотрщик man-страниц’)&lt;br /&gt;
&lt;br /&gt;
Так мы создаём объект, который будет являться нашим рабочим окном. Заодно задаём ему заголовок.&lt;br /&gt;
&lt;br /&gt;
 sectno = StringVar()&lt;br /&gt;
 sectno.set(‘---Auto---’)&lt;br /&gt;
&lt;br /&gt;
В будущем нам понадобится эта переменная – она должна представлять собой особый объект, поэтому и создаём её как экземпляр класса '''Tkinter.StringVar()'''.&lt;br /&gt;
&lt;br /&gt;
 fcmd = Frame(win)&lt;br /&gt;
 fcmd.pack(side=TOP, fill=X)&lt;br /&gt;
&lt;br /&gt;
В основном окне создаём фрейм, который будет являться контейнером для элементов управления. Второй строчкой «упаковываем» его, т.е. указываем место расположения на главном окне. Параметры метода '''pack()''' означают: прикрепить элемент к верхнему краю (TOP) и растянуть по горизонтальной оси.&lt;br /&gt;
&lt;br /&gt;
Здесь нужно сказать, что '''pack''' – не единственный метод упаковки в T''kinter''. В ряде случаев удобнее использовать упаковку «по сетке» – '''grid''' (подробности можно узнать в документации). Приступаем к созданию графических элементов:&lt;br /&gt;
&lt;br /&gt;
 lbl1 = Label(fcmd, text=’Read about ‘)&lt;br /&gt;
 lbl1.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Это – обычная текстовая метка. Она размещается во фрейме (первый аргумент метода) и упакована по левому краю.&lt;br /&gt;
&lt;br /&gt;
 ent = Entry(fcmd)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ent.bind(‘&amp;lt;Return&amp;gt;’, (lambda event: self.pressBtn()))&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 ent.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Текстовое поле ввода также упаковываем слева, сразу после '''lbl1'''.&lt;br /&gt;
&lt;br /&gt;
Метод '''bind()''' &amp;lt;nowiki&amp;gt;задаёт реакцию поля на нажатие клавиши [Enter] (a.k.a. Return) – будет вызван метод &amp;lt;/nowiki&amp;gt;'''pressBtn().'''&lt;br /&gt;
&lt;br /&gt;
 lbl2 = Label(fcmd, text=’ in section ‘)&lt;br /&gt;
 lbl2.pack(side=LEFT)&lt;br /&gt;
 slt = OptionMenu(fcmd, sectno,&lt;br /&gt;
 ‘---Auto---’,&lt;br /&gt;
 ‘1 User Utilities’,&lt;br /&gt;
 ‘2 System Calls’,&lt;br /&gt;
 ‘3 Library Functions’,&lt;br /&gt;
 ‘4 Devices &amp;amp; Kernel Interfaces’,&lt;br /&gt;
 ‘5 File Formats’,&lt;br /&gt;
 ‘6 Games’,&lt;br /&gt;
 ‘7 Macros &amp;amp; SQL Commands’,&lt;br /&gt;
 ‘8 System Utilities’,&lt;br /&gt;
 ‘9 X Window’,&lt;br /&gt;
 ‘n Built-In commands’,&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 slt.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Ещё одна текстовая метка, и далее – выпадающий список. В нём мы перечисляем имеющиеся разделы справки, к которым будет относиться наш запрос.&lt;br /&gt;
&lt;br /&gt;
 btn1 = Button(fcmd, command=win.quit, text=’Quit’)&lt;br /&gt;
 btn1.pack(side=RIGHT)&lt;br /&gt;
 btn2 = Button(fcmd, command=self.pressBtn, text=’Open’)&lt;br /&gt;
 btn2.pack(side=RIGHT)&lt;br /&gt;
&lt;br /&gt;
Две кнопки – завершающая работу и отображающая запрошенную man-страницу. Обратите внимание, что здесь упаковка выполняется по правому краю, т.е. Quit будет самой правой, а Open – чуть левее. Важнейший параметр – command, задает функцию-обработчик. В первом случае используется встроенный метод '''quit''', завершающий работу, во втором – наш метод '''pressBtn'''. Обратите внимание, что здесь происходит не вызов метода, а даётся ссылка на него, т.е. имя указывается без скобок.&lt;br /&gt;
&lt;br /&gt;
 fview = Frame(win)&lt;br /&gt;
 fview.pack(side=BOTTOM, fill=BOTH, expand=YES)&lt;br /&gt;
 sb = Scrollbar(fview)&lt;br /&gt;
 tx = Text(fview, relief=SUNKEN)&lt;br /&gt;
 sb.config(command=tx.yview)&lt;br /&gt;
 tx.config(yscrollcommand=sb.set)&lt;br /&gt;
 sb.pack(side=RIGHT, fill=Y)&lt;br /&gt;
 tx.pack(side=TOP, expand=YES, fill=BOTH)&lt;br /&gt;
&lt;br /&gt;
Во втором фрейме, который мы прикрепляем к нижнему краю и растягиваем во все стороны, заполняя всё доступное пространство, размещается текстовое поле, где мы будем отображать содержимое man-страницы. Поскольку последняя может быть достаточно длинной, понадобится скроллинг (элемент Scrollbar). Обратите внимание на то, как методами '''config()''' мы обеспечиваем взаимную привязку текстового поля и полосы прокрутки. Параметр relief в описании текстового поля задаёт вид рамки вокруг поля.&lt;br /&gt;
&lt;br /&gt;
Настало время поговорить о '''pressBtn'''&amp;lt;nowiki&amp;gt;. Как вы видели, этот метод будет выполняться в двух случаях – по щелчку на кнопке Open и при нажатии [Enter] в поле ввода. Получив цифру раздела справки и очистив текущее содержимое поля &amp;lt;/nowiki&amp;gt;'''tx''' от начала ('''1,0''') до конца (END), вызываем метод '''getman()''' и вставляем результат в '''tx'''.&lt;br /&gt;
&lt;br /&gt;
 win.mainloop()&lt;br /&gt;
&lt;br /&gt;
Всё выше было просто подготовкой. А вот этой командой мы запускаем наше окно в работу. С этого момента управление передаётся ''Tkinterо''бъекту, и влиять на его поведение можно только с помощью описанных ранее обработчиков событий.&lt;br /&gt;
&lt;br /&gt;
 if __name__ == ‘__main__’:&lt;br /&gt;
 test = ManReader()&lt;br /&gt;
 test.Drawface()&lt;br /&gt;
&lt;br /&gt;
Ну, это должно быть понятно – если скрипт запускается автономно, а не экспортируется в другой, то создаём объект нашего класса и запускаем его в работу.&lt;br /&gt;
&lt;br /&gt;
Фух… Кажется, мы сделали это. Результат наших трудов можно наблюдать на рисунке (Рисунок 1). Как видите, «виджеты» имеют свой уникальный дизайн и будут резко выделяться на фоне остального интерфейса, внешний вид которого вы с такой любовью выбирали среди десятков различных стилей. Но это работает (причём одинаково) и в KDE, и в Gnome, и даже в Windows и Mac OS X.&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы разобрались с основами, самое время перейти к «родным» для Linux-окружения средствам – ''PyQt ''и ''PyGTK''. Прежде чем приступать к работе, проверьте, есть ли в вашей системе нужные модули.&lt;br /&gt;
&lt;br /&gt;
=== Пара слов про PyGTK ===&lt;br /&gt;
&lt;br /&gt;
Мощь библиотеки ''GTK ''позволяет создавать таких «гигантов графики», как ''Gimp''. Отрадно, что мы можем в значительной степени воспользоваться её возможностями и в сценариях ''Python''. В каталоге '''/usr/share/doc/pygtk&amp;lt;версия&amp;gt;/examples''' вы найдёте массу примеров её использования. Здесь приведём простейший вариант:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import gtk&lt;br /&gt;
&lt;br /&gt;
# Создаём основное окно&lt;br /&gt;
win = gtk.Window()&lt;br /&gt;
def main():&lt;br /&gt;
	&lt;br /&gt;
	# Задаём параметры окна (размер, заголовок и т.д.)&lt;br /&gt;
	win.set_default_size(300, 50)&lt;br /&gt;
	win.set_border_width(10)&lt;br /&gt;
	win.connect('destroy', gtk.main_quit)&lt;br /&gt;
	win.set_title('Небольшой пример') &lt;br /&gt;
	txtvar = 'Библиотека ''GTK ''привносит в ''Python ''небывалую мощь и высокий уровень интеграции в среду Gnome.' &lt;br /&gt;
	&lt;br /&gt;
	# Текстовая метка – не забывайте применять метод show() к каждому объекту, чтобы он был видимым&lt;br /&gt;
	txt = gtk.Label(txtvar)&lt;br /&gt;
	txt.show()&lt;br /&gt;
	# Кнопка. На неё «привязываем» завершение работы&lt;br /&gt;
	btn = gtk.Button('Закрыть')&lt;br /&gt;
	btn.connect('pressed', lambda button: gtk.main_quit())&lt;br /&gt;
	btn.show()&lt;br /&gt;
	# объект Window может содержать только один элемент, так что им будет HBox, который служит контейнером для остальных&lt;br /&gt;
	box = gtk.HBox()&lt;br /&gt;
	box.pack_start(txt)&lt;br /&gt;
	box.pack_start(btn)&lt;br /&gt;
	win.add(box)&lt;br /&gt;
	box.show()&lt;br /&gt;
	win.show()&lt;br /&gt;
	&lt;br /&gt;
	gtk.main()&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат представлен на рисунке 2.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_98_1.jpg|left|thumb|400px|Рисунок 2. Именно так вы и должны представлять себе GTK-&lt;br /&gt;
приложение.]]&lt;br /&gt;
&lt;br /&gt;
=== Фанатам KDE посвящается ===&lt;br /&gt;
Если для вас Linux не мыслим без KDE, то ''PyQt ''– как раз тот инструмент, который способен обеспечить «бесшовную» интеграцию ваших ''Pythonс''ценариев с окружением рабочего стола. (Впрочем, ''Qt ''работает не только в Linux, так что ваши решения по-прежнему сохранят определённый уровень переносимости.) К тому же, для разработки интерфейса к вашим услугам ''Qt Designer''. А создадим мы программу для просмотра запущенных в системе процессов. Итак, в путь!&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_99_1.jpg|thumb|400px|Рисунок 3. Мышкой влево, мышкой вправо – а зачем вам&lt;br /&gt;
вообще клавиатура?]]&lt;br /&gt;
&lt;br /&gt;
=== Делай «РАЗ»! ===&lt;br /&gt;
Первым делом, запустите Qt Designer и откройте новый проект типа Widget. Для кнопки создайте соединение с формой (Connect Signal/ Slots) и объявите новый слот, назвав его showPs. В дальнейшем это будет наш обработчик нажатия кнопки. Сохранив интерфейс (Рисунок 3) под именем psview.ui, нужно конвертировать его в ''Python''-код:&lt;br /&gt;
&lt;br /&gt;
 $ pyuic psview.ui &amp;gt; psview.py&lt;br /&gt;
&lt;br /&gt;
Теперь в '''psview.py''' описан класс, отвечающий за наш интерфейс. Если вы посмотрите на него, то увидите, что всё не намного сложнее, чем в ''Tkinter'', так что при желании интерфейс можно создать и вручную.&lt;br /&gt;
&lt;br /&gt;
=== Делай «ДВА»! ===&lt;br /&gt;
Далее, нам нужно довести всё это до ума. Непосредственное редактирование созданного сценария – самое плохое решение, поскольку вы лишитесь возможности корректировать интерфейс в ''Qt Designer'', т.к. все изменения при этом будут потеряны. Поэтому правильно будет оставить psview.py в неприкосновенном виде, а для работы описать ещё один класс на базе созданного, пользуясь возможностями наследования. Просто создать экземпляр класса Form1 тоже не совсем хорошо – ведь нам нужно будет изменить поведение класса, отредактировав обработчик нажатия кнопки. Полученный код с переопределённой функциейобработчиком будет выглядеть так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/Python&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# -*- coding: utf-8 -*import os, sys&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Импортируем модуль, созданный автоматически&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 from psview import *&lt;br /&gt;
 class PsForm(Form1): # наследуем от Form1&lt;br /&gt;
 def __init__(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Помните, что при наследовании инициализацию&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- родительского класса нужно делать вручную?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Form1.__init__(self)&lt;br /&gt;
 def showPs(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Формируем нужные ключи команды ps&lt;br /&gt;
 if self.radioButton1.isChecked():&lt;br /&gt;
 all = ‘a’&lt;br /&gt;
 else:&lt;br /&gt;
 all = ‘’&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Выводимые поля описываются после ключа «o»&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- Очень важно не допускать пробелов!&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 fields = ‘o’&lt;br /&gt;
 if self.checkBox1.isChecked():&lt;br /&gt;
 fields += ‘pid,’&lt;br /&gt;
 if self.checkBox2.isChecked():&lt;br /&gt;
 fields += ‘user,’&lt;br /&gt;
 if self.checkBox3.isChecked():&lt;br /&gt;
 fields += ‘stat,’&lt;br /&gt;
 if self.checkBox4.isChecked():&lt;br /&gt;
 fields += ‘command,’&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;fields = fields[:-1] # &amp;lt;/nowiki&amp;gt;последнюю запятую – долой!&lt;br /&gt;
 filter = self.lineEdit1.text()&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Если есть фильтр, то заголовок придётся забирать&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- отдельной командой (head – чтобы не выводить лишнее)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 if filter:&lt;br /&gt;
 cmd = ‘ps %sx%s | grep %s | grep -v grep’ % (all, fields,&lt;br /&gt;
 filter)&lt;br /&gt;
 head = os.popen(‘ps %s | head’ % fields).readline()&lt;br /&gt;
 body = os.popen(cmd).read()&lt;br /&gt;
 else:&lt;br /&gt;
 cmd = ‘ps %sx%s’ % (all, fields)&lt;br /&gt;
 pspipe = os.popen(cmd)&lt;br /&gt;
 head = pspipe.readline() # первая строка&lt;br /&gt;
 body = pspipe.read() # всё остальное&lt;br /&gt;
 pspipe.close()&lt;br /&gt;
 self.tl_header.setText(head)&lt;br /&gt;
 self.te_body.setText(body)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Создаём объект-приложение&lt;br /&gt;
 app = QApplication(sys.argv)&lt;br /&gt;
 form = PsForm()&lt;br /&gt;
 app.setMainWidget(form)&lt;br /&gt;
 form.show()&lt;br /&gt;
 app.exec_loop()&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_99_2.jpg|thumb|400px|Рисунок 4. Ну, нравится мне стиль Redmond – ничего с собой&lt;br /&gt;
поделать не могу…]]&lt;br /&gt;
&lt;br /&gt;
Небольшое пояснение: чтобы при прокрутке заголовок был всегда на виду, мы вынесли его в отдельную текстовую метку '''(tl_header)'''. Поскольку при использовании ''grep ''заголовок теряется, придётся приложить чуточку усилий, чтобы всё-таки обеспечить его вывод (см. фрагмент «'''if filter – else'''»).&lt;br /&gt;
&lt;br /&gt;
=== Делай «ТРИ»! ===&lt;br /&gt;
&lt;br /&gt;
Всё! Можно запускать нашу оболочку, не забыв сделать скрипт исполняемым (Рисунок 4). Конечно, это не верх совершенства – из множества доступных полей поддерживаются только четыре, нет проверки выражения фильтра на безопасность (а что, если пользователь введёт '''«root; rm -Rf /»'''?). Впрочем, это беда любого графического интерфейса – неизбежная потеря функциональности и гибкости в угоду сомнительным удобствам. Тем не менее, наша задача была всё-таки в другом – показать пример разработки ГИП, с чем мы успешно справились.&lt;br /&gt;
&lt;br /&gt;
Как видите, изложенное сегодня – всего лишь основа. Но, надеюсь, этого будет достаточно, чтобы приступить к быстрой и эффективной разработке графических интерфейсов. На этом мы завершаем «Уроки P''ython''», но не прощаемся – со следующего номера начинается серия «''Python ''для профессионалов», где мы поговорим о многопоточных приложениях, обработке сетевых протоколов, взаимодействии с СУБД и библиотеке ''Python Image Library''.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%91%D0%BE%D0%B8_%D0%B7%D0%B0_%D0%90%D0%B2%D0%B4%D0%B5%D0%B5%D0%B2%D0%BA%D1%83_2023</id>
		<title>Бои за Авдеевку 2023</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%91%D0%BE%D0%B8_%D0%B7%D0%B0_%D0%90%D0%B2%D0%B4%D0%B5%D0%B5%D0%B2%D0%BA%D1%83_2023"/>
				<updated>2008-04-24T12:40:29Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: /* Пара слов про PyGTK */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{цикл/Python}}&lt;br /&gt;
УЧЕБНИК ''Python''&lt;br /&gt;
&lt;br /&gt;
ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ&lt;br /&gt;
&lt;br /&gt;
== Уроки Python ==&lt;br /&gt;
'''ЧАСТЬ 6 '''&lt;br /&gt;
&lt;br /&gt;
''Теперь, когда мы научились обрабатывать строки, самое время показать наше умение другим. Но кто будет смотреть сценарий «без лица», пусть даже в Konsole с красивым прозрачным фоном? Для тех, кто не Квентин Тарантино, '''Сергей Супрунов '''покажет, как создаются на ''Python ''графические интерфейсы.''&lt;br /&gt;
&lt;br /&gt;
Чем больше работаешь с ''Python'', тем сильнее ощущаешь его мощь и гибкость. Порой кажется, что для этого языка нет ничего невозможного. Это же можно отнести и к разработке графического интерфейса пользователя (хотя здесь ''Python ''просто использует возможности мощных библиотек). Как вы увидите, ''Python и в'' этом вопросе сохраняет простоту и эффективность, становясь весьма удобным инструментом для решения таких задач, как создание «обёрток» к различным консольным утилитам, разработка графических конфигураторов для ваших любимых инструментов, проектирование прототипов программ (куда проще за пару дней согласовать с заказчиком все «интерфейсные» моменты разрабатываемого проекта, меняя внешний вид прямо на переговорах, чем спустя месяцы напряжённой работы переделывать многомегабайтный проект на C++, только лишь потому, что заказчик счёл интерфейс слишком сложным для освоения), и т.д. Кстати, инсталлятор Gentoo, появившийся в версии 2006.0 и наделавший столько шума, тоже написан на ''Python''.&lt;br /&gt;
&lt;br /&gt;
Для ''Python ''разработано множество инструментов, отличающихся по гибкости, сложности, степени интеграции с вашим окружением. В рамках одного урока сложно рассмотреть всё это многообразие даже в общих чертах. Поэтому мы ограничимся кратким знакомством с модулем ''Tkinter ''и «привязками» ''PyQt ''и ''PyGTK''.&lt;br /&gt;
&lt;br /&gt;
Есть ещё достаточно мощный и переносимый модуль wx''Python, я''вляющийся привязкой к графической библиотеке wxWidgets, который тоже заслуживает внимания, но думаю, вы сможете разобраться с ним самостоятельно.&lt;br /&gt;
&lt;br /&gt;
Начнём со старого доброго ''Tkinter'', который, несмотря на некоторую «неказистость» и плохую интеграцию с системой, всё же остаётся стандартным модулем, входящим в поставку практически всех дистрибутивов. К тому же его простота – идеальная особенность для учебных целей. А разобравшись с ним, вы без труда освоите и другие инструменты.&lt;br /&gt;
&lt;br /&gt;
=== Очарование простоты ===&lt;br /&gt;
Проверить наличие ''Tkinter ''в вашем дистрибутиве достаточно просто (он должен быть, но всякое случается): запустите ''Python ''и выполните команду import ''Tkinter ''(обратите внимание на заглавную первую букву). Если вам не повезло и вы увидели сообщение об ошибке, придётся установить этот модуль отдельно. Проконсультируйтесь с вашим менеджером пакетов, не знает ли он случайно про ''Tkinter ''(имя пакета, в отличие от модуля, обычно записывается только маленькими буквами). Если он окажется из партизанской семьи, то прямая дорога вам на '''www.Python.org '''(который с новым дизайном смотрится очень даже приятно).&lt;br /&gt;
&lt;br /&gt;
Разобравшись с модулем, приступим сразу к серьёзной работе. В качестве примера выберем такую задачу: разработать графический интерфейс для просмотра man-страниц. Хорош он тем, что логика предельно проста, и нам почти не придётся отвлекаться от основной задачи. Итак, сразу код (по мере необходимости, будем прерывать его некоторыми пояснениями):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/Python&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# -*- coding: utf-8 -*i&amp;lt;/nowiki&amp;gt;mport os, re&lt;br /&gt;
 from Tkinter import *&lt;br /&gt;
&lt;br /&gt;
Здесь мы объявили кодировку нашей локали и подключили необходимые для работы модули (не забывайте следить за регистром символов). Далее опишем класс, который будет отвечать за работу нашего приложения. Использование объектного подхода позволит в дальнейшем, если потребуется, легко создавать модифицированные приложения на базе этого класса или интегрировать его функциональность в другие объекты:&lt;br /&gt;
&lt;br /&gt;
 class ManReader:&lt;br /&gt;
 def getman(self, manpage, sn):&lt;br /&gt;
 bschar = ‘\b’&lt;br /&gt;
 tmp = os.popen(‘man %s %s 2&amp;gt;/dev/null’ % (sn, manpage)).&lt;br /&gt;
 read()&lt;br /&gt;
 if tmp:&lt;br /&gt;
 tmp = re.sub(r’(.)%c\1’ % bschar, r’\1’, tmp)&lt;br /&gt;
 tmp = tmp.replace(‘_%c’ % bschar, ‘’)&lt;br /&gt;
 else:&lt;br /&gt;
 tmp = ‘Page “%s” in section “%s” not found’ % \&lt;br /&gt;
 (manpage, sn or ‘Auto’)&lt;br /&gt;
 return tmp&lt;br /&gt;
&lt;br /&gt;
Метод с украинским именем '''getman()''' отвечает за то, чтобы вернуть запрошенную man-страницу в виде текстовой переменной. Для этого используем уже знакомую нам функцию '''popen()''' модуля '''os'''. Нужно учитывать, что man-страницы могут содержать специальное форматирование: подсветку и подчёркивание. Чтобы не усложнять наш пример, мы просто избавляемся от ненужных символов, оставляя чистый текст. Пожалуй, нужно пояснить, как мы это делаем.&lt;br /&gt;
&lt;br /&gt;
Если вы посмотрите на результат работы команды man в «натуральном» виде, например, сохранив его в файл, то заметите, что яркость создаётся следующим приёмом: символ выводится, стирается символом «'''\b'''» (Backspace) и затем снова выводится. Подчёркивание достигается выводом и последующим стиранием символа «_». То есть вы можете увидеть что-то такое: '''N\bNA\bAM\bME\bE = NAME,_\b/_\be_\bt_\bc = /etc'''. С удалением подчёркиваний всё понятно. А вот для удаления «символов яркости» мы используем регулярное выражение, причём на первый фрагмент, взятый в скобки, мы можем в дальнейшем ссылаться с помощью '''\1'''. То есть регулярное выражение «'''(.)!\1'''» означает два одинаковых символа, разделённых восклицательным знаком. Мы же используем символ '''\b'''. Обратите внимание, что его нельзя указывать непосредственно в регулярном выражении, иначе он будет трактоваться как граница слова. Вернёмся к нашим «виджетам»:&lt;br /&gt;
&lt;br /&gt;
 def pressBtn(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sn = sectno.get()[0]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 if sn == ‘-’: sn = ‘’&lt;br /&gt;
 tx.delete(1.0, END)&lt;br /&gt;
 tx.insert(1.0, self.getman(ent.get(), sn))&lt;br /&gt;
&lt;br /&gt;
Это – функция-обработчик нажатия на кнопку (которую мы пока не нарисовали). Ещё ничего не понятно, но мы вернёмся к ней чуть позже, а сейчас перейдем к самому важному методу нашего класса, собственно и рисующему рабочее окно. Разберём его подробнее:&lt;br /&gt;
&lt;br /&gt;
 def Drawface(self):&lt;br /&gt;
 global ent, tx, sectno&lt;br /&gt;
&lt;br /&gt;
Объявляем некоторые переменные как глобальные, чтобы мы могли обращаться к ним из других функций (в нашем примере – из '''pressBtn''').&lt;br /&gt;
&lt;br /&gt;
 win = Tk()&lt;br /&gt;
 win.title(‘Просмотрщик man-страниц’)&lt;br /&gt;
&lt;br /&gt;
Так мы создаём объект, который будет являться нашим рабочим окном. Заодно задаём ему заголовок.&lt;br /&gt;
&lt;br /&gt;
 sectno = StringVar()&lt;br /&gt;
 sectno.set(‘---Auto---’)&lt;br /&gt;
&lt;br /&gt;
В будущем нам понадобится эта переменная – она должна представлять собой особый объект, поэтому и создаём её как экземпляр класса '''Tkinter.StringVar()'''.&lt;br /&gt;
&lt;br /&gt;
 fcmd = Frame(win)&lt;br /&gt;
 fcmd.pack(side=TOP, fill=X)&lt;br /&gt;
&lt;br /&gt;
В основном окне создаём фрейм, который будет являться контейнером для элементов управления. Второй строчкой «упаковываем» его, т.е. указываем место расположения на главном окне. Параметры метода '''pack()''' означают: прикрепить элемент к верхнему краю (TOP) и растянуть по горизонтальной оси.&lt;br /&gt;
&lt;br /&gt;
Здесь нужно сказать, что '''pack''' – не единственный метод упаковки в T''kinter''. В ряде случаев удобнее использовать упаковку «по сетке» – '''grid''' (подробности можно узнать в документации). Приступаем к созданию графических элементов:&lt;br /&gt;
&lt;br /&gt;
 lbl1 = Label(fcmd, text=’Read about ‘)&lt;br /&gt;
 lbl1.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Это – обычная текстовая метка. Она размещается во фрейме (первый аргумент метода) и упакована по левому краю.&lt;br /&gt;
&lt;br /&gt;
 ent = Entry(fcmd)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ent.bind(‘&amp;lt;Return&amp;gt;’, (lambda event: self.pressBtn()))&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 ent.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Текстовое поле ввода также упаковываем слева, сразу после '''lbl1'''.&lt;br /&gt;
&lt;br /&gt;
Метод '''bind()''' &amp;lt;nowiki&amp;gt;задаёт реакцию поля на нажатие клавиши [Enter] (a.k.a. Return) – будет вызван метод &amp;lt;/nowiki&amp;gt;'''pressBtn().'''&lt;br /&gt;
&lt;br /&gt;
 lbl2 = Label(fcmd, text=’ in section ‘)&lt;br /&gt;
 lbl2.pack(side=LEFT)&lt;br /&gt;
 slt = OptionMenu(fcmd, sectno,&lt;br /&gt;
 ‘---Auto---’,&lt;br /&gt;
 ‘1 User Utilities’,&lt;br /&gt;
 ‘2 System Calls’,&lt;br /&gt;
 ‘3 Library Functions’,&lt;br /&gt;
 ‘4 Devices &amp;amp; Kernel Interfaces’,&lt;br /&gt;
 ‘5 File Formats’,&lt;br /&gt;
 ‘6 Games’,&lt;br /&gt;
 ‘7 Macros &amp;amp; SQL Commands’,&lt;br /&gt;
 ‘8 System Utilities’,&lt;br /&gt;
 ‘9 X Window’,&lt;br /&gt;
 ‘n Built-In commands’,&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 slt.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Ещё одна текстовая метка, и далее – выпадающий список. В нём мы перечисляем имеющиеся разделы справки, к которым будет относиться наш запрос.&lt;br /&gt;
&lt;br /&gt;
 btn1 = Button(fcmd, command=win.quit, text=’Quit’)&lt;br /&gt;
 btn1.pack(side=RIGHT)&lt;br /&gt;
 btn2 = Button(fcmd, command=self.pressBtn, text=’Open’)&lt;br /&gt;
 btn2.pack(side=RIGHT)&lt;br /&gt;
&lt;br /&gt;
Две кнопки – завершающая работу и отображающая запрошенную man-страницу. Обратите внимание, что здесь упаковка выполняется по правому краю, т.е. Quit будет самой правой, а Open – чуть левее. Важнейший параметр – command, задает функцию-обработчик. В первом случае используется встроенный метод '''quit''', завершающий работу, во втором – наш метод '''pressBtn'''. Обратите внимание, что здесь происходит не вызов метода, а даётся ссылка на него, т.е. имя указывается без скобок.&lt;br /&gt;
&lt;br /&gt;
 fview = Frame(win)&lt;br /&gt;
 fview.pack(side=BOTTOM, fill=BOTH, expand=YES)&lt;br /&gt;
 sb = Scrollbar(fview)&lt;br /&gt;
 tx = Text(fview, relief=SUNKEN)&lt;br /&gt;
 sb.config(command=tx.yview)&lt;br /&gt;
 tx.config(yscrollcommand=sb.set)&lt;br /&gt;
 sb.pack(side=RIGHT, fill=Y)&lt;br /&gt;
 tx.pack(side=TOP, expand=YES, fill=BOTH)&lt;br /&gt;
&lt;br /&gt;
Во втором фрейме, который мы прикрепляем к нижнему краю и растягиваем во все стороны, заполняя всё доступное пространство, размещается текстовое поле, где мы будем отображать содержимое man-страницы. Поскольку последняя может быть достаточно длинной, понадобится скроллинг (элемент Scrollbar). Обратите внимание на то, как методами '''config()''' мы обеспечиваем взаимную привязку текстового поля и полосы прокрутки. Параметр relief в описании текстового поля задаёт вид рамки вокруг поля.&lt;br /&gt;
&lt;br /&gt;
Настало время поговорить о '''pressBtn'''&amp;lt;nowiki&amp;gt;. Как вы видели, этот метод будет выполняться в двух случаях – по щелчку на кнопке Open и при нажатии [Enter] в поле ввода. Получив цифру раздела справки и очистив текущее содержимое поля &amp;lt;/nowiki&amp;gt;'''tx''' от начала ('''1,0''') до конца (END), вызываем метод '''getman()''' и вставляем результат в '''tx'''.&lt;br /&gt;
&lt;br /&gt;
 win.mainloop()&lt;br /&gt;
&lt;br /&gt;
Всё выше было просто подготовкой. А вот этой командой мы запускаем наше окно в работу. С этого момента управление передаётся ''Tkinterо''бъекту, и влиять на его поведение можно только с помощью описанных ранее обработчиков событий.&lt;br /&gt;
&lt;br /&gt;
 if __name__ == ‘__main__’:&lt;br /&gt;
 test = ManReader()&lt;br /&gt;
 test.Drawface()&lt;br /&gt;
&lt;br /&gt;
Ну, это должно быть понятно – если скрипт запускается автономно, а не экспортируется в другой, то создаём объект нашего класса и запускаем его в работу.&lt;br /&gt;
&lt;br /&gt;
Фух… Кажется, мы сделали это. Результат наших трудов можно наблюдать на рисунке (Рисунок 1). Как видите, «виджеты» имеют свой уникальный дизайн и будут резко выделяться на фоне остального интерфейса, внешний вид которого вы с такой любовью выбирали среди десятков различных стилей. Но это работает (причём одинаково) и в KDE, и в Gnome, и даже в Windows и Mac OS X.&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы разобрались с основами, самое время перейти к «родным» для Linux-окружения средствам – ''PyQt ''и ''PyGTK''. Прежде чем приступать к работе, проверьте, есть ли в вашей системе нужные модули.&lt;br /&gt;
&lt;br /&gt;
=== Пара слов про PyGTK ===&lt;br /&gt;
[[Изображение:Img_80_98_2.jpg|thumb|400px|Рисунок 1. Tkinter – лучший способ сделать не так, как у других!]]&lt;br /&gt;
&lt;br /&gt;
Мощь библиотеки ''GTK ''позволяет создавать таких «гигантов графики», как ''Gimp''. Отрадно, что мы можем в значительной степени воспользоваться её возможностями и в сценариях ''Python''. В каталоге '''&amp;lt;nowiki&amp;gt;/usr/share/doc/pygtk&amp;lt;версия&amp;gt;/examples&amp;lt;/nowiki&amp;gt;''' вы найдёте массу примеров её использования. Здесь приведём простейший вариант:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 #!/usr/bin/Python&lt;br /&gt;
 # -*- coding: utf-8 -*-&lt;br /&gt;
 import gtk&lt;br /&gt;
 # Создаём основное окно&lt;br /&gt;
 win = gtk.Window()&lt;br /&gt;
 def main():&lt;br /&gt;
 # Задаём параметры окна (размер, заголовок и т.д.)&lt;br /&gt;
 win.set_default_size(300, 50)&lt;br /&gt;
 win.set_border_width(10)&lt;br /&gt;
 win.connect(‘destroy’, gtk.main_quit)&lt;br /&gt;
 win.set_title(‘Небольшой пример’)&lt;br /&gt;
 txtvar = 'Библиотека ''GTK ''привносит в ''Python ''небывалую мощь и высокий уровень интеграции в среду Gnome.'&lt;br /&gt;
&lt;br /&gt;
 # Текстовая метка – не забывайте применять метод&lt;br /&gt;
 #- show() к каждому объекту, чтобы он был видимым&lt;br /&gt;
 txt = gtk.Label(txtvar)&lt;br /&gt;
 txt.show()&lt;br /&gt;
 # Кнопка. На неё «привязываем» завершение работы&lt;br /&gt;
 btn = gtk.Button(‘Закрыть’)&lt;br /&gt;
 btn.connect(‘pressed’, lambda button: gtk.main_quit())&lt;br /&gt;
 btn.show()&lt;br /&gt;
 # объект Window может содержать только один элемент,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 #- так что им будет HBox, который служит контейнером для остальных&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 box = gtk.HBox()&lt;br /&gt;
 box.pack_start(txt)&lt;br /&gt;
 box.pack_start(btn)&lt;br /&gt;
 win.add(box)&lt;br /&gt;
 box.show()&lt;br /&gt;
 win.show()&lt;br /&gt;
&lt;br /&gt;
 gtk.main()&lt;br /&gt;
 main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_98_1.jpg|thumb|400px|Рисунок 2. Именно так вы и должны представлять себе GTK-&lt;br /&gt;
приложение.]]&lt;br /&gt;
&lt;br /&gt;
=== Фанатам KDE посвящается ===&lt;br /&gt;
Если для вас Linux не мыслим без KDE, то ''PyQt ''– как раз тот инструмент, который способен обеспечить «бесшовную» интеграцию ваших ''Pythonс''ценариев с окружением рабочего стола. (Впрочем, ''Qt ''работает не только в Linux, так что ваши решения по-прежнему сохранят определённый уровень переносимости.) К тому же, для разработки интерфейса к вашим услугам ''Qt Designer''. А создадим мы программу для просмотра запущенных в системе процессов. Итак, в путь!&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_99_1.jpg|thumb|400px|Рисунок 3. Мышкой влево, мышкой вправо – а зачем вам&lt;br /&gt;
вообще клавиатура?]]&lt;br /&gt;
&lt;br /&gt;
=== Делай «РАЗ»! ===&lt;br /&gt;
Первым делом, запустите Qt Designer и откройте новый проект типа Widget. Для кнопки создайте соединение с формой (Connect Signal/ Slots) и объявите новый слот, назвав его showPs. В дальнейшем это будет наш обработчик нажатия кнопки. Сохранив интерфейс (Рисунок 3) под именем psview.ui, нужно конвертировать его в ''Python''-код:&lt;br /&gt;
&lt;br /&gt;
 $ pyuic psview.ui &amp;gt; psview.py&lt;br /&gt;
&lt;br /&gt;
Теперь в '''psview.py''' описан класс, отвечающий за наш интерфейс. Если вы посмотрите на него, то увидите, что всё не намного сложнее, чем в ''Tkinter'', так что при желании интерфейс можно создать и вручную.&lt;br /&gt;
&lt;br /&gt;
=== Делай «ДВА»! ===&lt;br /&gt;
Далее, нам нужно довести всё это до ума. Непосредственное редактирование созданного сценария – самое плохое решение, поскольку вы лишитесь возможности корректировать интерфейс в ''Qt Designer'', т.к. все изменения при этом будут потеряны. Поэтому правильно будет оставить psview.py в неприкосновенном виде, а для работы описать ещё один класс на базе созданного, пользуясь возможностями наследования. Просто создать экземпляр класса Form1 тоже не совсем хорошо – ведь нам нужно будет изменить поведение класса, отредактировав обработчик нажатия кнопки. Полученный код с переопределённой функциейобработчиком будет выглядеть так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/Python&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# -*- coding: utf-8 -*import os, sys&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Импортируем модуль, созданный автоматически&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 from psview import *&lt;br /&gt;
 class PsForm(Form1): # наследуем от Form1&lt;br /&gt;
 def __init__(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Помните, что при наследовании инициализацию&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- родительского класса нужно делать вручную?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Form1.__init__(self)&lt;br /&gt;
 def showPs(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Формируем нужные ключи команды ps&lt;br /&gt;
 if self.radioButton1.isChecked():&lt;br /&gt;
 all = ‘a’&lt;br /&gt;
 else:&lt;br /&gt;
 all = ‘’&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Выводимые поля описываются после ключа «o»&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- Очень важно не допускать пробелов!&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 fields = ‘o’&lt;br /&gt;
 if self.checkBox1.isChecked():&lt;br /&gt;
 fields += ‘pid,’&lt;br /&gt;
 if self.checkBox2.isChecked():&lt;br /&gt;
 fields += ‘user,’&lt;br /&gt;
 if self.checkBox3.isChecked():&lt;br /&gt;
 fields += ‘stat,’&lt;br /&gt;
 if self.checkBox4.isChecked():&lt;br /&gt;
 fields += ‘command,’&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;fields = fields[:-1] # &amp;lt;/nowiki&amp;gt;последнюю запятую – долой!&lt;br /&gt;
 filter = self.lineEdit1.text()&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Если есть фильтр, то заголовок придётся забирать&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- отдельной командой (head – чтобы не выводить лишнее)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 if filter:&lt;br /&gt;
 cmd = ‘ps %sx%s | grep %s | grep -v grep’ % (all, fields,&lt;br /&gt;
 filter)&lt;br /&gt;
 head = os.popen(‘ps %s | head’ % fields).readline()&lt;br /&gt;
 body = os.popen(cmd).read()&lt;br /&gt;
 else:&lt;br /&gt;
 cmd = ‘ps %sx%s’ % (all, fields)&lt;br /&gt;
 pspipe = os.popen(cmd)&lt;br /&gt;
 head = pspipe.readline() # первая строка&lt;br /&gt;
 body = pspipe.read() # всё остальное&lt;br /&gt;
 pspipe.close()&lt;br /&gt;
 self.tl_header.setText(head)&lt;br /&gt;
 self.te_body.setText(body)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Создаём объект-приложение&lt;br /&gt;
 app = QApplication(sys.argv)&lt;br /&gt;
 form = PsForm()&lt;br /&gt;
 app.setMainWidget(form)&lt;br /&gt;
 form.show()&lt;br /&gt;
 app.exec_loop()&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_99_2.jpg|thumb|400px|Рисунок 4. Ну, нравится мне стиль Redmond – ничего с собой&lt;br /&gt;
поделать не могу…]]&lt;br /&gt;
&lt;br /&gt;
Небольшое пояснение: чтобы при прокрутке заголовок был всегда на виду, мы вынесли его в отдельную текстовую метку '''(tl_header)'''. Поскольку при использовании ''grep ''заголовок теряется, придётся приложить чуточку усилий, чтобы всё-таки обеспечить его вывод (см. фрагмент «'''if filter – else'''»).&lt;br /&gt;
&lt;br /&gt;
=== Делай «ТРИ»! ===&lt;br /&gt;
&lt;br /&gt;
Всё! Можно запускать нашу оболочку, не забыв сделать скрипт исполняемым (Рисунок 4). Конечно, это не верх совершенства – из множества доступных полей поддерживаются только четыре, нет проверки выражения фильтра на безопасность (а что, если пользователь введёт '''«root; rm -Rf /»'''?). Впрочем, это беда любого графического интерфейса – неизбежная потеря функциональности и гибкости в угоду сомнительным удобствам. Тем не менее, наша задача была всё-таки в другом – показать пример разработки ГИП, с чем мы успешно справились.&lt;br /&gt;
&lt;br /&gt;
Как видите, изложенное сегодня – всего лишь основа. Но, надеюсь, этого будет достаточно, чтобы приступить к быстрой и эффективной разработке графических интерфейсов. На этом мы завершаем «Уроки P''ython''», но не прощаемся – со следующего номера начинается серия «''Python ''для профессионалов», где мы поговорим о многопоточных приложениях, обработке сетевых протоколов, взаимодействии с СУБД и библиотеке ''Python Image Library''.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%91%D0%BE%D0%B8_%D0%B7%D0%B0_%D0%90%D0%B2%D0%B4%D0%B5%D0%B5%D0%B2%D0%BA%D1%83_2023</id>
		<title>Бои за Авдеевку 2023</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%91%D0%BE%D0%B8_%D0%B7%D0%B0_%D0%90%D0%B2%D0%B4%D0%B5%D0%B5%D0%B2%D0%BA%D1%83_2023"/>
				<updated>2008-04-24T12:34:34Z</updated>
		
		<summary type="html">&lt;p&gt;Loki: Вставил тег для кодов pyton'a&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{цикл/Python}}&lt;br /&gt;
УЧЕБНИК ''Python''&lt;br /&gt;
&lt;br /&gt;
ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ&lt;br /&gt;
&lt;br /&gt;
== Уроки Python ==&lt;br /&gt;
'''ЧАСТЬ 6 '''&lt;br /&gt;
&lt;br /&gt;
''Теперь, когда мы научились обрабатывать строки, самое время показать наше умение другим. Но кто будет смотреть сценарий «без лица», пусть даже в Konsole с красивым прозрачным фоном? Для тех, кто не Квентин Тарантино, '''Сергей Супрунов '''покажет, как создаются на ''Python ''графические интерфейсы.''&lt;br /&gt;
&lt;br /&gt;
Чем больше работаешь с ''Python'', тем сильнее ощущаешь его мощь и гибкость. Порой кажется, что для этого языка нет ничего невозможного. Это же можно отнести и к разработке графического интерфейса пользователя (хотя здесь ''Python ''просто использует возможности мощных библиотек). Как вы увидите, ''Python и в'' этом вопросе сохраняет простоту и эффективность, становясь весьма удобным инструментом для решения таких задач, как создание «обёрток» к различным консольным утилитам, разработка графических конфигураторов для ваших любимых инструментов, проектирование прототипов программ (куда проще за пару дней согласовать с заказчиком все «интерфейсные» моменты разрабатываемого проекта, меняя внешний вид прямо на переговорах, чем спустя месяцы напряжённой работы переделывать многомегабайтный проект на C++, только лишь потому, что заказчик счёл интерфейс слишком сложным для освоения), и т.д. Кстати, инсталлятор Gentoo, появившийся в версии 2006.0 и наделавший столько шума, тоже написан на ''Python''.&lt;br /&gt;
&lt;br /&gt;
Для ''Python ''разработано множество инструментов, отличающихся по гибкости, сложности, степени интеграции с вашим окружением. В рамках одного урока сложно рассмотреть всё это многообразие даже в общих чертах. Поэтому мы ограничимся кратким знакомством с модулем ''Tkinter ''и «привязками» ''PyQt ''и ''PyGTK''.&lt;br /&gt;
&lt;br /&gt;
Есть ещё достаточно мощный и переносимый модуль wx''Python, я''вляющийся привязкой к графической библиотеке wxWidgets, который тоже заслуживает внимания, но думаю, вы сможете разобраться с ним самостоятельно.&lt;br /&gt;
&lt;br /&gt;
Начнём со старого доброго ''Tkinter'', который, несмотря на некоторую «неказистость» и плохую интеграцию с системой, всё же остаётся стандартным модулем, входящим в поставку практически всех дистрибутивов. К тому же его простота – идеальная особенность для учебных целей. А разобравшись с ним, вы без труда освоите и другие инструменты.&lt;br /&gt;
&lt;br /&gt;
=== Очарование простоты ===&lt;br /&gt;
Проверить наличие ''Tkinter ''в вашем дистрибутиве достаточно просто (он должен быть, но всякое случается): запустите ''Python ''и выполните команду import ''Tkinter ''(обратите внимание на заглавную первую букву). Если вам не повезло и вы увидели сообщение об ошибке, придётся установить этот модуль отдельно. Проконсультируйтесь с вашим менеджером пакетов, не знает ли он случайно про ''Tkinter ''(имя пакета, в отличие от модуля, обычно записывается только маленькими буквами). Если он окажется из партизанской семьи, то прямая дорога вам на '''www.Python.org '''(который с новым дизайном смотрится очень даже приятно).&lt;br /&gt;
&lt;br /&gt;
Разобравшись с модулем, приступим сразу к серьёзной работе. В качестве примера выберем такую задачу: разработать графический интерфейс для просмотра man-страниц. Хорош он тем, что логика предельно проста, и нам почти не придётся отвлекаться от основной задачи. Итак, сразу код (по мере необходимости, будем прерывать его некоторыми пояснениями):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/Python&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# -*- coding: utf-8 -*i&amp;lt;/nowiki&amp;gt;mport os, re&lt;br /&gt;
 from Tkinter import *&lt;br /&gt;
&lt;br /&gt;
Здесь мы объявили кодировку нашей локали и подключили необходимые для работы модули (не забывайте следить за регистром символов). Далее опишем класс, который будет отвечать за работу нашего приложения. Использование объектного подхода позволит в дальнейшем, если потребуется, легко создавать модифицированные приложения на базе этого класса или интегрировать его функциональность в другие объекты:&lt;br /&gt;
&lt;br /&gt;
 class ManReader:&lt;br /&gt;
 def getman(self, manpage, sn):&lt;br /&gt;
 bschar = ‘\b’&lt;br /&gt;
 tmp = os.popen(‘man %s %s 2&amp;gt;/dev/null’ % (sn, manpage)).&lt;br /&gt;
 read()&lt;br /&gt;
 if tmp:&lt;br /&gt;
 tmp = re.sub(r’(.)%c\1’ % bschar, r’\1’, tmp)&lt;br /&gt;
 tmp = tmp.replace(‘_%c’ % bschar, ‘’)&lt;br /&gt;
 else:&lt;br /&gt;
 tmp = ‘Page “%s” in section “%s” not found’ % \&lt;br /&gt;
 (manpage, sn or ‘Auto’)&lt;br /&gt;
 return tmp&lt;br /&gt;
&lt;br /&gt;
Метод с украинским именем '''getman()''' отвечает за то, чтобы вернуть запрошенную man-страницу в виде текстовой переменной. Для этого используем уже знакомую нам функцию '''popen()''' модуля '''os'''. Нужно учитывать, что man-страницы могут содержать специальное форматирование: подсветку и подчёркивание. Чтобы не усложнять наш пример, мы просто избавляемся от ненужных символов, оставляя чистый текст. Пожалуй, нужно пояснить, как мы это делаем.&lt;br /&gt;
&lt;br /&gt;
Если вы посмотрите на результат работы команды man в «натуральном» виде, например, сохранив его в файл, то заметите, что яркость создаётся следующим приёмом: символ выводится, стирается символом «'''\b'''» (Backspace) и затем снова выводится. Подчёркивание достигается выводом и последующим стиранием символа «_». То есть вы можете увидеть что-то такое: '''N\bNA\bAM\bME\bE = NAME,_\b/_\be_\bt_\bc = /etc'''. С удалением подчёркиваний всё понятно. А вот для удаления «символов яркости» мы используем регулярное выражение, причём на первый фрагмент, взятый в скобки, мы можем в дальнейшем ссылаться с помощью '''\1'''. То есть регулярное выражение «'''(.)!\1'''» означает два одинаковых символа, разделённых восклицательным знаком. Мы же используем символ '''\b'''. Обратите внимание, что его нельзя указывать непосредственно в регулярном выражении, иначе он будет трактоваться как граница слова. Вернёмся к нашим «виджетам»:&lt;br /&gt;
&lt;br /&gt;
 def pressBtn(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sn = sectno.get()[0]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 if sn == ‘-’: sn = ‘’&lt;br /&gt;
 tx.delete(1.0, END)&lt;br /&gt;
 tx.insert(1.0, self.getman(ent.get(), sn))&lt;br /&gt;
&lt;br /&gt;
Это – функция-обработчик нажатия на кнопку (которую мы пока не нарисовали). Ещё ничего не понятно, но мы вернёмся к ней чуть позже, а сейчас перейдем к самому важному методу нашего класса, собственно и рисующему рабочее окно. Разберём его подробнее:&lt;br /&gt;
&lt;br /&gt;
 def Drawface(self):&lt;br /&gt;
 global ent, tx, sectno&lt;br /&gt;
&lt;br /&gt;
Объявляем некоторые переменные как глобальные, чтобы мы могли обращаться к ним из других функций (в нашем примере – из '''pressBtn''').&lt;br /&gt;
&lt;br /&gt;
 win = Tk()&lt;br /&gt;
 win.title(‘Просмотрщик man-страниц’)&lt;br /&gt;
&lt;br /&gt;
Так мы создаём объект, который будет являться нашим рабочим окном. Заодно задаём ему заголовок.&lt;br /&gt;
&lt;br /&gt;
 sectno = StringVar()&lt;br /&gt;
 sectno.set(‘---Auto---’)&lt;br /&gt;
&lt;br /&gt;
В будущем нам понадобится эта переменная – она должна представлять собой особый объект, поэтому и создаём её как экземпляр класса '''Tkinter.StringVar()'''.&lt;br /&gt;
&lt;br /&gt;
 fcmd = Frame(win)&lt;br /&gt;
 fcmd.pack(side=TOP, fill=X)&lt;br /&gt;
&lt;br /&gt;
В основном окне создаём фрейм, который будет являться контейнером для элементов управления. Второй строчкой «упаковываем» его, т.е. указываем место расположения на главном окне. Параметры метода '''pack()''' означают: прикрепить элемент к верхнему краю (TOP) и растянуть по горизонтальной оси.&lt;br /&gt;
&lt;br /&gt;
Здесь нужно сказать, что '''pack''' – не единственный метод упаковки в T''kinter''. В ряде случаев удобнее использовать упаковку «по сетке» – '''grid''' (подробности можно узнать в документации). Приступаем к созданию графических элементов:&lt;br /&gt;
&lt;br /&gt;
 lbl1 = Label(fcmd, text=’Read about ‘)&lt;br /&gt;
 lbl1.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Это – обычная текстовая метка. Она размещается во фрейме (первый аргумент метода) и упакована по левому краю.&lt;br /&gt;
&lt;br /&gt;
 ent = Entry(fcmd)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ent.bind(‘&amp;lt;Return&amp;gt;’, (lambda event: self.pressBtn()))&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 ent.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Текстовое поле ввода также упаковываем слева, сразу после '''lbl1'''.&lt;br /&gt;
&lt;br /&gt;
Метод '''bind()''' &amp;lt;nowiki&amp;gt;задаёт реакцию поля на нажатие клавиши [Enter] (a.k.a. Return) – будет вызван метод &amp;lt;/nowiki&amp;gt;'''pressBtn().'''&lt;br /&gt;
&lt;br /&gt;
 lbl2 = Label(fcmd, text=’ in section ‘)&lt;br /&gt;
 lbl2.pack(side=LEFT)&lt;br /&gt;
 slt = OptionMenu(fcmd, sectno,&lt;br /&gt;
 ‘---Auto---’,&lt;br /&gt;
 ‘1 User Utilities’,&lt;br /&gt;
 ‘2 System Calls’,&lt;br /&gt;
 ‘3 Library Functions’,&lt;br /&gt;
 ‘4 Devices &amp;amp; Kernel Interfaces’,&lt;br /&gt;
 ‘5 File Formats’,&lt;br /&gt;
 ‘6 Games’,&lt;br /&gt;
 ‘7 Macros &amp;amp; SQL Commands’,&lt;br /&gt;
 ‘8 System Utilities’,&lt;br /&gt;
 ‘9 X Window’,&lt;br /&gt;
 ‘n Built-In commands’,&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 slt.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Ещё одна текстовая метка, и далее – выпадающий список. В нём мы перечисляем имеющиеся разделы справки, к которым будет относиться наш запрос.&lt;br /&gt;
&lt;br /&gt;
 btn1 = Button(fcmd, command=win.quit, text=’Quit’)&lt;br /&gt;
 btn1.pack(side=RIGHT)&lt;br /&gt;
 btn2 = Button(fcmd, command=self.pressBtn, text=’Open’)&lt;br /&gt;
 btn2.pack(side=RIGHT)&lt;br /&gt;
&lt;br /&gt;
Две кнопки – завершающая работу и отображающая запрошенную man-страницу. Обратите внимание, что здесь упаковка выполняется по правому краю, т.е. Quit будет самой правой, а Open – чуть левее. Важнейший параметр – command, задает функцию-обработчик. В первом случае используется встроенный метод '''quit''', завершающий работу, во втором – наш метод '''pressBtn'''. Обратите внимание, что здесь происходит не вызов метода, а даётся ссылка на него, т.е. имя указывается без скобок.&lt;br /&gt;
&lt;br /&gt;
 fview = Frame(win)&lt;br /&gt;
 fview.pack(side=BOTTOM, fill=BOTH, expand=YES)&lt;br /&gt;
 sb = Scrollbar(fview)&lt;br /&gt;
 tx = Text(fview, relief=SUNKEN)&lt;br /&gt;
 sb.config(command=tx.yview)&lt;br /&gt;
 tx.config(yscrollcommand=sb.set)&lt;br /&gt;
 sb.pack(side=RIGHT, fill=Y)&lt;br /&gt;
 tx.pack(side=TOP, expand=YES, fill=BOTH)&lt;br /&gt;
&lt;br /&gt;
Во втором фрейме, который мы прикрепляем к нижнему краю и растягиваем во все стороны, заполняя всё доступное пространство, размещается текстовое поле, где мы будем отображать содержимое man-страницы. Поскольку последняя может быть достаточно длинной, понадобится скроллинг (элемент Scrollbar). Обратите внимание на то, как методами '''config()''' мы обеспечиваем взаимную привязку текстового поля и полосы прокрутки. Параметр relief в описании текстового поля задаёт вид рамки вокруг поля.&lt;br /&gt;
&lt;br /&gt;
Настало время поговорить о '''pressBtn'''&amp;lt;nowiki&amp;gt;. Как вы видели, этот метод будет выполняться в двух случаях – по щелчку на кнопке Open и при нажатии [Enter] в поле ввода. Получив цифру раздела справки и очистив текущее содержимое поля &amp;lt;/nowiki&amp;gt;'''tx''' от начала ('''1,0''') до конца (END), вызываем метод '''getman()''' и вставляем результат в '''tx'''.&lt;br /&gt;
&lt;br /&gt;
 win.mainloop()&lt;br /&gt;
&lt;br /&gt;
Всё выше было просто подготовкой. А вот этой командой мы запускаем наше окно в работу. С этого момента управление передаётся ''Tkinterо''бъекту, и влиять на его поведение можно только с помощью описанных ранее обработчиков событий.&lt;br /&gt;
&lt;br /&gt;
 if __name__ == ‘__main__’:&lt;br /&gt;
 test = ManReader()&lt;br /&gt;
 test.Drawface()&lt;br /&gt;
&lt;br /&gt;
Ну, это должно быть понятно – если скрипт запускается автономно, а не экспортируется в другой, то создаём объект нашего класса и запускаем его в работу.&lt;br /&gt;
&lt;br /&gt;
Фух… Кажется, мы сделали это. Результат наших трудов можно наблюдать на рисунке (Рисунок 1). Как видите, «виджеты» имеют свой уникальный дизайн и будут резко выделяться на фоне остального интерфейса, внешний вид которого вы с такой любовью выбирали среди десятков различных стилей. Но это работает (причём одинаково) и в KDE, и в Gnome, и даже в Windows и Mac OS X.&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы разобрались с основами, самое время перейти к «родным» для Linux-окружения средствам – ''PyQt ''и ''PyGTK''. Прежде чем приступать к работе, проверьте, есть ли в вашей системе нужные модули.&lt;br /&gt;
&lt;br /&gt;
=== Пара слов про PyGTK ===&lt;br /&gt;
[[Изображение:Img_80_98_2.jpg|thumb|400px|Рисунок 1. Tkinter – лучший способ сделать не так, как у других!]]&lt;br /&gt;
&lt;br /&gt;
Мощь библиотеки ''GTK ''позволяет создавать таких «гигантов графики», как ''Gimp''. Отрадно, что мы можем в значительной степени воспользоваться её возможностями и в сценариях ''Python''. В каталоге '''&amp;lt;nowiki&amp;gt;/usr/share/doc/pygtk&amp;lt;версия&amp;gt;/examples&amp;lt;/nowiki&amp;gt;''' вы найдёте массу примеров её использования. Здесь приведём простейший вариант:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 #!/usr/bin/Python&lt;br /&gt;
 # -*- coding: utf-8 -*-&lt;br /&gt;
 import gtk&lt;br /&gt;
 # Создаём основное окно&lt;br /&gt;
 win = gtk.Window()&lt;br /&gt;
 def main():&lt;br /&gt;
 # Задаём параметры окна (размер, заголовок и т.д.)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 win.set_default_size(300, 50)&lt;br /&gt;
 win.set_border_width(10)&lt;br /&gt;
 win.connect(‘destroy’, gtk.main_quit)&lt;br /&gt;
 win.set_title(‘Небольшой пример’)&lt;br /&gt;
 txtvar = 'Библиотека ''GTK ''привносит в ''Python ''небывалую мощь и высокий уровень интеграции в среду Gnome.'&lt;br /&gt;
&lt;br /&gt;
 # Текстовая метка – не забывайте применять метод&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 #- show() к каждому объекту, чтобы он был видимым&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 txt = gtk.Label(txtvar)&lt;br /&gt;
 txt.show()&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Кнопка. На неё «привязываем» завершение работы&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 btn = gtk.Button(‘Закрыть’)&lt;br /&gt;
 btn.connect(‘pressed’, lambda button: gtk.main_quit())&lt;br /&gt;
 btn.show()&lt;br /&gt;
 # объект Window может содержать только один элемент,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 #- так что им будет HBox, который служит контейнером для остальных&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 box = gtk.HBox()&lt;br /&gt;
 box.pack_start(txt)&lt;br /&gt;
 box.pack_start(btn)&lt;br /&gt;
 win.add(box)&lt;br /&gt;
 box.show()&lt;br /&gt;
 win.show()&lt;br /&gt;
&lt;br /&gt;
 gtk.main()&lt;br /&gt;
 main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_98_1.jpg|thumb|400px|Рисунок 2. Именно так вы и должны представлять себе GTK-&lt;br /&gt;
приложение.]]&lt;br /&gt;
&lt;br /&gt;
=== Фанатам KDE посвящается ===&lt;br /&gt;
Если для вас Linux не мыслим без KDE, то ''PyQt ''– как раз тот инструмент, который способен обеспечить «бесшовную» интеграцию ваших ''Pythonс''ценариев с окружением рабочего стола. (Впрочем, ''Qt ''работает не только в Linux, так что ваши решения по-прежнему сохранят определённый уровень переносимости.) К тому же, для разработки интерфейса к вашим услугам ''Qt Designer''. А создадим мы программу для просмотра запущенных в системе процессов. Итак, в путь!&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_99_1.jpg|thumb|400px|Рисунок 3. Мышкой влево, мышкой вправо – а зачем вам&lt;br /&gt;
вообще клавиатура?]]&lt;br /&gt;
&lt;br /&gt;
=== Делай «РАЗ»! ===&lt;br /&gt;
Первым делом, запустите Qt Designer и откройте новый проект типа Widget. Для кнопки создайте соединение с формой (Connect Signal/ Slots) и объявите новый слот, назвав его showPs. В дальнейшем это будет наш обработчик нажатия кнопки. Сохранив интерфейс (Рисунок 3) под именем psview.ui, нужно конвертировать его в ''Python''-код:&lt;br /&gt;
&lt;br /&gt;
 $ pyuic psview.ui &amp;gt; psview.py&lt;br /&gt;
&lt;br /&gt;
Теперь в '''psview.py''' описан класс, отвечающий за наш интерфейс. Если вы посмотрите на него, то увидите, что всё не намного сложнее, чем в ''Tkinter'', так что при желании интерфейс можно создать и вручную.&lt;br /&gt;
&lt;br /&gt;
=== Делай «ДВА»! ===&lt;br /&gt;
Далее, нам нужно довести всё это до ума. Непосредственное редактирование созданного сценария – самое плохое решение, поскольку вы лишитесь возможности корректировать интерфейс в ''Qt Designer'', т.к. все изменения при этом будут потеряны. Поэтому правильно будет оставить psview.py в неприкосновенном виде, а для работы описать ещё один класс на базе созданного, пользуясь возможностями наследования. Просто создать экземпляр класса Form1 тоже не совсем хорошо – ведь нам нужно будет изменить поведение класса, отредактировав обработчик нажатия кнопки. Полученный код с переопределённой функциейобработчиком будет выглядеть так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/Python&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# -*- coding: utf-8 -*import os, sys&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Импортируем модуль, созданный автоматически&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 from psview import *&lt;br /&gt;
 class PsForm(Form1): # наследуем от Form1&lt;br /&gt;
 def __init__(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Помните, что при наследовании инициализацию&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- родительского класса нужно делать вручную?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Form1.__init__(self)&lt;br /&gt;
 def showPs(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Формируем нужные ключи команды ps&lt;br /&gt;
 if self.radioButton1.isChecked():&lt;br /&gt;
 all = ‘a’&lt;br /&gt;
 else:&lt;br /&gt;
 all = ‘’&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Выводимые поля описываются после ключа «o»&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- Очень важно не допускать пробелов!&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 fields = ‘o’&lt;br /&gt;
 if self.checkBox1.isChecked():&lt;br /&gt;
 fields += ‘pid,’&lt;br /&gt;
 if self.checkBox2.isChecked():&lt;br /&gt;
 fields += ‘user,’&lt;br /&gt;
 if self.checkBox3.isChecked():&lt;br /&gt;
 fields += ‘stat,’&lt;br /&gt;
 if self.checkBox4.isChecked():&lt;br /&gt;
 fields += ‘command,’&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;fields = fields[:-1] # &amp;lt;/nowiki&amp;gt;последнюю запятую – долой!&lt;br /&gt;
 filter = self.lineEdit1.text()&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Если есть фильтр, то заголовок придётся забирать&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- отдельной командой (head – чтобы не выводить лишнее)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 if filter:&lt;br /&gt;
 cmd = ‘ps %sx%s | grep %s | grep -v grep’ % (all, fields,&lt;br /&gt;
 filter)&lt;br /&gt;
 head = os.popen(‘ps %s | head’ % fields).readline()&lt;br /&gt;
 body = os.popen(cmd).read()&lt;br /&gt;
 else:&lt;br /&gt;
 cmd = ‘ps %sx%s’ % (all, fields)&lt;br /&gt;
 pspipe = os.popen(cmd)&lt;br /&gt;
 head = pspipe.readline() # первая строка&lt;br /&gt;
 body = pspipe.read() # всё остальное&lt;br /&gt;
 pspipe.close()&lt;br /&gt;
 self.tl_header.setText(head)&lt;br /&gt;
 self.te_body.setText(body)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Создаём объект-приложение&lt;br /&gt;
 app = QApplication(sys.argv)&lt;br /&gt;
 form = PsForm()&lt;br /&gt;
 app.setMainWidget(form)&lt;br /&gt;
 form.show()&lt;br /&gt;
 app.exec_loop()&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img_80_99_2.jpg|thumb|400px|Рисунок 4. Ну, нравится мне стиль Redmond – ничего с собой&lt;br /&gt;
поделать не могу…]]&lt;br /&gt;
&lt;br /&gt;
Небольшое пояснение: чтобы при прокрутке заголовок был всегда на виду, мы вынесли его в отдельную текстовую метку '''(tl_header)'''. Поскольку при использовании ''grep ''заголовок теряется, придётся приложить чуточку усилий, чтобы всё-таки обеспечить его вывод (см. фрагмент «'''if filter – else'''»).&lt;br /&gt;
&lt;br /&gt;
=== Делай «ТРИ»! ===&lt;br /&gt;
&lt;br /&gt;
Всё! Можно запускать нашу оболочку, не забыв сделать скрипт исполняемым (Рисунок 4). Конечно, это не верх совершенства – из множества доступных полей поддерживаются только четыре, нет проверки выражения фильтра на безопасность (а что, если пользователь введёт '''«root; rm -Rf /»'''?). Впрочем, это беда любого графического интерфейса – неизбежная потеря функциональности и гибкости в угоду сомнительным удобствам. Тем не менее, наша задача была всё-таки в другом – показать пример разработки ГИП, с чем мы успешно справились.&lt;br /&gt;
&lt;br /&gt;
Как видите, изложенное сегодня – всего лишь основа. Но, надеюсь, этого будет достаточно, чтобы приступить к быстрой и эффективной разработке графических интерфейсов. На этом мы завершаем «Уроки P''ython''», но не прощаемся – со следующего номера начинается серия «''Python ''для профессионалов», где мы поговорим о многопоточных приложениях, обработке сетевых протоколов, взаимодействии с СУБД и библиотеке ''Python Image Library''.&lt;/div&gt;</summary>
		<author><name>Loki</name></author>	</entry>

	</feed>