|

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
|