Ubuntu Server 9.04 - ZM 1.24.2 Source Installation Guide
Posted: Wed Aug 19, 2009 5:14 am
I thought that this little updated step by step guide might help others. Most of the content was from jsylvia's wiki guide. I have performed this install on 64 and 32 bit systems.
INSTALL SERVER OS
Install Ubuntu Server 9.04 amd64. Do not install any packages other than openssh-server.
GO SUDO AND STAY THERE FOR ENTIRE INSTALLATION
sudo -i
UPDATE SERVER OS
apt-get update; apt-get dist-upgrade
CHANGES FOR LIB PATHS
echo "/usr/local/lib" > /etc/ld.so.conf.d/ffmpeg.conf
echo "LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH" >> /etc/bash.bashrc
echo "export LD_LIBRARY_PATH" >> /etc/bash.bashrc
ldconfig
INSTALL ALL PREREQUISITES
apt-get install build-essential linux-headers-`uname -r` automake perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl apache2 php5-mysql libapache2-mod-php5 mysql-server libmysqlclient15-dev libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl libjpeg62 libjpeg62-dev libmime-perl libstdc++6 libwww-perl zlib1g zip unzip patch ntp openssl libpcre3-dev libssl-dev libjpeg-progs libcurl4-gnutls-dev munin munin-node libmime-lite-perl netpbm libbz2-dev subversion sysvconfig checkinstall
INSTALL PERL MODULES
perl -MCPAN -e shell
install CPAN
exit
perl -MCPAN -e shell
install YAML PHP::Serialization Module::Load X10::ActiveHome
exit
INSTALL FFMPEG
cd /usr/src
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-shared --enable-pthreads
make
checkinstall --fstrans=no --install=yes --pkgname=ffmpeg --pkgversion "3:0.svn`date +%Y%m%d`-12ubuntu3" --default
ldconfig
INSTALL AND CONFIGURE ZONEMINDER
cd /usr/src
svn co http://svn.zoneminder.com/svn/zm/trunk zm
cd zm
./configure --with-webdir=/var/www --with-cgidir=/usr/lib/cgi-bin ZM_DB_HOST=localhost ZM_DB_NAME=zm ZM_DB_USER=zmuser ZM_DB_PASS=zmpass --enable-debug=yes --with-webgroup=www-data --with-webuser=www-data
aclocal
autoconf
automake
make
mysql -u root -p < db/zm_create.sql
mysql -u root -p
grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass';
flush privileges;
quit
checkinstall --fstrans=no --install=yes --pkgname=ZoneMinder --pkgversion "1.24.svn`date +%Y%m%d`" --default
INSTALL CAMBOZOLA
cd /usr/src
wget http://www.charliemouse.com:8080/code/c ... est.tar.gz
tar -xzvf cambozola-latest.tar.gz
cp cambozola-0.76/dist/cambozola.jar /var/www
INSTALL JSCALENDAR
cd /usr/src
wget http://prdownloads.sourceforge.net/jsca ... p?download
unzip jscalendar-1.0.zip
mkdir /var/www/tools/jscalendar
cp -R jscalendar-1.0/* /var/www/tools/jscalendar
REMOVE EXISTING index.html
rm /var/www/index.html
CREATE ZONEMINDER STARTUP SCRIPT
**If you don't know how to use vi then use nano instead for next stop**
vi /etc/init.d/zm
(PASTE THE FOLLOWING)
#!/bin/sh
# description: Control ZoneMinder as a Service
# chkconfig: 2345 99 99
# Source function library.
#. /etc/rc.d/init.d/functions
prog=ZoneMinder
ZM_PATH_BIN="/usr/local/bin"
command="$ZM_PATH_BIN/zmpkg.pl"
start() {
echo -n "Starting $prog: "
$command start
RETVAL=$?
[ $RETVAL = 0 ] && echo success
[ $RETVAL != 0 ] && echo failure
return $RETVAL
}
stop() {
echo -n "Stopping $prog: "
$command stop
RETVAL=$?
[ $RETVAL = 0 ] && echo success
[ $RETVAL != 0 ] && echo failure
}
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
;;
'status')
status
;;
*)
echo "Usage: $0 { start | stop | restart | status }"
RETVAL=1
;;
esac
exit $RETVAL
(SAVE AND EXIT)
MAKE ZM STARTUP SCRIPT EXECUTABLE
chmod 755 /etc/init.d/zm
USE sysvconfig TO START ZONEMINDER UPON REBOOT
sysvconfig
IF YOU ARE USING UBUNTU amd64 VERSION CREATE SYMBOLIC LINKS
cd /usr/lib64
ln -s /usr/local/lib/libswscale.so.0 ./libswscale.so.0
ln -s /usr/local/lib/libavformat.so.52 ./libavformat.so.52
ln -s /usr/local/lib/libavcodec.so.52 ./libavcodec.so.52
ln -s /usr/local/lib/libavutil.so.50 ./libavutil.so.50
ln -s /usr/local/lib/libavdevice.so.52 ./libavdevice.so.52
REBOOT THE SERVER
/sbin/shutdown now -r
INSTALL SERVER OS
Install Ubuntu Server 9.04 amd64. Do not install any packages other than openssh-server.
GO SUDO AND STAY THERE FOR ENTIRE INSTALLATION
sudo -i
UPDATE SERVER OS
apt-get update; apt-get dist-upgrade
CHANGES FOR LIB PATHS
echo "/usr/local/lib" > /etc/ld.so.conf.d/ffmpeg.conf
echo "LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH" >> /etc/bash.bashrc
echo "export LD_LIBRARY_PATH" >> /etc/bash.bashrc
ldconfig
INSTALL ALL PREREQUISITES
apt-get install build-essential linux-headers-`uname -r` automake perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl apache2 php5-mysql libapache2-mod-php5 mysql-server libmysqlclient15-dev libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl libjpeg62 libjpeg62-dev libmime-perl libstdc++6 libwww-perl zlib1g zip unzip patch ntp openssl libpcre3-dev libssl-dev libjpeg-progs libcurl4-gnutls-dev munin munin-node libmime-lite-perl netpbm libbz2-dev subversion sysvconfig checkinstall
INSTALL PERL MODULES
perl -MCPAN -e shell
install CPAN
exit
perl -MCPAN -e shell
install YAML PHP::Serialization Module::Load X10::ActiveHome
exit
INSTALL FFMPEG
cd /usr/src
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-shared --enable-pthreads
make
checkinstall --fstrans=no --install=yes --pkgname=ffmpeg --pkgversion "3:0.svn`date +%Y%m%d`-12ubuntu3" --default
ldconfig
INSTALL AND CONFIGURE ZONEMINDER
cd /usr/src
svn co http://svn.zoneminder.com/svn/zm/trunk zm
cd zm
./configure --with-webdir=/var/www --with-cgidir=/usr/lib/cgi-bin ZM_DB_HOST=localhost ZM_DB_NAME=zm ZM_DB_USER=zmuser ZM_DB_PASS=zmpass --enable-debug=yes --with-webgroup=www-data --with-webuser=www-data
aclocal
autoconf
automake
make
mysql -u root -p < db/zm_create.sql
mysql -u root -p
grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass';
flush privileges;
quit
checkinstall --fstrans=no --install=yes --pkgname=ZoneMinder --pkgversion "1.24.svn`date +%Y%m%d`" --default
INSTALL CAMBOZOLA
cd /usr/src
wget http://www.charliemouse.com:8080/code/c ... est.tar.gz
tar -xzvf cambozola-latest.tar.gz
cp cambozola-0.76/dist/cambozola.jar /var/www
INSTALL JSCALENDAR
cd /usr/src
wget http://prdownloads.sourceforge.net/jsca ... p?download
unzip jscalendar-1.0.zip
mkdir /var/www/tools/jscalendar
cp -R jscalendar-1.0/* /var/www/tools/jscalendar
REMOVE EXISTING index.html
rm /var/www/index.html
CREATE ZONEMINDER STARTUP SCRIPT
**If you don't know how to use vi then use nano instead for next stop**
vi /etc/init.d/zm
(PASTE THE FOLLOWING)
#!/bin/sh
# description: Control ZoneMinder as a Service
# chkconfig: 2345 99 99
# Source function library.
#. /etc/rc.d/init.d/functions
prog=ZoneMinder
ZM_PATH_BIN="/usr/local/bin"
command="$ZM_PATH_BIN/zmpkg.pl"
start() {
echo -n "Starting $prog: "
$command start
RETVAL=$?
[ $RETVAL = 0 ] && echo success
[ $RETVAL != 0 ] && echo failure
return $RETVAL
}
stop() {
echo -n "Stopping $prog: "
$command stop
RETVAL=$?
[ $RETVAL = 0 ] && echo success
[ $RETVAL != 0 ] && echo failure
}
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
;;
'status')
status
;;
*)
echo "Usage: $0 { start | stop | restart | status }"
RETVAL=1
;;
esac
exit $RETVAL
(SAVE AND EXIT)
MAKE ZM STARTUP SCRIPT EXECUTABLE
chmod 755 /etc/init.d/zm
USE sysvconfig TO START ZONEMINDER UPON REBOOT
sysvconfig
IF YOU ARE USING UBUNTU amd64 VERSION CREATE SYMBOLIC LINKS
cd /usr/lib64
ln -s /usr/local/lib/libswscale.so.0 ./libswscale.so.0
ln -s /usr/local/lib/libavformat.so.52 ./libavformat.so.52
ln -s /usr/local/lib/libavcodec.so.52 ./libavcodec.so.52
ln -s /usr/local/lib/libavutil.so.50 ./libavutil.so.50
ln -s /usr/local/lib/libavdevice.so.52 ./libavdevice.so.52
REBOOT THE SERVER
/sbin/shutdown now -r