l Install the zoneminder & required packages.
apt-get install make
apt-get install apache2
apt-get install php5
l For testing the
apache server open the web browser & type.
l After this you must see the apach-default page on the
web browser else check you installation again
l For testing php you have to create a file (test.php)
& write some php code in that file and try to execute with the help of web
browser.
Example :
vi /etc/www/
test.php
<?
phpinfo(); ?>
save
& exit.
l For testing php file on the local system type
l You'll find the information about php.
l Install some
more packages that required to run the zoneminder properly.
apt-get install php5-mysql
apt-get install
libapache2-mod-auth-mysql
apt-get install mysql-server
apt-get install g++
apt-get install libdate-manip-perl
apt-get install
libmysqlclient12-dev
apt-get install
libjpeg-mmx-dev
apt-get install
liblwp-protocol-http-socketunix-perl
l If you are unable to install zoneminder with the help
of apt-install than download the zoneminder zip file form the web on any local
system and copy that gz file on the target system.
l And than unzip that file.
tar -xvzf
ZoneMinder-1.22.2.tar.gz
l And for configure the zm run this command
./configure
--with-webdir=/var/www/zm --with-cgidir=/usr/lib/cgi-bin
--with-webuser=www-data –with-webgroup=www-data
Note : If u find error message like
configure: error: zm requires
openssl/md5.h
l Than you need some extra package to install libssl-dev
than zoneminder is completely configured :)
l For creating the database in mysql for zoneminder you
have to run this command
#> mysql mysql <
db/zm_create.sql -p
l when you run this command it'll creat the default zoneminder
database. when it's completely created than you have to grant some permission
on that database for specific user's.
l For this open mysql for this type.
mysql -p
l It's ask for your mysql password. Enter the password
and type this command for grant the permission to zmuser.
Grant select,insert,update,delete on
zm.* to
'zmuser'@localhost identified by
'zmpass';
(It's
a compelete command)
l And type exit or quit to close mysql.
l After this restart the mysqlamin to refresh the
database schema for restart type
#> mysqladmin
reload -p
l After this type make install to install the zoneminder
make install
l After this you have to make the zm script file for
that you have to past this script code in
vi /etc/init.d/zm
l Hare is a script
------------------------------------------------------------------------------------------------------------------------
#!/bin/sh
# description: Control ZoneMinder as
a Service
# chkconfig: 2345 99 00
# Source function library.
#. /etc/rc.d/init.d/functions
prog=ZoneMinder
ZM_VERSION="1.22.2"
ZM_PATH_BIN="/usr/local/bin"
ZM_CONFIG="/usr/local/etc/zm.conf"
command="$ZM_PATH_BIN/zmpkg.pl"
loadconf()
{
if [ -f $ZM_CONFIG ]; then
. $ZM_CONFIG
else
echo "ERROR: $ZM_CONFIG
not found."
return 1
fi
}
# Check for old config and update if
needed
checkcfg()
{
# Check config
if [ "$ZM_DB_HOST" =
"" -o "$ZM_DB_NAME" = "" -o
"$ZM_DB_USER" = "" -o "$ZM_DB_PASS" =
"" ]; then
if [ "$ZM_DB_SERVER" !=
"" -a "$ZM_DB_NAME" != "" -a
"$ZM_DB_USERA" != "" -a
"$ZM_DB_PASSA" != "" ]; then
echo -n
"Converting $ZM_CONFIG"
cp $ZM_CONFIG
$ZM_CONFIG.old && \
cat $ZM_CONFIG.old | \
grep -v
ZM_DB_USERB | \
grep -v
ZM_DB_PASSB | \
sed -e
's/ZM_DB_USERA/ZM_DB_USER/' | \
sed -e
's/ZM_DB_PASSA/ZM_DB_PASS/' >$ZM_CONFIG && \
rm -f $ZM_CONFIG.old
RETVAL=$?
[ $RETVAL = 0 ]
&& echo_success
[ $RETVAL != 0 ]
&& echo_failure
echo
fi
if [
"$ZM_DB_SERVER" != "" -a
"$ZM_DB_NAME" != "" -a "$ZM_DB_USER" !=
"" -a "$ZM_DB_PASS" != "" ]; then
echo -n
"Converting $ZM_CONFIG to 1.22.0"
cp $ZM_CONFIG
$ZM_CONFIG.old
rm -f
$ZM_CONFIG
cat $ZM_CONFIG.old | \
sed -e
's/ZM_DB_SERVER/ZM_DB_HOST/' >/tmp/$$
. /tmp/$$
cp $ZM_CONFIG.rpmnew
$ZM_CONFIG && chmod 644 $ZM_CONFIG
for n in ZM_DB_HOST
ZM_DB_NAME ZM_DB_USER ZM_DB_PASS; do
eval
"val=\$$n"
if [
"$val" != "" ]; then
cp $ZM_CONFIG
/tmp/$$.rpmnew &&
sed
's/^'$n='.*$/'$n=$val'/g' /tmp/$$.rpmnew >$ZM_CONFIG
fi
done
rm /tmp/$$
RETVAL=$?
[ $RETVAL = 0 ]
&& echo_success
[ $RETVAL != 0 ]
&& echo_failure
echo
else
echo "In
$ZM_CONFIG there should not be null values."
return 1
fi
loadconf
fi
}
checkdb()
{
# Check database exisits and version
GetVer="select Value from Config
where Name='ZM_DYN_DB_VERSION'"
OLD_VERSION=`echo $GetVer | mysql -B -h
$ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME | grep -v '^Value'`
if [ "$OLD_VERSION" =
"" ]; then
GetVer="select Value from
Config where Name='ZM_DYN_CURR_VERSION'"
OLD_VERSION=`echo $GetVer |
mysql -B -h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME | grep -v
'^Value'`
if [ "$OLD_VERSION" =
"" ]; then
echo -n "You must
run zmupdate.pl manualy"
return 1
fi
fi
RETVAL=$?
if [ $RETVAL != 0 ]; then
tbls=`mysql -h $ZM_DB_HOST -u
$ZM_DB_USER -p$ZM_DB_PASS -s -e 'show tables' $ZM_DB_NAME`
RETVAL=$?
if [ $RETVAL = 0 ]; then
echo -n
"Initialize $prog database: "
echo tbls | grep Config
>/dev/null 2>&1
RETVAL=$?
if [ $RETVAL != 0
]; then
mysql -B -h
$ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME < $ZM_PATH_UPDATE/zm_create.sql
RETVAL=$?
[ $RETVAL = 0 ]
&& echo_success
[
$RETVAL != 0 ] && echo_failure
echo
return $RETVAL
fi
( cd $ZM_PATH_UPDATE;
perl $ZM_PATH_BIN/zmupdate.pl -f )
RETVAL=$?
[ $RETVAL = 0 ]
&& echo_success
[ $RETVAL != 0 ]
&& echo_failure
echo
return $RETVAL
else
echo "No access to
ZoneMinder database. Run $ZM_PATH_BIN/zminit manually."
return $RETVAL
fi
else
[ "$ZM_VERSION" =
"$OLD_VERSION" ] && return 0
echo -n "Upgrade $prog
database: "
$ZM_PATH_BIN/zmupdate.pl
--version=$OLD_VERSION --noi && ( cd $ZM_PATH_UPDATE; perl
$ZM_PATH_BIN/zmupdate.pl -f )
RETVAL=$?
[ $RETVAL = 0 ] &&
echo_success
[ $RETVAL != 0 ]
&& echo_failure
echo
return $RETVAL
fi
}
start()
{
loadconf || return $?
checkcfg || return $?
checkdb || return $?
#/usr/local/sbin/motd.sh > /etc/motd
echo -n "Starting $prog: "
[ ! -d /var/run/zm ] \
&& mkdir -m 774
/var/run/zm \
&& chown
$ZM_WEB_USER:$ZM_WEB_GROUP /var/run/zm
GetPath="select Value from Config
where Name='ZM_PATH_SOCKS'"
ZM_PATH_SOCK=`echo $GetPath | mysql -B
-h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME | grep -v '^Value'`
[ ! -d $ZM_PATH_SOCK ] \
&& mkdir -m 774
$ZM_PATH_SOCK \
&&chown
$ZM_WEB_USER:$ZM_WEB_GROUP $ZM_PATH_SOCK
$command start
RETVAL=$?
[ $RETVAL = 0 ] && echo success
[ $RETVAL != 0 ] && echo
failure
echo
[ $RETVAL = 0 ] && touch
/var/lock/subsys/zm
return $RETVAL
}
stop()
{
echo -n $"Stopping $prog: "
$command stop
RETVAL=$?
[ $RETVAL = 0 ] && echo success
[ $RETVAL != 0 ] && echo
failure
echo
[ $RETVAL = 0 ] && rm -f
/var/lock/subsys/zm
}
status()
{
result=`$command status`
if [ "$result" =
"running" ]; then
echo "ZoneMinder is
running"
RETVAL=0
else
echo "ZoneMinder is
stopped"
RETVAL=1
fi
}
case "$1" in
'start')
start
;;
'stop')
stop
;;
'restart')
stop
start
;;
'condrestart')
loadconf
checkcfg
result=`$ZM_PATH_BIN/zmdc.pl
check`
if [ "$result" =
"running" ]; then
$ZM_PATH_BIN/zmdc.pl
shutdown > /dev/null
start
fi
;;
'status')
status
;;
*)
echo "Usage: $0 { start |
stop | restart | condrestart | status }"
RETVAL=1
;;
esac
exit $RETVAL
l After past the script
you have make that file executable with the help of
#>
chmod +x /etc/init.d/zm
l After this start the zoneminder.
#>
/etc/init.d/zm start
l You have to increase the kernel memory for this open
sysctl.conf
#>vi
/etc/sysctl.conf
l And this line kernel.shmmax = 134217728
l In apache you have to redirect the client request to
the zoneminder file for this open
vi
/etc/apache2/sites-available/default
Find RedirectMatch
RedirectMatch
^/$ /apache2-default/
replace
RedirectMatch
^/$ /zm/
Save & Exit
l You have to set the cookies.
Type vi /var/www/zm/zm.php
Find
setcookie & add this line
setcookie
(“cookies”,$cookies);
If
it's already added than there is no need to replace.
l Restart the apache2
/etc/init.d/apache2 restart
l Restart Zoneminder
/etc/init.d/zm restart
l It's batter to set the static ip address for ur
zoneminder machine
vi
/etc/networking/interfaces
iface eth0 inet static
address 192.168.1.11
netmask 255.255.255.0
gateway 192.168.1.1
Save
& Exit
Restart the networking or it's
batter to restart ur system :)
Setting up ZoneMinder
l Use a other pc to preform the following steps or use the localhost.
l For zoneminder configuration you have to change some options for this
Click Option and change
Network
- Check ZM_OPT_REMOTE_CAMERAS
Video
- Select jpeg for ZM_VIDEO_STREAM_METHOD
l After this you have to add the new monitor to monitor the different cam.
You have to create seprate monitors for every cam.
Press
add monitor
General - Enter monitor name
Source
Type - Remote / Local / File
l If you are using IP cam than every cam have it's own IP address you can
also set that IP address.
Function
- Monitor / Modect / etc
IP
Source : (Remote Host Name/ IP = 192.168.1.250)
Port # : (Remote Host Port)
Remote
Host Path : /video.cgi or image.jpg
Note :- Every ip cam have a
different path for it's video / images you must
know about you cam IP,Port No, .cgi file path, .jpg file path.
l Enter 640/480 for the Capture Width and Height
Now check the monitor im sure it's working :)
No comments:
Post a Comment