ZoneMinder Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
wiki:zoneminder [2013/09/30 15:39]
создано
wiki:zoneminder [2016/10/18 10:30] (текущий)
Строка 1: Строка 1:
-====== ​Zoneminder ​ ​====== +====== ​ZoneMinder ​ ​====== 
-=====Установка из репозитория Ubuntu=====+ 
 +===== Установка из репозитория Ubuntu ===== 
 <note warning>​При устанвке появляется сообщение о не запущенном процессе Mysql, хотя это не так!</​note>​ <note warning>​При устанвке появляется сообщение о не запущенном процессе Mysql, хотя это не так!</​note>​
 Все необходимые зависимости загрузятся и установятся автоматически:​ Все необходимые зависимости загрузятся и установятся автоматически:​
 <​code>​sudo apt-get install zoneminder</​code>​ <​code>​sudo apt-get install zoneminder</​code>​
-=====Установка из стороннего репозитория===== 
-<​code>​sudo apt-add-repository ppa:​iconnor/​zoneminder 
-sudo apt-get update && sudo apt-get install zoneminder</​code>​ 
-Проблема в том, что при установке этого пакета происходит обращение к неинициализированной базе данных,​ поэтому она будет прерываться с ошибкой 
-<​file>​ 
-Настраивается пакет zoneminder (1.26.3-2) ... 
-Starting ZoneMinder: DBI connect('​database=zm;​host=localhost','​zmuser',​...) failed: Unknown database '​zm'​ at /​usr/​share/​perl/​5.14.2/​ZoneMinder/​Config.pm line 89 
-Can't call method "​prepare_cached"​ on an undefined value at /​usr/​share/​perl/​5.14.2/​ZoneMinder/​Config.pm line 91. 
-BEGIN failed--compilation aborted at /​usr/​share/​perl/​5.14.2/​ZoneMinder/​Config.pm line 100. 
-Compilation failed in require at /​usr/​share/​perl/​5.14.2/​ZoneMinder.pm line 33. 
-BEGIN failed--compilation aborted at /​usr/​share/​perl/​5.14.2/​ZoneMinder.pm line 33. 
-Compilation failed in require at /​usr/​bin/​zmpkg.pl line 37. 
-BEGIN failed--compilation aborted at /​usr/​bin/​zmpkg.pl line 37. 
-failure 
  
-invoke-rc.d:​ initscript zoneminder, action "​start"​ failed. +===== Установка на ubuntu 16.04 из официального репозитория разработчиков ​=====
-dpkg: не удалось обработать параметр zoneminder (--configure):​ +
- ​подпроцесс установлен сценарий post-installation возвратил код ошибки 255 +
-Отчёты apport не записаны, так достигнут MaxReports +
-                                                   ​При ​обработке следующих ​пакетов произошли ошибки: +
- ​zoneminder +
-E: Sub-process /​usr/​bin/​dpkg returned an error code (1)</​file>​ +
-Для начала создаем базу данных:​ +
-<​code>​mysql -uroot -p +
-mysql>​create database zm; +
-mysql>​grant all privileges on zm.* to '​zmuser'​@'​localhost'​ identified by "​zmpass";​ +
-mysql>​\q</​code>​ +
-Запускаем процесс ​исправления прерванной установки: +
-<​code>​sudo apt-get -f install</​code>​ +
-И если таблица создана ​верно, вы увидите новую ошибку:​ +
-<​code>​Can'​t execute: Table '​zm.Config'​ doesn'​t exist at /​usr/​share/​perl/​5.14.2/​ZoneMinder/​Config.pm line 100 +
-BEGIN failed--compilation aborted at /​usr/​share/​perl/​5.14.2/​ZoneMinder/​Config.pm line 100. +
-Compilation failed in require at /​usr/​share/​perl/​5.14.2/​ZoneMinder.pm line 33. +
-BEGIN failed--compilation aborted at /​usr/​share/​perl/​5.14.2/​ZoneMinder.pm line 33. +
-Compilation failed in require at /​usr/​bin/​zmpkg.pl line 37. +
-BEGIN failed--compilation aborted at /​usr/​bin/​zmpkg.pl line 37. +
-failure+
  
-invoke-rc.d:​ initscript zoneminder, action "​start"​ failed. +<code bash>#! /bin/bash
-dpkg: не удалось обработать параметр zoneminder (--configure):​ +
- ​подпроцесс установлен сценарий post-installation возвратил код ошибки 255 +
-При обработке следующих пакетов произошли ошибки:​ +
- ​zoneminder +
-E: Sub-process /​usr/​bin/​dpkg returned an error code (1)</​code>​ +
-Что означает,​ что в базе данных нет нужных таблиц,​ к которым происходит обращение. +
-FIXME +
-=== Пртестируем апач, сделаем тестовый файл === +
-<code bash>sudo vi /var/www/​test.php</​code>​ +
-и запишем в него следующее:​ +
-<code php><?​php phpinfo(); ?></​code>​ +
-Набираем в браузере:​ +
-<​code>​http://​your_ip/​test.php</​code>​ Если все хорошо,​ увидим справку нашего php.+
  
----- +# http://zoneminder.readthedocs.io/en/​latest/​installationguide/​ubuntu.html#​easy-way-ubuntu-16-04
-=== Правим sysctl.conf === +
-Теперь <code bash>​sudo vi /etc/sysctl.conf</​code>​ +
-добавить строку:​ +
-<​file>​kernel.shmmax = 134217728<​/file> +
-Перезагружаем компьютер.+
  
----- +COOKIES_PASSWORD="​qazwsxedc"​
-=== Настраиваем Apache === +
-Можно просто скопировать содержимое +
-/​usr/​share/​zoneminder в /var/www/ +
-и создать заново симлин на cgi +
-<code bash>cd /​var/​www/</​code>​ +
-<code bash>ln -s /​usr/​lib/​cgi-bin/​ ./​cgi-bin</​code>​ +
-==В мане приводятся следующие настройки:​== +
-<​file>​vi /​etc/​apache2/​sites-available/​default +
-найти RedirectMatch ^/$ /​apache2-default/​ +
-заменить на RedirectMatch ^/$ /zm/ +
-Добавить в /​etc/​apache2/​apache2.conf +
-Alias /zm /​usr/​share/​zoneminder +
-<​Directory /​usr/​share/​zoneminder>​ +
-php_flag register_globals off +
-options Indexes FollowSymlinks +
-<​IfModule mod_dir.c>​ +
-DirectoryIndex index.php +
-</​IfModule>​ +
-</​Directory></​file>​+
  
----- +# Настраививаем автоматический ввод пароля для админа mysql. 
-==Для ​Ubuntu 7.04 ==+# http://​stackoverflow.com/​a/​7740571 
-<code bash>​sudo ln -/etc/zm/apache.conf /etc/apache2/conf.d/​zoneminder.conf</code> +echo "mysql-server mysql-server/​root_password password $COOKIES_PASSWORD"​ | debconf-set-selections 
-<code bash>​sudo ​/etc/init.d/apache2 reload</​code>​+echo "​mysql-server mysql-server/​root_password_again password $COOKIES_PASSWORD"​ | debconf-set-selections 
 + 
 +# Устанавливаем лампу (linux, apache, mysql, php) 
 +tasksel install lamp-server 
 + 
 +# Добавляем репу разрабов zoneminder. 
 +add-apt-repository -y ppa:​iconnor/​zoneminder 
 + 
 +# Обновляем индексы,​ чтобы новая репа увиделась. 
 +apt-get update 
 +# 2 раза делаем принудительное обновление всей системы. На всякий случай. 
 +apt-get -y upgrade 
 +apt-get -y dist-upgrade 
 + 
 +# Удаляем конфиг мускуля. 
 +rm /​etc/​mysql/​my.cnf 
 +# Копируем новый конфиг:​ 
 +cp /​etc/​mysql/​mysql.conf.d/​mysqld.cnf /​etc/​mysql/​my.cnf 
 + 
 +# Добавляем строку "​sql_mode ​NO_ENGINE_SUBSTITUTION"​ в раздел "​[mysqld]"​ в конфиге /​etc/​mysql/​my.cnf. 
 +sed -i '​s/​\[mysqld\]/​\[mysqld\]\nsql_mode ​NO_ENGINE_SUBSTITUTION/'​ /​etc/​mysql/​my.cnf 
 + 
 +# Рестартим базу мускуля. 
 +systemctl restart mysql 
 + 
 +# Устанавливаем собственно zoneminder. 
 +apt-get -y install zoneminder 
 + 
 +# http://​stackoverflow.com/​a/​20033673 
 +# Говорим мускулю создать БД для проги из заранее приготовленного шаблона. 
 +mysql --user=root --password="​$COOKIES_PASSWORD" ​/​usr/​share/​zoneminder/​db/​zm_create.sql 
 +# Ещё донастраиваем. Я в бд не шарю, но эта строка всё равно из официального руководства взята. И она пашет. Инфа ​сотка. 
 +mysql --user=root --password="​$COOKIES_PASSWORD"​ -e "grant select,​insert,​update,​delete,​create,​alter,​index,​lock tables on zm.* to '​zmuser'​@localhost identified by '​zmpass';"​ 
 + 
 +# Меняем ugo права на файл конфига. 
 +chmod 740 /etc/zm/zm.conf 
 +# Меняем владельца и группу. Рулит root, читать может пользователь www-data. 
 +chown root:​www-data ​/etc/zm/zm.conf 
 +# Меняем пользователя:​группу на весь каталог /​usr/​share/​zoneminder/​ и всё что внутри до самого конца. 
 +chown -R www-data:​www-data /usr/share/zoneminder
 + 
 +# Втыкаем конфиг зонемайндера в апач. 
 +a2enconf zoneminder 
 +# Разрешаем модули для корректной работы. 
 +a2enmod cgi 
 +a2enmod cgid 
 +a2enmod rewrite 
 + 
 +# Разрешаем сервису запускаться в принципе. При старте системы. 
 +systemctl enable zoneminder 
 +# Запускаем. 
 +systemctl start zoneminder 
 + 
 +# Добавляем в модуль [Date] временную зону (строка date.timezone = Europe/Moscow) в конфиг /​etc/​php/​7.0/​apache2/​php.ini 
 +sed -i '​s|\[Date\]|\[Date\]\ndate.timezone = Europe/​Moscow|' ​/etc/php/7.0/apache2/php.ini 
 + 
 +# Согласно форуму - лучше всё-таки добавить пользователя от которого запускается веб-сервер (www-data) в группу в которой разрешено иметь доступ к вебкамерам (video). 
 +# http://​zoneminder.readthedocs.io/​en/​latest/​installationguide/​ubuntu.html#​socket-sendto-or-no-live-streaming 
 +# https://​forums.zoneminder.com/​viewtopic.php?​t=23361 
 +adduser www-data video 
 + 
 +# Рестартим апач: 
 +systemctl ​reload ​apache2 
 + 
 +# http://​zoneminder.readthedocs.io/​en/​latest/​installationguide/​ubuntu.html#​socket-sendto-or-no-live-streaming 
 +# http://​www.cyberciti.biz/​faq/​mysql-command-to-show-list-of-databases-on-server/​ 
 +# http://​www.shellhacks.com/​ru/​Kak-Vypolnit-Komandu-MySQL-iz-Linux-BASH-Shell 
 +# http://​stackoverflow.com/​questions/​28462376/​updating-data-in-mysql-db-from-bash-script 
 +# http://​sitear.ru/​material/​mysql-primery 
 +# "​-e"​ - после неё идёт внутренняя кухня мускуля с собсно мускулевым синтаксисом. "use zm" - использовать БД zm. Остальные комманды будут выпоняться уже в ней. Типа как cd. Всё, что с апдейта и дальше - я получил через тыкание в phpmyadmin, только грохнул эти кавычки:​ `. 
 +mysql --user=root --password="​$COOKIES_PASSWORD"​ -e "use zm ; UPDATE Config SET Value = '/​zm/​cgi-bin/​nph-zms'​ WHERE Config.Name = '​ZM_PATH_ZMS';"​ 
 + 
 +# Чистим мусор. 
 +aptitude clean 
 + 
 +# Ребутим тачку, чтобы точняк-точняк всё применилось:​ 
 +reboot 
 +</​code>​
  
----- 
 === Для тех,​кто при запуске сервера столкнулся с ошибкой чтения из /dev/video* === === Для тех,​кто при запуске сервера столкнулся с ошибкой чтения из /dev/video* ===
 +
 Советуется сделать следующее:​ Советуется сделать следующее:​
 +
 ==Установить параметры доступа к видеоустройству:​== ==Установить параметры доступа к видеоустройству:​==
 +
 Если Вы не получаете картинки с Вашего видеоустройства(или '​sources'​ высвечиваются красным,​ т.е. не работают),​Вы можете установить параметры доступа к требуемому видеоустройству /dev/video* используя команду chmod :- Если Вы не получаете картинки с Вашего видеоустройства(или '​sources'​ высвечиваются красным,​ т.е. не работают),​Вы можете установить параметры доступа к требуемому видеоустройству /dev/video* используя команду chmod :-
 <code bash>​chmod 666 /dev/video0 </​code>​(или /dev/video* ,где * -порядковый номер устройстваe,​ 0, 1, 2 и т.д.) <code bash>​chmod 666 /dev/video0 </​code>​(или /dev/video* ,где * -порядковый номер устройстваe,​ 0, 1, 2 и т.д.)
Строка 108: Строка 117:
 ---- ----
 === Теперь собственно настройки программы:​=== === Теперь собственно настройки программы:​===
 +
 Первым делом в браузере снять запрет на блокировку всплывающих окон Первым делом в браузере снять запрет на блокировку всплывающих окон
 http://​your_ip/​ http://​your_ip/​
Строка 162: Строка 172:
 и указать модуль ffmpeg (и путь до него, /​usr/​bin/​ffmpeg)</​note>​ и указать модуль ffmpeg (и путь до него, /​usr/​bin/​ffmpeg)</​note>​
 ---- ----
 +
 ==== Источник и обсуждение на форуме ==== ==== Источник и обсуждение на форуме ====
 +
   * [[http://​forum.ubuntu.ru/​index.php?​topic=10034.0 | Ссылка на источник статьи и обсуждение]]   * [[http://​forum.ubuntu.ru/​index.php?​topic=10034.0 | Ссылка на источник статьи и обсуждение]]
 +  * http://​zoneminder.readthedocs.io/​en/​latest/​installationguide/​ubuntu.html#​easy-way-ubuntu-16-04
  
 {{tag>​HOWTO ПО Администрирование ZoneMinder Server Linux_на_предприятии}} {{tag>​HOWTO ПО Администрирование ZoneMinder Server Linux_на_предприятии}}