суббота, 22 февраля 2014 г.

Установка и настройка Zoneminder 1.26 
на CentOS 6.5 x64

1. Устанавливаем дополнительные репозитарии и отключаем SELinux

1.1 Устанавливаем дополнительные репозитарии, необходимые для ZoneMinder:
# rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# rpm -Uhv http://centos.alt.ru/pub/repository/centos/6/x86_64/centalt-release-6-1.noarch.rpm
Устанавливаем репозитарий для ffmpeg
# nano /etc/yum.repos.d/CentOS-Base.repo
Добавляем в конец
[dag]
name=Dag RPM Repository for Centos
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
enabled=1
Устанавливаем репозитарий EPEL:
# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
(Ссылка: http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5)
Обновляем менеджер пакетов:
# yum update

1.2 Отключаем SELinux, так как ZoneMInder работает при включенном SELinux не очень хорошо.
# nano nano /etc/sysconfig/selinux
Комментируем все строи и пишем в конце:
SELINUX=disabled
Перезагружаемся после обновления
# reboot

2. Подготавливаем систему для установки Zoneminder

2.1 Установка MySQL
# yum install mysql mysql-server
Добавляем сервис mysql в скрипт автозапуска
# /sbin/chkconfig --level 345 mysqld on
Запускаем MySQL
# /etc/init.d/mysqld start
Задаем пароль root для сервера MySQL
# mysql_secure_installation
Сначала вводим на первый вопрос просто <Enter>, затем на следующих вопросах вводим пароль и его подтверждение. На остальные вопросы отвечаем ДА (y)

2.2 Установка Web-сервера apache
# yum install httpd
Добавляем в скрипт автозапуска
# chkconfig --levels 235 httpd on
Задаем имя серверу apache (у нас будет имя cam.svttk.ru)
# nano /etc/httpd/conf/httpd.conf
Прописываем директиву ServerName
ServerName cam.ххх.ru:80
Так же необходимо разрешить серверу Apache работать с символьными ссылками в скриптах (по умолчанию Apache не работает с символьными ссылками скриптов). Это исправляется в секции ScriptAlias:
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">
    AllowOverride None
#   Options None (по умолчанию выставлено None. 
#   Мы пишем FollowSymLinks)
    Options FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>
Прописываем в файл hosts соответствие имени cam.svttk.ru текущей машине
# nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 roslin cam.ххх.ru
Запускаем сервер Apache
# /etc/init.d/httpd start
Разрешаем доступ к серверу Apache
# iptables -I INPUT -p tcp --dport 80 -j ACCEPT 
# service iptables save
Проверяем и убеждаемся, что через браузер сервер отвечает

2.3 Устанавливаем php5 и связки Apache с Mysql и php5
# yum install php
Перезапускаем web-сервер
# /etc/init.d/httpd restart
На этом этапе можно проверить работу сервера apache с php5 с помощью функции phpinfo();
Установка модулей для связки PHP5 и Mysql
# yum install php-mysql php-gd php-imap php-ldap php-odbc
Перезапускаем web-сервер
# /etc/init.d/httpd restart

2.4 Устанавливаем необходимые для работы ZoneMinder пакеты
# yum install -y pcre pcre-devel
# yum install -y netpbm*
# yum install -y libjpeg libjpeg-devel
# yum install -y ffmpeg ffmpeg-devel ffmpeg-libpostproc
# yum install -y gcc-c++
# yum install -y openssl openssl-devel gnutls gnutls-devel perl-Crypt-OpenSSL-* perl-Net-SSLeay
# yum install -y bzip2 bzip2-devel
# yum install -y perl-Date-Manip perl-LWP-UserAgent-Determined perl-Sys-Mmap perl-Device-SerialPort perl-Archive-Tar perl-MIME-Lite perl-MIME-tools perl-Net-SMTP-* perl-Net-FTP-AutoReconnect perl-Archive-Zip perl-Module-Load perl-Time-HiRes git perl-PHP-Serialization subversion yasm perl-YAML
# yum install zlib-devel

После выполнения некоторых команд может выскочить предупреждение, например такое:
предупреждение: 
rpmts_HdrFromFdno: Заголовок V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
Public key for x264-devel-0.0.0-0.4.20101111.el6.rf.i686.rpm is not installed
Решение проблемы:
# rpm --import /etc/pki/rpm-gpg/RPM*

2.5 Обновление модулей PERL
# yum install cpan
# cpan –i LWP
(я всегда соглашался в процессе обновления на все вопросы и отвечал yes, просто нажав Enter)

3. Установка непосредственного ZoneMinder

3.1 Скачиваем Zoneminder и java скрипт Cambozola, который необходимо для просмотра видео в бразере
# wget https://github.com/ZoneMinder/ZoneMinder/archive/v1.26.5.tar.gz
# wget http://www.zoneminder.com/sites/zoneminder.com/downloads/cambozola.jar

3.2 Распаковываем
# tar -zxvf v1.26.5
# cd ZoneMinder-1.26.5

3.2 Версия 1.26.5 устанавливается с помощью команды cmake.
Устанавливаем cmake, затем устанавливаем ZoneMinder
# yum install cmake
# cmake . (точка в конце)
У меня  выполнение команды завершалось с ошибкой
CMake Error at CMakeLists.txt:224 (message):
  zm requires mysqlclient but it was not found on your system
Не хватало модуля MySQL. Проблема решилась после установки пакета mysql-devel:
# yum install mysql-devel
После этого выполнение cmake завершается без ошибок
# cmake . (точка в конце)
# make
# make install

4. Подготовка базы данных MySQL, с которой будет работать ZoneMinder

# mysql -uroot -p
Вводим пароль и подключаемся. Затем создаем базу данных zm
mysql> create database zm;
Создаем пользователя main c паролем 12345
mysql> CREATE USER 'main'@'localhost' IDENTIFIED BY '12345';
Определяем пользователю main права на базу zm:
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on zm.* to main@localhost; 
Отключаемся от MySQL
mysql> exit
Заливаем таблицы MySQL базы данных ZoneMinder из файла примера
#mysql -u root -p zm < db/zm_create.sql
Вводим пароль и ждем формирования БД zm.

5. Скрипт запуска сервиса zm помещаем в папку инициализации и добавляем сервис zm в автозагрузку
# cp ./scripts/zm /etc/init.d/
# chmod 755 /etc/init.d/zm
# chkconfig --add zm

6. Подготавливаем web-папку с которой будет работать ZoneMinder и папку, в которую будут сохраняться фотографии с камер. 
Создаем папку для файлов фотографий с камер:
# mkdir /mnt/disk/zm
Создаем папку с файлами web:
# mkdir /var/www/html/zmweb
Запускаем скрипт, которому указываем папку хранения фотографий событий с камер наблюдения /var/www/html/zm:
# ./zmlinkcontent.sh /mnt/disk/zm
...
Web folder       : /usr/local/share/zoneminder/www
Content folder   : /mnt/disk/zm
...
Скрипт подготовит web-файлы в usr/local/share/zoneminder/www, но в папке /var/www/html/zmweb они пока не окажутся.

Копируем в оригинальную web-папку скрипт Cambozola.jar, который необходим для просмотра видео через web-Интерфейс.
# cp ../cambozola.jar usr/local/share/zoneminder/www/cambozola.jar

Определяем права (ZoneMinder работает от пользователя apache):
# chown -R apache:apache /mnt/disk/zm/
# chown -R apache:apache /usr/local/share/zoneminder/www

7. Открываем файл /etc/zm.conf и прописываем туда параметры доступа к базе, которые задали в пункте 4:
# nano /etc/zm.conf

# ZoneMinder database user
ZM_DB_USER=main
# ZoneMinder database password
ZM_DB_PASS=12345

8. Запускаем ZoneMinder
# service zm start
Запускается ZoneMinder:       [  OK  ]
Если "ОК" - значит все сделали правильно.

9. Настраиваем сервер apache для работы ZoneMinder.

9.1 В файле /etc/zm.conf определены папки, которые используются для хранения cgi скриптов и web страниц:
# Path to ZoneMinder web files
ZM_PATH_WEB=/usr/local/share/zoneminder/www
# Path to ZoneMinder cgi files
ZM_PATH_CGI=/usr/local/libexec/zoneminder/cgi-bin
Делаем символьную ссылку на папку с web-файлами:
# ln -s /usr/local/share/zoneminder/www /var/www/html/zmweb
Делаем символьные ссылки на cgi скрипты, расположенные в папке cgi скриптов ZoneMinder:
# ln -s /usr/local/libexec/zoneminder/cgi-bin/nph-zms /var/www/cgi-bin/nph-zms
# ln -s /usr/local/libexec/zoneminder/cgi-bin/zms /var/www/cgi-bin/zms

9.2 Редактируем файл /etc/php.ini:
# nano /etc/php.ini
В этом файле нам необходимо найти указанную ниже строку и заменить Off на On 
short_open_tag = On 
Затем необходимо указать часовой пояс в разделе [Date] (у нас это Europe/Moscow)
[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = Europe/Moscow

9.3 Перезапускаем apache
# service httpd restart

10. По адресу http://<ip адрес>/zmweb будет открываться web-интерфейс ZoneMinder.

Если браузер отображает следующую страницу - это значит сервер MySQL не запустился в системе:

Если браузер отображает следующую страницу - это значит, что в файле /etc/php.ini не прописано short_open_tag = On 

10. Настройка Zoneminder 1.26 на CentOS 6.5 x64

Нажимаем на ссылку Options в правом верхнем углу окна:

Откроется дополнительное окно с несколькими вкладками.
1) Вкладка Display – Ничего не меняем
2) Вкладка Systems.
Меняем  OPT_USE_AUTH. Ставим галку.
AUTH_RELAY – ставим none
После сохранения – пароль admin / admin
Здесь же можно выбрать русский язык интерфейса
LANG_DEFAULT = ru_ru
3) Вкладка Config – ничего не меняем
4) Вкладка Paths – ничего не меняем
5) Вкладка web – ничего не меняем
6) Вкладка Images – 
OPT_CAMBOZOLA – ставим галку
7) Вкладка Logging – ничего не меняем
8) Вкладка Network – ничего не меняем
9) Вкладка Email – ничего не меняем
10) Вкладка  Upload – ничего не меняем
11) Вкладка X10 – ничего не меняем
12) Вкладка High B/W – ничего не меняем
13) Вкладка Medium B/W – ничего не меняем
14) Вкладка Low B/W – ничего не меняем
15) Вкладка Phone B/W  - ничего не меняем
16) Вкладка eyeZm – ничего не меняем
17) Вкладка Users – добавляем нового пользователя. У пользователя admin сразу меняем пароль на очень-очень сложный.




Добавление новой камеры происходит при нажатии кнопки "Добавить монитор".

Рабочие листы настроек для камеры HiQ (заполняются только первые две вкладки):





Ограничение скорости записи выбираем побольше (на камере стоит 25 FPS) - 40.
Источник для камеры HiQ
rtsp://10.200.72.113:554/user=admin&password=&channel=1&stream=0.sdp?
На остальных трех вкладках ничего не меняю:
   



3 комментария:

  1. Начал устанавливать строго по инструкции, остановился на пункте 6, где взять скрип "zmlinkcontent.sh" ? все что написано под ним это содержимое?, те нужно создать фаил с таким именем и вставить текст написанный под ним?

    ОтветитьУдалить
    Ответы
    1. [root@UTINPUMER ZoneMinder-1.28.1]# ./zmlinkcontent.sh /mnt/disk/zm
      *** This bash script creates the nessecary symlinks for the zoneminder content
      *** It can use an existing content folder or create a new one
      *** For usage: use -h
      *** The default content directory is: /var/lib/zoneminder

      Using local zm.conf
      Web folder : /usr/local/share/zoneminder/www
      Content folder : /mnt/disk/zm

      Verifying the web folder is a directory... OK
      Checking if the content folder exists... Yes
      Checking if the images folder exists inside the content folder... No
      Creating the images folder inside the content folder... OK
      Checking if the events folder exists inside the content folder... No
      Creating the events folder inside the content folder... OK
      Unlinking current symlink for the images folder... OK
      Unlinking current symlink for the events folder... OK
      Creating the symlink for the images folder... OK
      Creating the symlink for the events folder... OK
      Changing ownership of the images folder recursively to apache apache... OK
      Changing ownership of the events folder recursively to apache apache... OK
      Changing permissions of the images folder to 775... OK
      Changing permissions of the events folder to 775... OK

      All done

      Удалить
  2. [root@UTINPUMER ~]# cp cambozola.jar /usr/local/share/zoneminder/www/

    для верного копипаста в оригинале нет /

    ОтветитьУдалить