Содержание
Установка из репозитория Ubuntu
Все необходимые зависимости загрузятся и установятся автоматически:
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 * Все, сохраняемся.
Рестарт сервера и идем смотреть