Установка сервера видеонаблюдения (ZoneMinder)

В последнее время, из-за дешевизны камер, данная тема становится всё массовей
Ответить
RomA
Сообщения: 355
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Установка сервера видеонаблюдения (ZoneMinder)

Сообщение RomA » 04 июл 2016, 00:07

Введение:
Рано или поздно при использовании одиночных камер возникает желание собрать их воедино - для этого нужно некое место сбора, которым и будет сервер видеонаблюдения.

Задача:
Установить сервер видеонаблюдения.

Поиск решения:
Для решения данной задачи было решено создать виртуальную машину на уже имеющимся кластере, подключить дополнительный женский диск, что бы не убивать скорость и ресурс дисков кластера. Из бесплатных решений выбор небольшой, а законченным, по сути, можно считать только одно. Таким образом выбор пал на ZoneMinder.

Реализация:
Ставить будем на

Код: Выделить всё

FreeBSD 10.3-STABLE
Всё ставится на пустую машину и запускается с минимальными настройками - тюнить будем потом, когда будет понятно чего не хватает.

Ставим базу данных

Код: Выделить всё

cd /usr/ports/databases/mysql56-server
make install clean
sysrc mysql_server_enable="YES"
делаем минимум настроек для запуска системы - копируем файл конфигурации базы данных

Код: Выделить всё

cp /usr/local/share/mysql/my-default.cnf /var/db/mysql/my.cnf
И вносим в него следующую строку, взамен уже имеющейся там

Код: Выделить всё

sql_mode= NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Запускам сервис

Код: Выделить всё

service mysql-server start
Затем ставим вебсервер

Код: Выделить всё

cd /usr/ports/www/nginx
make install clean
sysrc nginx_enable="YES"
Параметры выбираем по умолчанию, а дальше вносим изменения в файл конфигурации /usr/local/etc/nginx/nginx.conf

Код: Выделить всё

		server {
				root /usr/local/www/zoneminder;
				try_files $uri $uri/ /index.php$is_args$args;
				index index.php;

				location = /cgi-bin/nph-zms {
						include fastcgi_params;
						fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
						fastcgi_pass    unix:/var/run/fcgiwrap/fcgiwrap.sock;
				}

				location ~ \.php$ { 
						include fastcgi_params;
						fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
						fastcgi_pass    unix:/var/run/php-fpm.sock;
				}

				location /api {
						rewrite ^/api/(.+)$ /api/index.php?p=$1 last;
				}
				location ~ ^/(?:images|events)/ {
                				deny all;
        			}		
		
		}

Продолжаем ставить софт

Код: Выделить всё

cd /usr/ports/www/fcgiwrap
make install clean
sysrc fcgiwrap_enable="YES"
sysrc fcgiwrap_user="www"
sysrc fcgiwrap_flags="-c 4"
Тут настраивать нечего, продолжаем

Код: Выделить всё

cd /usr/ports/lang/php56
make install clean
sysrc php_fpm_enable="YES"
Тут главное выбрать опцию FPM и начинаем настройку

Код: Выделить всё

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
находим и правим опцию

Код: Выделить всё

date.timezone = Europe/Moscow
Затем правим /usr/local/etc/php-fpm.conf

Код: Выделить всё

listen = /var/run/php-fpm.sock
listen.owner = www
listen.group = www
env[PATH] = /usr/local/bin:/usr/bin:/bin
Ну и ставим сам сервер

Код: Выделить всё

cd /usr/ports/multimedia/zoneminder
make install clean
sysrc zoneminder_enable="YES"
Теперь приступаем к настройкам - создадим базу данных

Код: Выделить всё

mysql -u root -p
CREATE DATABASE zm;
GRANT ALL PRIVILEGES ON zm.* TO 'zmuser'@'localhost' IDENTIFIED BY 'zmpass';
FLUSH PRIVILEGES;
quit;
mysql -u root -p zm < /usr/local/share/zoneminder/db/zm_create.sql
Ну что же - можно пробовать всё запускать:

Код: Выделить всё

service nginx start
service fcgiwrap start
service php-fpm start
service zoneminder start
Вся эта установка со свежими портами не вызвала никаких затруднений (с предыдущими версиями были небольшие танцы с бубном) и по итогу, зайдя браузером на IP сервера вы должны увидеть веб-интерфейс видеосервера.

Ответить