OS |
---|
Ubuntu Server LTS 64bit (recommended) 1) |
Примерно на 5000 подписчиков
Middlware Server with Stalker Middleware portal | |
---|---|
CPU | 2×Xeon5620 |
RAM | 16Gb |
HDD | 2×500Gb RAID-1 (soft or hard) |
Content Storage | |
---|---|
CPU | 2×Xeon5620 |
RAM | 16Gb |
HDD | System - 2×500Gb RAID-1, Content - 10×2Tb Hdw-RAID-5 (~200 simultaneous views) |
Приложение может работать под любой *nix системой, однако настоятельно рекомендуем использовать последние стабильные 64 bit дистрибутивы Ubuntu Server LTS. Работа под другими дистрибутивами не гарантируется, либо часть функций middleware может быть не доступна.
''apache2'' ''nginx'' ''nginx-extras'' ''memcached'' ''mysqld'' >= 5 ''php5'' >= 5.3.0 ''php5-mysql'' <fc #FF0000>*</fc> ''php-pear'' ''php-soap'' <fc #FF0000>*</fc> ''php5-intl'' <fc #FF0000>*</fc> ''php-gettext'' <fc #FF0000>*</fc> ''php5-memcache'' <fc #FF0000>*</fc> ''phing'' (для версии >= 4.8.0) - см. Установка **phing**<fc #FF0000>*</fc><fc #FF0000>*</fc> ''upstart'' (для stalkerd - управление PVR) ''apache2-rewrite'' ''php5-curl'' <fc #FF0000>*</fc> ''php5-tidy'' <fc #FF0000>*</fc> ''php5-imagick'' <fc #FF0000>*</fc> ''php5-geoip'' <fc #FF0000>*</fc> ''php5-mcrypt'' <fc #FF0000>*</fc>
* начиная с версии 4.8.35 ставятся автоматически при выполнении phing**.
** - установка phing:
pear channel-discover pear.phing.info pear install phing/phing
Пример установки всех необходимых служб и пакетов одной командой для Ubuntu Server 14.04.3:
sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get install -y -u apache2 nginx nginx-extras memcached mysql-server php5 php5-mysql php-pear nodejs upstart && sudo pear channel-discover pear.phing.info && sudo pear install -Z phing/phing
/var/www/
. Файлы проекта должны быть доступны по URL http://<you_ip_or_domain_name>/stalker_portal/
;stalker_portal
:GRANT ALL PRIVILEGES ON stalker_db.* TO stalker@localhost IDENTIFIED BY '1' WITH GRANT OPTION;
/var/www/stalker_portal/server/custom.ini
и добавить в него отличающиеся от config.ini
пункты настроек.custom.ini
и добавьте в него необходимую
конфигурацию.custom.ini
со следующими строками:[database] mysql_host = 10.128.1.3 mysql_pass = superpass
/var/www/stalker_portal/deploy/
и выполнить:sudo phing
http://<your_ip_or_domain_name>/stalker_portal/
.
Доступ в Админ-интерфейс по умолчанию:
логин: admin
пароль: 1.
Рекомендуемый браузер для админ-интерфейса: - Mozilla Firefox, Google Chrome.
При необходимости пароль можно изменить в MySQL:
update administrators set pass=MD5('новый пароль') where login='admin'
http://<your_ip_or_domain_name>/stalker_portal/c/index.html
.
В STB, URL клиентской часть портала устанавливается в - Системные настройки ⇒ Серверы ⇒ (Портал1 и/или Портал2). Переменные окружения - portal1
, portal2
.
/etc/mysql/my.cnf
max_allowed_packet = 32M
/etc/php5/apache2/php.ini
short_open_tag = On
config.ini
и custom.ini
установлены правильные значения daemon_api_url
и stalker_api_url
mod_rewrite
:Внимание!Если в системе установлен пакет libapache2-mod-php5filter, необходимо удалить его.
sudo a2enmod rewrite
Options -Indexes -MultiViews AllowOverride All
/etc/apache2/ports.conf
установить:NameVirtualHost *:88 Listen 88
/etc/apache2/sites-enabled/default.conf
исправить <VirtualHost *:80>
на <VirtualHost *:88>
apache
.Пример конфигурации:
server { listen 80; server_name localhost; location / { proxy_pass http://127.0.0.1:88/; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; } location ~* \.(htm|html|jpeg|jpg|gif|png|css|js)$ { root /var/www; expires 30d; } }
stalker_portal-old
. custom.ini
из предыдущей версии в новую;/var/www/stalker_portal/screenshots/
из предыдущей версии в новую;stalker_portal/misc/logos/
(кроме dummy.png
) из предыдущей версии в новую;/var/www/stalker_portal/deploy/
и выполнить:sudo phing
Интерфейс Middleware Stalker использует две локали RU
, EN
.
По умолчанию Stalker вычитывает переменную текущей локализации из основного ПО и устанавливает локализацию интерфейса согласно этой переменной.
Для установки локализации портала Stalker по умолчанию необходимо:
custom.ini
в каталоге .../stalker_portal/server/
custom.ini
секцию [Locales]
из файла ...//stalker_portal/server/config.ini
custom.ini
Примерное содержание custom.ini
:
[locales] default_locale = en_GB.utf8 ;allowed_locales[Русский] = ru_RU.utf8 allowed_locales[English] = en_GB.utf8
Таким образом портал «Stalker» загрузится с английским интерфейсом независимо от локали внутреннего ПО.
Внимание!Название локалей используемых в Middleware и названия системных локалей на сервере - должны совпадать
Для корректного переключение локализации в админ интерфейсе в системе должны быть установлены локали en_GB.utf8
и ru_RU.utf8
.
apache2
php5
>= 5.3.0php5-soap
python-argparse
(для записей ТВ)nginx
(для ТВ архива, записей или VOD по HTTP)/stalker_portal/storage/
в /var/www/stalker_portal/storage/
;/var/www/stalker_portal/storage/
и выполнить;chmod a+x install.sh ./install.sh
/var/www/stalker_portal/storage/config.php
и привести к виду:
Примерное содержание файла /var/www/stalker_portal/storage/config.php
:
define('VIDEO_STORAGE_DIR', '/media/raid0/storage/'); define('KARAOKE_STORAGE_DIR', '/media/raid0/karaoke/'); define('RECORDS_DIR', '/media/raid0/records/'); define('NFS_HOME_PATH', '/media/raid0/mac/'); // Use login and password from the configuration file. (api_auth_login and api_auth_password in server/custom.ini) define('API_URL', 'http://login:password@192.168.1.71/stalker_portal/api/'); define('PORTAL_URL', 'http://192.168.1.71/stalker_portal/'); define('STORAGE_NAME', 'bb3');
где:
VIDEO_STORAGE_DIR
- каталог хранения файлов видеоклуба;
KARAOKE_STORAGE_DIR
- каталог хранения файлов караоке;
RECORDS_DIR
- каталог хранения файлов записей PVR и «ТВ Архива»« см. Настройка "ТВ Архива";
NFS_HOME_PATH
- домашняя директория приставок;
API_URL
- адрес API портала. URL, по которому будут происходить обращения к API портала;
PORTAL_URL
- адрес портала. К нему будет обращаться хранилище для проверки ключей доступа к архиву. Например, http://<portal ip or domaшne name>/stalker_portal/
STORAGE_NAME
- имя хранилища.
/media/raid0/storage/, /media/raid0/karaoke/, /media/raid0/records/, /media/raid0/mac/
и установить на них все права 0777
.sudo mkdir -p -m 0777 /media/raid0/storage /media/raid0/karaoke /media/raid0/records /media/raid0/mac
/var/www/media/
sudo mkdir /var/www/media
/var/www/media/
символьную ссылку на домашние директории приставок:ln -s /media/raid0/mac/ /var/www/media/<имя хранилища>
bb3
;/media/raid0/mac/
/etc/apache2/ports.conf
установить:NameVirtualHost *:88 Listen 88
/etc/apache2/sites-enabled/default.conf
изменить <VirtualHost *:80>
на <VirtualHost *:88>
TimeOut 1800
libapache2-mod-php5filter
. При необходимости удалить его.Пример конфигурации:
server { listen 80; server_name localhost; location / { proxy_pass http://127.0.0.1:88/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location ~* \.(mpg|mpeg|avi|ts|mkv|mp4|mov|m2ts|flv|m4v|srt|sub|ass)$ { secure_link $arg_st,$arg_e; secure_link_md5 "supersecret$uri$remote_addr$arg_e"; # you can change secret "supersecret" in the portal config - nginx_secure_link_secret if ($secure_link = "") { return 403; } if ($secure_link = "0") { return 410; } send_timeout 6h; root /var/www/; } }
dumprtp 239.1.1.1 1234 > dump239.1.1.1.ts
где:
Полученный файл проиграть любым доступным плеером (например: VLC).
/var/www/stalker_portal/storage/config.php
необходимо правильно установить RECORDS_DIR
, API_URL
, PORTAL_URL
и STORAGE_NAME
.где:
RECORDS_DIR
- каталог с правами на запись 0777
, в нем необходимо создать каталог archive
, в котором и будут создаваться файлы тв-архива.
API_URL
- адрес API портала по которому будет обращаться процесс, записывающий канал.
API_URL
для ТВ Архива <API URL>/tv_archive/
, должно отобразиться: {«status»:«ERROR»,»results«:null,»error«:«Empty storage name»}
. Если отображается ошибка 404 Not Found, то, возможно, неправильно сконфигурирован apache и mod_rewrite. Внимание! /tv_archive
- виртуальный каталог, создавать вручную его не нужно
PORTAL_URL
- адрес портала. К нему будет обращаться хранилище для проверки ключей доступа к архиву. Например, http://<portal ip or domaшne name>/stalker_portal/
STORAGE_NAME
- имя хранилища, указанное в админ интерфейсе.
Примерное содержание файла /var/www/stalker_portal/storage/config.php
:
define('VIDEO_STORAGE_DIR', '/media/raid0/storage/'); define('KARAOKE_STORAGE_DIR', '/media/raid0/karaoke/'); define('RECORDS_DIR', '/media/raid0/records/'); define('NFS_HOME_PATH', '/media/raid0/mac/'); // Use login and password from the configuration file. (api_auth_login and api_auth_password in server/custom.ini) define('API_URL', 'http://login:password@192.168.1.71/stalker_portal/api/'); define('PORTAL_URL', 'http://192.168.1.71/stalker_portal/'); define('STORAGE_NAME', 'bb3');
/media/raid0/records/archive/
mkdir -m 0777 /media/raid0/records/archive
web
сервераln -s /media/raid0/records/archive/ /var/www/
TimeOut 1800
В первую очередь необходимо включить модуль rpaf в apache. Это позволит видеть настоящий ip адрес пользователя при работе через nginx и использовать ограничение доступа по IP в конфигурационных файлах apache.
sudo apt-get install libapache2-mod-rpaf
Для более надежной защиты админ интерфейса портала настоятельно рекомендуется открывать к нему доступ только с определенных IP адресов. Это можно сделать в конфигурационном файле apache, в котором описывается хост портала. После изменений требуется перезапуск apache.
<Directory /var/www/stalker_portal/server/administrator/> Order Deny,Allow Deny from All Allow from 192.168.1.0/24 </Directory>
update administrators set pass=MD5('новый пароль') where login='admin'
Настоятельно рекомендуем! для клиентского доступа к порталу использовать авторизацию пользователей по логину и паролю, метод - "Авторизация с ключом"
В custom.ini
добавить след. строку:
disable_third_party_devices = true
Начиная с версии портала 4.8.63 в конфигурационном файле появилась опция default_stb_status, которая позволяет закрыть доступ к порталу для всех новых приставок.
Для того чтобы новые приставки по умолчанию были отключены, надо добавить в server/custom.ini
:
default_stb_status = 0
Для старых версий в базе MySQL необходимо выполнить:
ALTER TABLE `users` MODIFY `status` tinyint DEFAULT 1;
При этом все приставки первый раз загрузившие портал будут в админ интерфейсе со статусом OFF.
Организация доступа в портал для новых приставок по логину и паролю. Администратор портала создает логин/пароль и выдает пользователю. При первом запуске портала появится окно авторизации с полями для ввода логина и пароля. После успешной авторизации к логину в портале привязывается MAC адрес приставки. Последующие загрузки портала происходят без необходимости авторизации.
Для этого необходимо:
custom.ini
добавить строку auth_url = http://localhost/stalker_portal/server/tools/auth_simple.php
Организация доступа в портал по логину и паролю. Администратор портала создает логин/пароль и выдает пользователю. При первом запуске портала появится окно авторизации с полями для ввода логина и пароля. После успешной авторизации на основании логина и пароля генерируется ключ доступа. Ключ хранится на STB. При последующих загрузках портала проверяется валидность ключа. При попытке подключить к порталу другую приставку используя этот же логин и пароль, пользователь так же увидит окно авторизации и при успешном вводе логина и пароля новое устройство получает ключ, предыдущее устройство автоматически разлогинивается.
Для этого необходимо:
custom.ini
добавить строку auth_url = http://localhost/stalker_portal/server/tools/auth_every_load.php
При включении/использовании API настоятельно рекомендуется уделять особое внимание БЕЗОПАСНОСТИ.
Рекомендуется использовать:
Если необходимо включение API для работы с внешними биллинговыми системами, то настоятельно рекомендуется использовать авторизацию. При этом в server/custom.ini
необходимо указать логин и пароль
[server_api] ; API required for tv archive, pvr and billing enable_api = true
api_auth_login = login ; указать логин api_auth_password = password ; указать пароль
На хранилищах, на которых ведется запись ТВ архива, в storage/config.php в параметре API_URL нужно указать выбранные логин и пароль в формате:
define('API_URL', 'http://login:password@localhost/stalker_portal/api/tv_archive/');
Если используются временные ссылки Wowza для проигрывания тв каналов, то также нужно указать логин и пароль для работы с API в конфиге Wowza приложения. Для случая с nginx и VLC/udpxy ничего не требуется.
Настройка адреса API портала в конфигурационном файле приложения Wowza:
<Property> <Name>stalkerApiServer</Name> <Value>http://login:password@192.168.1.1/stalker_portal/api/</Value> </Property>
Рекомендуется: на сервере с порталом, открыть доступ к 88 порту (Apache) только для локального доступа и доступа с хранилищ, которые работают с использованием временных ссылок.
В скрипте check_channels.sh в API_URL необходимо указать URL с учетом авторизации:
API_URL=http://login:password@localhost/stalker_portal/api/monitoring_links/