Установка из репозитория Ubuntu

При устанвке появляется сообщение о не запущенном процессе Mysql, хотя это не так!

Все необходимые зависимости загрузятся и установятся автоматически:

sudo apt-get install zoneminder

Установка на ubuntu 16.04 из официального репозитория разработчиков

#! /bin/bash
 
# http://zoneminder.readthedocs.io/en/latest/installationguide/ubuntu.html#easy-way-ubuntu-16-04
 
COOKIES_PASSWORD="qazwsxedc"
 
# Настраививаем автоматический ввод пароля для админа mysql.
# http://stackoverflow.com/a/7740571
echo "mysql-server mysql-server/root_password password $COOKIES_PASSWORD" | debconf-set-selections
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

Для тех,кто при запуске сервера столкнулся с ошибкой чтения из /dev/video*

Советуется сделать следующее:

Установить параметры доступа к видеоустройству:

Если Вы не получаете картинки с Вашего видеоустройства(или 'sources' высвечиваются красным, т.е. не работают),Вы можете установить параметры доступа к требуемому видеоустройству /dev/video* используя команду chmod :-

chmod 666 /dev/video0 

(или /dev/video* ,где * -порядковый номер устройстваe, 0, 1, 2 и т.д.) Этот вариант решения обсуждается более подробно здесь: http://www.zoneminder.com/forums/viewtopic.php?t=8621&highlight=zmfix+chmod и если случай,описанный в теме,Ваш ,то проблема может быть решена,следуя посту номер 6 в данной теме,используя команду :

sudo chmod 4755 /usr/bin/zmfix

Эта команда даёт программе Zone Minder постоянные расширенные права доступа к Вашему видеоустройству. Как пишет автор,в Zone Minder config-файле можно поменять nph_zms на zms для более надёжного видеозахвата. (Вы не обязаны это делать. Я поменял nph_zms на zms из-за прерывистого доступа к видеоустройству. Происходил видеозахват,после чего процесс завершался,оставляя после себя «зомби» и приводя к огромным утечкам памяти,что являлось причиной падения системы. Этот параметр меняется в секции Config/paths. Меняйте поле ZM_PATH_ZMS ; поменяйте последний бит с «nph-zms» на «zms» ).Затем нужно перезагрузить Apache. ….. И направить Ваш браузер на : http://ZoneMinderServer/zm или http://localhost/zm или http://your_ip_address/zm Та же самая процедура работала для Edgy.


Теперь собственно настройки программы:

Первым делом в браузере снять запрет на блокировку всплывающих окон http://your_ip/ Заходим в Options→

  • Вкладка System→напротив Method used to relay authentication information (?) поставить <none>

из-за этого могут быть проблемы в скриптах на отображение картинки. (ошибка аутентификации …) Ставим галку напротив Authenticate user logins to ZoneMinder (?) теперь будет спрашивать пароль при входе. (admin/admin) –save редактировать/добавлять пользователей на вкладке users

  • Вкладка config

Снимаем галку Timestamp images as soon as they are captured (?)

  • Вкладка web

The title prefix displayed on each window (?) Пишем название для нашего видеосервера Should the console window resize itself to fit (?) снимаем галку –save

  • Вкладка Images

Which method should be used to send video streams to your browser. (?) устанавливаем в jpeg Is there an (optional) mpeg video encoder installed (?) в <none> –save Там где написано на главной ZoneMinder Console - Running Жмем Running и перезапускаем сервер

  • Вроде бы все, теперь добавим камеру/монитор

Жмем <add new monitor> пишем name для камеры Function пока ставим в Record (с остальным потом сами разберетесь) Переходим в source ставим свое устройство, у меня /dev/video0 ниже ставим номер канала 0 (как у вас дожно быть, смотрите сами) формат ставим в Auto Цветность у меня Gray Capture Width (pixels) – 320 Capture Height (pixels) – 240

  • Теперь закладка Misc

Section length у меня стоит в 3600 Frame Skip в 10

  • Небольшое дополнение для IP камер:

host name :

    user:password@IP

Change remote path, for a axis camera use :

    /axis-cgi/mjpg/video.cgi
* Все, сохраняемся.

Рестарт сервера и идем смотреть :-)

Данный вариант работает с файлами jpeg Для формирования видео надо поставить в настройка mpeg и указать модуль ffmpeg (и путь до него, /usr/bin/ffmpeg)

Источник и обсуждение на форуме