суббота, 30 апреля 2016 г.

Сборка nginx-rtmp

Чтобы собрать модуль для rtmp-стриминга, нужно собственно:
Подготовить все необходимое:
  1. установим необходимые для сборки пакеты:
    
    $ sudo apt-get update
    $ sudo apt-get install build-essential
    $ sudo apt-get build-dep nginx
    
  2. создадим где-нибудь в домашнем каталоге «сборочный» каталог и «перейдём» в него:
    
    $ mkdir -p ~/sborka/nginx
    $ cd ~/sborka/nginx
    
  3. скачаем и распакуем исходники дистрибутивного пакета nginx:
    
    $ apt-get source nginx
    
  4. помимо нескольких необходимых файлов появился и каталог с исходниками пакета — nginx-номер.версии
  5. в каталоге 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-номер.версии
    
  6. теперь самое «сложное» — надо добавить опцию --add-module=путь/к/модулю в «правильном» месте, чтобы она была передана скрипту configure при сборке пакета.
    делается это в файле debian/rules. это «обыкновенный» makefile, но «особого,debian-овского назначения». тут два варианта:
    1. в более старых версиях пакета надо использовать переменную CONFIGURE_OPTS. если есть её упоминания, то добавьте где-нибудь в начале файла строку:
      
      CONFIGURE_OPTS = --add-module=$(MODULESDIR)/nginx-rtmp-module
      
    2. в более новых есть переменная 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
      
  7. Добавляем файлы для отображения статистики 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
    
  8. теперь можно собирать пакет (точнее, их соберётся несколько разных):
    
    $ 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

среда, 5 декабря 2012 г.

установка Nginx

 Прежде нужно сделать
nano /etc/apt/sources.list.d/nginx.list
deb http://ftp.debian.org.ua/debian-dou/ wheezy main
выполняешь
wget -q -O - http://ftp.debian.org.ua/debian-dou/archive.key | sudo apt-key add -
всё. репозиторий с dou подключен.
aptitude search ^nginx
вот nginx-plus это сборка с dou. именно её категорически рекомендую ;)

http://howitmake.ru/blog/debian/62.html
 

Сборки wine ч2

$ wget http://dev.carbon-project.org/debian/wine-unstable/wine-unstable_1.3.28.orig.tar.bz2
$ wget http://dev.carbon-project.org/debian/wine-unstable/wine-unstable_1.3.28-0.1.debian.tar.bz2
$ tar xjf wine-unstable_1.3.28.orig.tar.bz2
$ tar xjf wine-unstable_1.3.28-0.1.debian.tar.bz2
$ mv debian wine-1.3.28
$ cd wine-1.3.28
$ dpkg-buildpackage
$ sudo dpkg -i ../*.deb
 aptitude install lib32nss-mdns

Cборки wine

 ### Эти шаги выполнять от рута. Они устанавливают все необходимые зависимости для успешной сборки пакета
# aptitude install module-assistant
# m-a prepare
# aptitude install flex bison libxext-dev libxi-dev libxrandr-dev libxrender-dev libxt-dev libxxf86dga-dev libxxf86vm-dev \
libxinerama-dev libxcomposite-dev libgl1-mesa-dev libxmu-dev libxcursor-dev libcups2-dev libjpeg-dev libfreetype6-dev \
libfontconfig1-dev libopenal-dev libasound2-dev oss4-dev libsane-dev libusb-dev libgsm1-dev libmpg123-dev libcapi20-dev \
libhal-dev libdbus-1-dev libgphoto2-2-dev liblcms1-dev libxml2-dev libxslt1-dev unixodbc-dev prelink lzma ia32-libs-dev \
lib32z1-dev libgstreamer-plugins-base0.10-dev lib32v4l-dev lib32ncurses5-dev lib32asound2-dev libglu1-mesa-dev freeglut3-dev
 ### Последующие шаги следует выполнять от обычного пользователя:
 $ wget http://dev.carbon-project.org/debian/wine-unstable/wine-unstable_1.3.27.orig.tar.bz2
$ tar xjf wine-unstable_1.3.27.orig.tar.bz2
$ cd wine-1.3.27
$ wget http://dev.carbon-project.org/debian/wine-unstable/wine-unstable_1.3.27-0.1.debian.tar.bz2
$ tar xjf wine-unstable_1.3.27-0.1.debian.tar.bz2
$ rm wine-unstable_1.3.27-0.1.debian.tar.bz2
$ dpkg-buildpackage -rfakeroot
 ### тут будет долго компилиться и в итоге получится куча замечательных пакетов пригодных для установки, который не будет вызывать никаких побочных эффектов, которые могут появляться при использовании вышерекомендованного checkinstall\'a



DLE + Nginx

Настраиваем виртуал хост
nano /etc/nginx/sites-available/site.com
server {
        listen   80;
        root /home/www/site.com;
     
        access_log  /home/www/logs/site.com.access.log; #расположение логов данного хоста
        error_log  /home/www/logs/site.com.error.log;

        server_name site.com www.site.com;
include nginx_dle.conf;
include /etc/nginx/common/php;
}
}
Создаем файл
nano include /etc/nginx/common/php
        location / {
                index index.php index.html index.htm;
        }

        location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
       }
Создаем файл  nginx_dle.conf
 nano /etc/nginx/nginx_dle.conf

rewrite ^/donate /index.php?do=donate break;
rewrite ^/faq/*$ /index.php?do=faq;



rewrite ^/page/(.*)$ /index.php?cstart=$1;

rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)/page,([0-9]+),([0-9]+),(.*).html*$ /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6;
rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)/page,([0-9]+),(.*).html*$ /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5;
rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)/print:page,([0-9]+),(.*).html*$ /engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5;
rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)/(.*).html*$ /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4;

rewrite ^/([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)$ /index.php?newsid=$4&news_page=$2&cstart=$3;
rewrite ^/([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)$ /index.php?newsid=$3&news_page=$2;
rewrite ^/([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)$ /engine/print.php?news_page=$2&newsid=$3;
rewrite ^/([^.]+)/([0-9]+)-(.*).html(/?)$ /index.php?newsid=$2;

rewrite ^/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ /index.php?newsid=$3&news_page=$1&cstart=$2;
rewrite ^/page,([0-9]+),([0-9]+)-(.*).html(/?)+$ /index.php?newsid=$2&news_page=$1;
rewrite ^/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ /engine/print.php?news_page=$1&newsid=$2;
rewrite ^/([0-9]+)-(.*).html(/?)+$ /index.php?newsid=$1;

rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)/page/([0-9]+)(.*)$ /index.php?year=$1&month=$2&day=$3&cstart=$4;
rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)(.*)$ /index.php?year=$1&month=$2&day=$3;

rewrite ^/([0-9]+)/([0-9]+)/page/([0-9]+)(.*)$ /index.php?year=$1&month=$2&cstart=$3;
rewrite ^/([0-9]+)/([0-9]+)(.*)$ /index.php?year=$1&month=$2;

rewrite ^/([0-9]+)/page/([0-9]+)(.*)$ /index.php?year=$1&cstart=$2;
rewrite ^/([0-9]+)(.*)$ /index.php?year=$1;

rewrite ^/catalog/([^/]*)/page/([0-9]+)(.*)$ /index.php?catalog=$1&cstart=$2;
rewrite ^/catalog/([^/]*)(.*)$ /index.php?catalog=$1;

rewrite ^/newposts/page/([0-9]+)(.*)$ /index.php?subaction=newposts&cstart=$1;
rewrite ^/newposts(.*)$ /index.php?subaction=newposts;

rewrite ^/static/(.*).html(.*)$ /index.php?do=static&page=$1;

rewrite ^/user/([^/]*)/news/page/([0-9]+)(.*)$ /index.php?subaction=allnews&user=$1&cstart=$2;
rewrite ^/user/([^/]*)/news(.*)$ /index.php?subaction=allnews&user=$1;
rewrite ^/user/([^/]*)(.*)$ /index.php?subaction=userinfo&user=$1;
rewrite ^/favorites /index.php?do=favorites;
rewrite ^/favorites/page/(.*)$ /index.php?do=favorites&cstart=$1;
rewrite ^/statistics.html$ /index.php?do=stats;
rewrite ^/addnews.html(.*)$ /index.php?do=addnews;
rewrite ^/rss.xml$ /engine/rss.php;
rewrite ^/sitemap.xml$ uploads/sitemap.xml;
if (!-d $request_filename) {
rewrite ^/([^.]+)/page/([0-9]+)(.*)$ /index.php?do=cat&category=$1&cstart=$2;
rewrite ^/([^.]+)/*$ /index.php?do=cat&category=$1;     
 }
if (!-f $request_filename) {
rewrite ^/([^<]+)/rss.xml$ /engine/rss.php?do=cat&category=$1;
rewrite ^/page,([0-9]+),([^/]+).html$ /index.php?do=static&page=$2&news_page=$1;
rewrite ^/([^/]+).html$ /index.php?do=static&page=$1;
}

 /etc/init.d/nginx-plus restart