MP3-сервер своими /dev/hands

Xakep, номер #042, стр. 042-052-2


(здесь опишу поподробнее, чтобы ты не запутался). В моем примере это:

cp -r /home/root/files/mod_mp3-0.35/src/ /home/root/files/apache_1.3.19rusPL30.4/src/modules/mp3

2) Копируем Makefile.STATIC как Makefile в /путь/к/сырцам/апача/src/modules/mp3:

cp /home/root/files/mod_mp3-0.35/Makefile.STATIC /home/root/files/apache_1.3.19rusPL30.4/src/modules/mp3/Makefile

Теперь немного подправим Makefile:

строку APXS=apxs меняем на APXS=/opt/apache/bin/apxs

и заменяем libmodmp3.a на libmp3.a везде, где встретишь в этом файле (их там две записи).

Сохраняемся, переходим снова в каталог с сырцами индейца и добавляем параметры:

./configure --prefix=/opt/apache --enable-module=so --enable-module=rewrite --enable-module=proxy --activate-module=src/modules/mp3/libmp3.a --enable-shared=mp3

Ты должен увидеть следующее:

Configuring for Apache, Version 1.3.19

+ using installation path layout: Apache (config.layout)

+ activated mp3 module (modules/mp3/libmp3.a)

Creating Makefile

---skipped---

Тем самым мы добавили наш модуль и сказали, что его нужно собирать динамически. Далее удаляем бинарики из каталога с исходниками Apache:

make clean

И заново ставим индейца:

make

make install

После установки копируем файл mod_mp3.so из /путь/к/сырцам/апача/src/modules/mp3

в /opt/apache/libexec:

cp /home/root/files/apache_1.3.19rusPL30.4/src/modules/mp3/mod_mp3.so /opt/apache/libexec/

Разбор вертолетов

После нелегкой работы напильником =) настала очередь ковырять главный конфигурационный файл Apache - httpd.conf. Полное описание процесса конфигурирования индейца выходит за рамки этой статьи, поэтому остановлюсь только на особо интересующих нас вопросах.

Сначала нам необходимо подключить свежеиспеченный объектный файл и добавить его имя к списку активных модулей, для это ищем строку:

#Dynamic Shared Object (DSO) Support

И после комментариев прописываем:

LoadModule mp3_module libexec/mod_mp3.so

Модули - гибкое и одновременно мощное средство, позволяющее администратору web-сервера при необходимости добавлять/удалять функциональные возможности без повторной компиляции сервера Apache. Для манипулирования модулями существуют специальные три директивы: LoadModule - позволяет связать объектный файл с именем модуля, AddModule - позволяет указать, какие модули будут подгружены при запуске сервера, и ClearModuleList - используется для очистки списка загруженных модулей.

Создаем группу директив, которые будут выполняться при загрузке нашего музыкального модуля:

<IfModule mod_mp3.c>

#указываем порты

Listen 80

Listen 8000

<VirtualHost mp3.midian.net:8000> #колбасим виртуальный хост

ServerName mp3.midian.net #задаем имя нашего сервера

ServerAdmin mp3@mp3.midian.net #вносим e-mail админа

MP3Engine On # включаем то, ради чего мы все это затеяли

MP3CastName "MP3Server" #описание сервера

MP3Genre "Metal" #описание стиля музыки

MP3 /opt/apache/www/mp3 #дира с нашими mp3/ogg

MP3Allow *.mp3 #обращаем внимание только на mp3

Timeout 1200 #выставляем тайм-аут

Назад на стр. 042-052-1  Содержание  Вперед на стр. 042-052-3