Чтобы собрать модуль для rtmp-стриминга, нужно собственно:
Подготовить все необходимое:
Подготовить все необходимое:
- установим необходимые для сборки пакеты:
$ sudo apt-get update $ sudo apt-get install build-essential $ sudo apt-get build-dep nginx - создадим где-нибудь в домашнем каталоге «сборочный» каталог и «перейдём» в него:
$ mkdir -p ~/sborka/nginx $ cd ~/sborka/nginx - скачаем и распакуем исходники дистрибутивного пакета nginx:
$ apt-get source nginx - помимо нескольких необходимых файлов появился и каталог с исходниками пакета —
nginx-номер.версии - в каталоге
debian/modulesхранятся каталоги с исходниками модулей, которые собираются в одно целое с программойnginx. туда и скачаем исходники дополнительного модуля, в каталог (к примеру)debian/modules/nginx-rtmp-module(т.к. нам не нужна вся история из репозитория, добавим опцию--depth 1):
«перейдём» в каталог:$ wget https://github.com/arut/nginx-rtmp-module/archive/master.zip $ unzip master.zip $ mv nginx-rtmp-module-master nginx-1.10.0/debian/modules/nginx-rtmp-module$ cd nginx-номер.версии - теперь самое «сложное» — надо добавить опцию
--add-module=путь/к/модулюв «правильном» месте, чтобы она была передана скриптуconfigureпри сборке пакета.делается это в файлеdebian/rules. это «обыкновенный»makefile, но «особого,debian-овского назначения». тут два варианта:- в более старых версиях пакета надо использовать переменную
CONFIGURE_OPTS. если есть её упоминания, то добавьте где-нибудь в начале файла строку:CONFIGURE_OPTS = --add-module=$(MODULESDIR)/nginx-rtmp-module - в более новых есть переменная
common_configure_flags. найдите строки вида:common_configure_flags := \ --with-cc-opt="$(debian_cflags)" \ ... --with-http_realip_module \и после последней добавьте нужную строку, чтобы выглядело примерно так (не забудьте про обратный слэш в конце строки и не удаляйте следующую пустую строку):common_configure_flags := \ --with-cc-opt="$(debian_cflags)" \ ... --with-http_realip_module \ --add-module=$(MODULESDIR)/nginx-rtmp-module \ --with-http_auth_request_module
- Добавляем файлы для отображения статистики rtmp-стриминга. Открываем файл
debian/nginx-common.installи в самый низ добавляемhtml/50x.html var/www/html debian/modules/nginx-rtmp-module/test/www/* var/www/html debian/modules/nginx-rtmp-module/stat.xsl var/www/html - теперь можно собирать пакет (точнее, их соберётся несколько разных):
$ dpkg-buildpackage -b -us -uc
если последняя команда завершилась успешно (строкой типа
dpkg-buildpackage: binary only upload (no source included)), то пакеты — собрались.файлы с ними лежат на каталог выше текущего, т.е. непосредственно в нашем «сборочном» каталоге
~/sborka/nginx. там присутствуют файлы, включающие в названии буквы dbg — это пакеты с отладочной информацией, они обычно не нужны.
нужен как минимум пакет из файла
nginx-common_версия.и.другие.буквы.deb и один из пакетов, начинающихся с: nginx-core (базовая функциональность, «умолчальная» версия) или nginx-light («облегчённая» версия) или nginx-full («навороченная» версия).
для начала удалите установленную версию
nginx (если есть):$ sudo apt-get remove 'nginx-*'
и поставьте собранные пакеты из файлов:
$ sudo dpkg -i ~/sborka/nginx/nginx-common_*.deb ~/sborka/nginx/nginx-core_*.deb
если в выводе команды появятся упоминания про неудовлетворённые зависимости, установите их, выполнив:
$ sudo apt-get -f install
теперь можно проверить, присутствует ли упоминание про тот модуль, который вы добавляли (пример был про
rtmp, эту строку и ищем):
$ /usr/sbin/nginx -V |& sed 's/ /\n/g' | grep rtmp
--add-module=/home/.../sborka/nginx/nginx-версия/debian/modules/nginx-rtmp-module
Комментариев нет:
Отправить комментарий