Код: Выделить всё
media# uname -v
FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008 root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
Ставим апач
оставляю все без изменеий
Код: Выделить всё
media# make showconfig
===> The following configuration options are available for apache-2.2.11:
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=on "Enable IPv6 support"
BDB=off "Enable BerkeleyDB dbm"
SVN=off "Enable Subversion support"
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"
media# make install clean
Ставим 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
Ставим php5-extentions
Код: Выделить всё
media# cd /usr/ports/lang/php5-extensions
media# 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=off "Encryption support"
MHASH=off "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"
Создаем файл /usr/local/www/apache22/data/info.php такого содержания.
добавляем в /etc/rc.conf apache22_enable="YES"
Стартуем апач
проверяем работу апача с PHP. Входим на страницу http://IP-сервера/info.php. Должны увидеть страницу с информацией об установленом PHP.
Скачиваем Zoneminder, распаковываем и переносим в /usr/ports/multimedia/
Код: Выделить всё
media# cd /tmp/
media# fetch http://matrix.gatewaynet.com/panix/zoneminder.tar.gz
zoneminder.tar.gz 100% of 21 kB 41 kBps
media# tar zxvf zoneminder.tar.gz
x zoneminder/
x zoneminder/files/
x zoneminder/files/patch-configure
x zoneminder/files/zm_fbsd_camera.cpp
x 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
Код: Выделить всё
PORTNAME= zoneminder
PORTVERSION= 1.23.3
PORTEPOCH= 1
CATEGORIES= multimedia
MASTER_SITES= http://www2.zoneminder.com/downloads/
DISTNAME= ZoneMinder-${PORTVERSION}
MAINTAINER= achill@matrix.gatewaynet.com
COMMENT= Complete security camera solution, fully web based with image analysis
RUN_DEPENDS= ${SITE_PERL}/${PERL_ARCH}/Apache.pm:${PORTSDIR}/www/mod_perl[b]2[/b]:install \
${LOCALBASE}/bin/sudo:${PORTSDIR}/security/sudo:install
LIB_DEPENDS= jpeg.9:${PORTSDIR}/graphics/jpeg:install \
netpbm.1:${PORTSDIR}/graphics/netpbm:install \
pcre.0:${PORTSDIR}/devel/pcre:install \
avutil.1:${PORTSDIR}/multimedia/ffmpeg:install
BUILD_DEPENDS= ${LOCALBASE}/bin/mysqld_safe:${PORTSDIR}/databases/mysql5[b]1[/b]-server:install \
${LOCALBASE}/bin/php-config:${PORTSDIR}/lang/php5-extensions:install \
${SITE_PERL}/${PERL_ARCH}/DBI.pm:${PORTSDIR}/databases/p5-DBI:install \
${SITE_PERL}/${PERL_ARCH}/DBD/mysql.pm:${PORTSDIR}/databases/p5-DBD-mysql5[b]1[/b]:install \
${SITE_PERL}/Date/Manip.pm:${PORTSDIR}/devel/p5-Date-Manip:install \
${SITE_PERL}/LWP.pm:${PORTSDIR}/www/p5-libwww:install \
${SITE_PERL}/Archive/Zip.pm:${PORTSDIR}/archivers/p5-Archive-Zip:install \
${SITE_PERL}/Archive/Tar.pm:${PORTSDIR}/archivers/p5-Archive-Tar:install \
${SITE_PERL}/MIME/Lite.pm:${PORTSDIR}/mail/p5-MIME-Lite:install \
${SITE_PERL}/MIME/Entity.pm:${PORTSDIR}/mail/p5-MIME-Tools:install \
${SITE_PERL}/PHP/Serialization.pm:${PORTSDIR}/devel/p5-PHP-Serialization:install \
${LOCALBASE}/include/execinfo.h:${PORTSDIR}/devel/libexecinfo:install \
${LOCALBASE}/include/gnutls/openssl.h:${PORTSDIR}/security/gnutls:install
MANCOMPRESSED= yes
GNU_CONFIGURE= yes
USE_PHP= yes
USE_PERL5= yes
WEBBASE= [b]${LOCALBASE}/www/apache22[/b]
CONFIGURE_ARGS= --with-mysql=${LOCALBASE} \
--with-webdir=${WEBBASE}/data/zm \
--with-cgidir=${WEBBASE}/cgi-bin \
--with-webgroup=www \
--with-webuser=www \
--enable-crashtrace=no \
--with-ffmpeg=${LOCALBASE} \
--with-extralibs=-lpthread \
--enable-debug=yes
CONFIGURE_ENV= LDFLAGS="-L${LOCALBASE}/lib" \
CFLAGS="-I${LOCALBASE}/include" \
CPPFLAGS="-I${LOCALBASE}/include" \
ZM_DB_HOST="localhost" \
ZM_DB_NAME="zm" \
ZM_DB_USER="zmuser" \
ZM_DB_PASS="zmpass"
MAKE_ENV=${CONFIGURE_ENV}
CFLAGS=-I${LOCALBASE}/include/
CXXFLAGS=${CFLAGS}
CPPFLAGS=${CFLAGS}
PLIST_SUB= WEBBASE=${WEBBASE}
USE_RC_SUBR= zm.sh
pre-build:
${CP} ${FILESDIR}/videodev.h ${WRKSRC}/src
${CP} ${FILESDIR}/zm_fbsd_camera.cpp ${WRKSRC}/src
${CP} ${FILESDIR}/zm_fbsd_camera.h ${WRKSRC}/src
post-install:
.if !defined(NOPORTDOCS)
${MKDIR} ${DOCSDIR}
${INSTALL_MAN} ${FILESDIR}/README.FreeBSD ${DOCSDIR}
${INSTALL_MAN} ${FILESDIR}/README.FreeBSD.old ${DOCSDIR}
${INSTALL_MAN} ${WRKSRC}/AUTHORS ${DOCSDIR}
${INSTALL_MAN} ${WRKSRC}/COPYING ${DOCSDIR}
${INSTALL_MAN} ${WRKSRC}/ChangeLog ${DOCSDIR}
${INSTALL_MAN} ${WRKSRC}/INSTALL ${DOCSDIR}
${INSTALL_MAN} ${WRKSRC}/NEWS ${DOCSDIR}
${INSTALL_MAN} ${WRKSRC}/README ${DOCSDIR}
${INSTALL_MAN} ${WRKSRC}/TODO ${DOCSDIR}
.endif
${CAT} ${FILESDIR}/README.FreeBSD ${FILESDIR}/README.FreeBSD.old
.include <bsd.port.mk>
media# make install
выбрал такой конфиг для ffmpeg (снял галки на счет аудиокодеков)
Код: Выделить всё
??????????????????????????????????????????????????????????????????????
? Options for ffmpeg 2008.07.27_7 ?
? ?????????????????????????????????????????????????????????????????? ?
? ? [ ] AMR_NB AMR narrowband encoder ? ?
? ? [ ] AMR_WB AMR wideband encoder ? ?
? ? [ ] FAAC FAAC mp4/aac audio encoder ? ?
? ? [ ] FAAD FAAD mp4/aac audio decoder ? ?
? ? [ ] GSM gsm audio codec ? ?
? ? [ ] IPV6 IPV6 network support ? ?
? ? [ ] LAME lame MP3 codec ? ?
? ? [X] LIBA52 liba52 support ? ?
? ? [ ] OPTIMIZED_CFLAGS Additional optimizations ? ?
? ? [ ] SDL SDL support (build ffplay) ? ?
? ? [X] THEORA libtheora support (implies OGG) ? ?
? ? [X] VORBIS libvorbisenc support (implies OGG) ? ?
? ? [X] X264 X.264 codec ? ?
? ? [ ] XVID XVID codec ? ?
? ? ? ?
после установки 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
make clean
и заново
опять ошибка
Код: Выделить всё
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);
В этот раз у меня все прошло без ошибок.
добавляем в /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.patch
zmvideo.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
/root
media# fetch http://www.charliemouse.com:8080/code/cambozola/cambozola-latest.tar.gz
cambozola-latest.tar.gz 100% of 144 kB 25 kBps
media# tar zxvf cambozola-latest.tar.gz
x 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/