Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
wiki:zoneminder [2013/10/02 10:31] |
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> | + | |
| - | Что означает, что в базе данных нет нужных таблиц, к которым происходит обращение. | + | |
| - | Создаем таблицы в базе данных: | + | |
| - | <code>mysql -uroot -p zm < db/zm_create.sql</code> | + | |
| - | После этого доустанавливаем пакет | + | |
| - | <code>sudo apt-get -f install</code> | + | |
| - | === Пртестируем апач, сделаем тестовый файл === | + | |
| - | <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 -s /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 и т.д.) | ||
| Строка 111: | Строка 117: | ||
| ---- | ---- | ||
| === Теперь собственно настройки программы:=== | === Теперь собственно настройки программы:=== | ||
| + | |||
| Первым делом в браузере снять запрет на блокировку всплывающих окон | Первым делом в браузере снять запрет на блокировку всплывающих окон | ||
| http://your_ip/ | http://your_ip/ | ||
| Строка 165: | Строка 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_на_предприятии}} | ||