суббота, 2 апреля 2016 г.

Установка и настройка Zoneminder 1.29 в Ubuntu 14.04

Установка zoneminder
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:iconnor/zoneminder
sudo apt-get update
sudo apt-get install zoneminder
Создадим новую базу
sudo mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql
mysql -uroot -p -e "grant select,insert,update,delete,create,alter,index,lock tables on zm.* to 'zmuser'@localhost identified by 'zmpass';"
sudo a2enconf zoneminder
Добавим модули
sudo a2enmod rewrite
sudo a2enmod cgi
Сменим владельца файла
sudo chown www-data:www-data /etc/zm/zm.conf
Установим php
sudo apt-get install php5-gd
Посмотрим локальные настройки временной зоны
timedatectl | grep Time
       Time zone: Europe/Moscow (MSK, +0300)
Добавим их в файл конфигурации сервера
sudo nano /etc/php5/apache2/php.ini
#Меняем строку, снимаем коммент 
date.timezone = Europe/Moscow
Добавляем запись в конфигурационный файл apache2, чтобы не ругался
"Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName'"
sudo echo "ServerName localhost" >> /etc/apache2/apache2.conf
sudo echo "ServerName localhost" >> /etc/apache2/conf-available/servername.conf
sudo a2enconf servername
Перезапускаем службы
sudo service apache2 restart
sudo service zoneminder restart

Создаем скрипт для настройки shared memory
nano set-shmem.sh
#!/bin/bash
# simple shmsetup script
page_size=`getconf PAGE_SIZE`
phys_pages=`getconf _PHYS_PAGES`
shmall=`expr $phys_pages / 2`
shmmax=`expr $shmall \* $page_size`
echo kernel.shmmax = $shmmax
echo kernel.shmall = $shmall
Делаем его исполняемым
chmod +x set-w.sh
Запускаем и вносим изменения в sysctl.conf
sudo bash -c "sh ./kernel >> /etc/sysctl.conf"
sudo sysctl -p

Чтобы zoneminder корректно (да,да, по-умолчанию не грузится) запускался при запуске, добавим sleep 15 в стартовый скрипт
sudo nano /etc/init.d/zoneminder
start() {
        echo -n "Starting $prog: "
        export TZ=:/etc/localtime
        mkdir -p "$RUNDIR" && chown www-data:www-data "$RUNDIR"
        mkdir -p "$TMPDIR" && chown www-data:www-data "$TMPDIR"
        sleep 15
        $command start
        RETVAL=$?
        [ $RETVAL = 0 ] && echo success
        [ $RETVAL != 0 ] && echo failure
        echo
        [ $RETVAL = 0 ] && touch /var/lock/zm
        return $RETVAL
}

Перезагружаемся и открываем браузер
http://localhost/zm

Добавляем IP-камеру кнопкой Add New Monitor


Если будем просматривать поток в формате MPEG-4, то потребуется установить пакет ffmpeg
sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get install ffmpeg -y
sudo adduser www-data video
Иначе, будут ошибки
"getStreamCmdResponse  stream error: socket_sendto( /var/run/zm/zms-709364s.sock ) failed: No  such file or directory - checkStreamForErrors()"
если ошибка
"socket_sendto( /var/run/zm/zms-825484s.sock ) failed: No such file or directory"
в настройках путей меняем PATH_ZMS: /zm/cgi-bin/nph-zms

При подключении usb-вебкамеры, могут появиться ошибки
"[Failed to open video device /dev/video0: Permission denied"
следует добавить пользователя www-data в группу video
sudo adduser www-data video

Все записи сложены в /var/cache/zoneminder

В случае, если Zoneminder пожирает много ресурсов - рекомендую попробовать Xeoma. В конце концов я перешел на это ПО.

Комментариев нет :

Отправить комментарий