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