Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> www.lissyara.su —> Zoneminder

Настройка системы видеонаблюдения Zoneminder на FreeBSD 7.0


Имеем
media# uname -vFreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC

Чуть позже ставил на 7.1 установка аналогичная
Ставим апач
media# cd /usr/ports/www/apache22

оставляю все без изменеий
media# make showconfig
     APR_FROM_PORTS=off "Use devel/apr as APR (beware!)"
     THREADS=off "Enable threads support in APR"
     MYSQL=off "Enable MySQL support for apr-dbd"
     PGSQL=off "Enable PostgreSQL support for apr-dbd"
     SQLITE=off "Enable SQLite support for apr-dbd"
     IPV6=off "Enable IPv6 support"
     BDB=off "Enable BerkeleyDB dbm"
     AUTH_BASIC=on "Enable mod_auth_basic"
     AUTH_DIGEST=on "Enable mod_auth_digest"
     AUTHN_FILE=on "Enable mod_authn_file"
     AUTHN_DBD=off "Enable mod_authn_dbd"
     AUTHN_DBM=on "Enable mod_authn_dbm"
     AUTHN_ANON=on "Enable mod_authn_anon"
     AUTHN_DEFAULT=on "Enable mod_authn_default"
     AUTHN_ALIAS=on "Enable mod_authn_alias"
     AUTHZ_HOST=on "Enable mod_authz_host"
     AUTHZ_GROUPFILE=on "Enable mod_authz_groupfile"
     AUTHZ_USER=on "Enable mod_authz_user"
     AUTHZ_DBM=on "Enable mod_authz_dbm"
     AUTHZ_OWNER=on "Enable mod_authz_owner"
     AUTHZ_DEFAULT=on "Enable mod_authz_default"
     CACHE=on "Enable mod_cache"
     DISK_CACHE=on "Enable mod_disk_cache"
     FILE_CACHE=on "Enable mod_file_cache"
     MEM_CACHE=off "Enable mod_mem_cache"
     DAV=on "Enable mod_dav"
     DAV_FS=on "Enable mod_dav_fs"
     BUCKETEER=off "Enable mod_bucketeer"
     CASE_FILTER=off "Enable mod_case_filter"
     CASE_FILTER_IN=off "Enable mod_case_filter_in"
     EXT_FILTER=off "Enable mod_ext_filter"
     LOG_FORENSIC=off "Enable mod_log_forensic"
     OPTIONAL_HOOK_EXPORT=off "Enable mod_optional_hook_export"
     OPTIONAL_HOOK_IMPORT=off "Enable mod_optional_hook_import"
     OPTIONAL_FN_IMPORT=off "Enable mod_optional_fn_import"
     OPTIONAL_FN_EXPORT=off "Enable mod_optional_fn_export"
     LDAP=off "Enable mod_ldap"
     AUTHNZ_LDAP=off "Enable mod_authnz_ldap"
     ACTIONS=on "Enable mod_actions"
     ALIAS=on "Enable mod_alias"
     ASIS=on "Enable mod_asis"
     AUTOINDEX=on "Enable mod_autoindex"
     CERN_META=on "Enable mod_cern_meta"
     CGI=on "Enable mod_cgi"
     CHARSET_LITE=on "Enable mod_charset_lite"
     DBD=off "Enable mod_dbd"
     DEFLATE=on "Enable mod_deflate"
     DIR=on "Enable mod_dir"
     DUMPIO=on "Enable mod_dumpio"
     ENV=on "Enable mod_env"
     EXPIRES=on "Enable mod_expires"
     HEADERS=on "Enable mod_headers"
     IMAGEMAP=on "Enable mod_imagemap"
     INCLUDE=on "Enable mod_include"
     INFO=on "Enable mod_info"
     LOG_CONFIG=on "Enable mod_log_config"
     LOGIO=on "Enable mod_logio"
     MIME=on "Enable mod_mime"
     MIME_MAGIC=on "Enable mod_mime_magic"
     NEGOTIATION=on "Enable mod_negotiation"
     REWRITE=on "Enable mod_rewrite"
     SETENVIF=on "Enable mod_setenvif"
     SPELING=on "Enable mod_speling"
     STATUS=on "Enable mod_status"
     UNIQUE_ID=on "Enable mod_unique_id"
     USERDIR=on "Enable mod_userdir"
     USERTRACK=on "Enable mod_usertrack"
     VHOST_ALIAS=on "Enable mod_vhost_alias"
     FILTER=on "Enable mod_filter"
     VERSION=on "Enable mod_version"
     PROXY=off "Enable mod_proxy"
     PROXY_CONNECT=off "Enable mod_proxy_connect"
     PROXY_FTP=off "Enable mod_proxy_ftp"
     PROXY_HTTP=off "Enable mod_proxy_http"
     PROXY_AJP=off "Enable mod_proxy_ajp"
     PROXY_BALANCER=off "Enable mod_proxy_balancer"
     SSL=on "Enable mod_ssl"
     SUEXEC=off "Enable mod_suexec"
     CGID=off "Enable mod_cgid"
===> Use 'make config' to modify these settings
media# make install clean

Ставим php5
media# cd /usr/ports/lang/php5

Я выбрал такой конфиг.

media# make showconfig
===> The following configuration options are available for php5-5.2.8:
CLI=on "Build CLI version"
CGI=on "Build CGI version"
APACHE=on "Build Apache module"
DEBUG=off "Enable debug"
SUHOSIN=on "Enable Suhosin protection system (not for jails)"
MULTIBYTE=off "Enable zend multibyte support"
IPV6=on "Enable ipv6 support"
MAILHEAD=off "Enable mail header patch"
REDIRECT=off "Enable force-cgi-redirect support (CGI only)"
DISCARD=off "Enable discard-path support (CGI only)"
FASTCGI=on "Enable fastcgi support (CGI only)"
PATHINFO=on "Enable path-info-check support (CGI only)"

в /usr/local/etc/apache22/httpd.conf добавляем строки
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Ставим mysql
media# cd /usr/ports/databases/mysql51-server
media# make install clean

Ставим php5-extentions
media# cd /usr/ports/lang/php5-extensionsmedia
# make install clean

у меня такой конфиг

media# make showconfig
===> The following configuration options are available for php5-extensions-1.2:
     BCMATH=off "bc style precision math functions"
     BZ2=off "bzip2 library support"
     CALENDAR=off "calendar conversion support"
     CTYPE=on "ctype functions"
     CURL=off "CURL support"
     DBA=off "dba support"
     DBASE=off "dBase library support"
     DOM=on "DOM support"
     EXIF=off "EXIF support"
     FILEINFO=off "fileinfo support"
     FILTER=on "input filter support"
     FRIBIDI=off "FriBidi support"
     FTP=off "FTP support"
     GD=off "GD library support"
     GETTEXT=off "gettext library support"
     GMP=off "GNU MP support"
     HASH=on "HASH Message Digest Framework"
     ICONV=on "iconv support"
     IMAP=off "IMAP support"
     INTERBASE=off "Interbase 6 database support (Firebird)"
     JSON=on "JavaScript Object Serialization support"
     LDAP=off "OpenLDAP support"
     MBSTRING=off "multibyte string support"
     MCRYPT=on "Encryption support"
     MHASH=on "Crypto-hashing support"
     MING=off "ming shockwave flash support"
     MSSQL=off "MS-SQL database support"
     MYSQL=on "MySQL database support"
     MYSQLI=off "MySQLi database support"
     NCURSES=off "ncurses support (CLI only)"
     ODBC=off "unixODBC support"
     OPENSSL=off "OpenSSL support"
     PCNTL=off "pcntl support (CLI only)"
     PDF=off "PDFlib support (implies GD)"
     PDO=on "PHP Data Objects Interface (PDO)"
     PDO_SQLITE=on "PDO sqlite driver"
     PGSQL=off "PostgreSQL database support"
     POSIX=on "POSIX-like functions"
     PSPELL=off "pspell support"
     READLINE=off "readline support (CLI only)"
     RECODE=off "recode support"
     SESSION=on "session support"
     SHMOP=off "shmop support"
     SIMPLEXML=on "simplexml support"
     SNMP=off "SNMP support"
     SOAP=off "SOAP support"
     SOCKETS=off "sockets support"
     SPL=on "Standard PHP Library"
     SQLITE=on "sqlite support"
     SYBASE_CT=off "Sybase database support"
     SYSVMSG=off "System V message support"
     SYSVSEM=off "System V semaphore support"
     SYSVSHM=off "System V shared memory support"
     TIDY=off "TIDY support"
     TOKENIZER=on "tokenizer support"
     WDDX=off "WDDX support (implies XML)"
     XML=on "XML support"
     XMLREADER=on "XMLReader support"
     XMLRPC=off "XMLRPC-EPI support"
     XMLWRITER=on "XMLWriter support"
     XSL=off "XSL support (Implies DOM)"
     YAZ=off "YAZ support (ANSI/NISO Z39.50)"
     ZIP=on "ZIP support"
     ZLIB=off "ZLIB support"
===> Use 'make config' to modify these settings

Создаем файл /usr/local/www/apache22/data/info.php такого содержания.
cat /usr/local/www/apache22/data/info.php
<?
phpinfo();
?>

добавляем в /etc/rc.conf
apache22_enable="YES"
mysql_enable="YES"

Стартуем апач
/usr/local/etc/rc.d/apache22 start

проверяем работу апача с PHP. Входим на страницу http://IP-сервера/info.php. Должны увидеть страницу с информацией об установленом PHP.
Скачиваем Zoneminder, распаковываем и переносим в /usr/ports/multimedia/

media# cd /tmp/media
# fetch http://matrix.gatewaynet.com/panix/zoneminder.tar.gzzoneminder.tar.gz 100% of   21 kB   41 kBps
media# tar zxvf zoneminder.tar.gzx
 zoneminder/x
 zoneminder/files/x
 zoneminder/files/patch-configurex
 zoneminder/files/zm_fbsd_camera.cppx
 zoneminder/files/videodev.h
...
media# mv zoneminder /usr/ports/multimedia/
media# cd /usr/ports/multimedia/zoneminder/

Правим Makefile
т.к. стоит Апач2 исправим mod_perl на mod_perl2, mysql50-server на mysql51-server, p5-DBD-mysql50 на p5-DBD-mysql51. Правим строку WEBBASE= ${LOCALBASE}/www/apache22
выбрал такой конфиг для ffmpeg (снял галки на счет аудиокодеков)

 make showconfig
===> The following configuration options are available for ffmpeg-2008.07.27_7:
     AMR_NB=off "AMR narrowband encoder"
     AMR_WB=off "AMR wideband encoder"
     FAAC=off "FAAC mp4/aac audio encoder"
     FAAD=off "FAAD mp4/aac audio decoder"
     GSM=off "gsm audio codec"
     IPV6=off "IPV6 network support"
     LAME=off "lame MP3 codec"
     LIBA52=on "liba52 support"
     OPTIMIZED_CFLAGS=off "Additional optimizations"
     SDL=off "SDL support (build ffplay)"
     THEORA=on "libtheora support (implies OGG)"
     VORBIS=on "libvorbisenc support (implies OGG)"
     X264=on "X.264 codec"
     XVID=off "XVID codec"
===> Use 'make config' to modify these settings

после установки ffmpeg вывалилась ошибка
aclocal-1.10: not found
WARNING: `aclocal-1.10' is missing on your system.  You should only need it if
         you modified `acinclude.m4' or `configure.in'.  You might want
         to install the `Automake' and `Perl' packages.  Grab them from
         any GNU archive site. 
cd . && /bin/sh /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/missing --run automake-1.10 --gnu
automake-1.10: not found
WARNING: `automake-1.10' is missing on your system.
	You should only need it if
	you modified `Makefile.am', `acinclude.m4' or `configure.in'.
	You might want to install the `Automake' and `Perl' packages.
	Grab them from any GNU archive site.
cd . && /bin/sh /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/missing --run autoconf
aclocal.m4:14: error: this file was generated for autoconf 2.61.
You have another version of autoconf.  If you want to use that,
you should regenerate the build system entirely.
aclocal.m4:14: the top level
autom4te-2.62: /usr/local/bin/gm4 failed with exit status: 63
*** Error code 1
Stop in /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3.
*** Error code 1
Stop in /usr/ports/multimedia/zoneminder.

Проблема в том что порт был построен с использованием autoconf 2.61 и автор порта не хочет его переделывать. Предложили следующее решение. Скачать файлы aclocal.m4 и acinclude.m4 в каталог /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/src, добавить в Makefile строчки
MAKE_ARGS= ACLOCAL="${TRUE}" AUTOCONF="${TRUE}" AUTOMAKE="${TRUE}"
 USE_AUTOTOOLS= autoconf:262:env
 USE_AUTOTOOLS= aclocal:110 /usr/local/bin/autoheader:262

media# make clean

и заново
media# make

опять ошибка
zm_mpeg.cpp: In destructor 'VideoStream::~VideoStream()':
zm_mpeg.cpp:281: error: cannot convert 'ByteIOContext**' to 'ByteIOContext*' for argument '1' to 'int url_fclose(ByteIOContext*)'
*** Error code 1

в /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/src.zm_mpeg.cpp на 281 и 283 строках вносим изменения:
за место url_fclose(&ofc->pb); 
url_fclose(ofc->pb); 

media# make install
В этот раз у меня все прошло без ошибок.
добавляем в /etc/rc.conf zm_enable="YES".
Стартуем mysql, входим и создаем БД.
media# /usr/local/etc/rc.d/mysql-server start
Starting mysql.
media# mysql -h localhost -u root -p
mysql: Команда не найдена.
media# rehash
media# mysql -h localhost -u root -p
Enter password:
mysql> source /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/db/zm_create.sql;
mysql> grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass'; flush privileges;
mysql> quit
media# ee /usr/local/etc/apache22/httpd.conf
добавляем
<VirtualHost *:80>
        DocumentRoot /usr/local/www/apache22/data/zm
        DirectoryIndex index.php
</VirtualHost>

перезапускаем апач и пробуем войти http://ip-сервера
free# /usr/local/etc/rc.d/apache22 restart

Теперь нужно пересобрать ядро с параметрами (эти параметры работали у меня с 3 камерами axis206)
options SHMMAXPGS=65536
options SHMMNI=384
options SHMSEG=256
у меня после перезагрузки ZM не стартовал, т.к. не видел базу, пришлось в раскомментировать /usr/local/etc/rc.d/zm sleep 10
несколько правок.
Это чтобы работал экпорт видео.

media# cd /usr/local/bin/
media# fetch http://www.hamsterleymill.co.uk/zmvideo.patchzmvideo.patch                                 100% of  846  B 4052 kBps
media# patch < zmvideo.patch
Hmm...  Looks like a new-style context diff to me...
The text leading up to this was:
--------------------------
|*** ./zmvideo.pl       Mon Dec 29 02:01:13 2008
|--- ./zmvideo2.pl      Mon Dec 29 01:53:19 2008
--------------------------
Patching file ./zmvideo.pl using Plan A...
Hunk #1 succeeded at 319.done
media#

Это чтоб показывалось видео а не картинки в браузере.
media# pwd/rootmedia# fetch http://www.charliemouse.com:8080/code/cambozola/cambozola-latest.tar.gzcambozola-latest.tar.gz    100% of  144 kB   25 kBps
media# tar zxvf cambozola-latest.tar.gzx
 cambozola-0.70/x
 cambozola-0.70/bldsrc/x
 cambozola-0.70/bldsrc/com/x
 cambozola-0.70/bldsrc/com/charliemouse/x
 cambozola-0.70/bldsrc/com/charliemouse/embed/
...
media# cp cambozola-0.70/dist/cambozola.jar /usr/local/www/apache22/data/zm/





 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.3497 секунд
Из них PHP: 25%; SQL: 75%; Число SQL-запросов: 28 шт.
Исходный размер: 38940; Сжатая: 8484