Debian 6 Squeeze 64-bit with ZoneMinder 1.25.0 Preview, FFmpeg, libjpeg-turbo, Webmin, Cambozola(Spanish Diciembre 2011)

From ZoneMinder Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Basado en la guia para Ubuntu 11.04 con Zoneminder 1.25.0 ACTUALIZADO: 15 de Marzo 2012

#Descargar e instalar Debian Squeeze (estable) NetInstall 64-bits (http://www.debian.org/CD/netinst/) No es necesario descargar la imagen de CD completa. Netinst pesa un poco mas de 100 MB
#En la seleccion de software, solo instalar OpenSSH, y el Servidor de Correo (Postfix).
#Para el servidor de correo, puedes usar "Internet Site".
#Despues de instalar, iniciar sesión y establecer IP estatica. La IP es de acuerdo a tu red

###############
#Volverse root#
###############

su

#Coloca la contraseña ingresada durante la instalación.

############################
#Establecer la IP estatica#
############################

nano /etc/network/interfaces

####################################
####################################
  
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1

####################################
####################################

#Presionar Ctrl + O para guardar y Ctrl + X para salir de nano. 

#Reiniciar la red

/etc/init.d/networking restart

#Con IP estatica y conexión a Internet ya se puede usar SSH desde otra computadora Linux de la red y conectarte a tu nuevo sistema Debian.

#Se puede Copiar/Pegar los siguientes comandos en la consola o si se prefiere escribirlos. Los comandos multiples sin lineas vacias en medio se pueden copiar y pegar juntas. No pegar lineas que inician con #

####################################
#Guardar logs del arranque Debian#
####################################

#Es util si por alguna razon Zoneminder no se inicia bien.

nano /etc/default/bootlogd

#Cambiamos el valor del archivo a Yes quedando asi:

BOOTLOGD_ENABLE=Yes

# Presionar Ctrl + O para guardar y Ctrl + X para salir de nano
# La proxima vez que se reinicie el sistema podemos buscar en /var/log/boot para conocer los detalles del arranque de Debian.

#########################
#Agregar un repositorio#
#########################

#Util para no tener errores en futuras compilaciones necesarias. 
#El paquete debian-multimedia-keyring maneja llaves del repositorio

apt-get install debian-multimedia-keyring

#Se edita el archivo sources.list para agregar el repositorio

nano /etc/apt/sources.list

#Se agrega el repositorio en la ultima linea del archivo sources.list

deb http://www.debian-multimedia.org squeeze main

#Presionar Ctrl + O para guardar y Ctrl + X para salir de nano

########################
#Actualizar el sistema#
########################

apt-get update

apt-get upgrade

##############################
#Instalar paquetes Multimedia#
##############################

#El paquete obligatorio es libfaac-dev pero se pueden instalar los otros para asegurar el funcionamiento.
#Se indica SI al instalador con una S

apt-get install libfaac-dev
apt-get install libmp3lame-dev
apt-get install libogg-dev
apt-get install libtheora-dev
apt-get install libvorbis-dev
apt-get install libx264-dev
apt-get install libxvidcore4-dev

##############################
#Minimo/Maximo Memoria Kernel#
##############################
#Si se presenta un error como: ERR [Got unexpected memory map file size 1524, expected 9217524] entonces consultar el wiki de Zoneminder.
#www.zoneminder.com/wiki/index.php/FAQ#What_does_a_.27Can.27t_shmget:_Invalid_argument.27_error_in_my_logs_mean.3F_and_my_cameras_won.27t_display_video_at_higher_resolutions
#Se edita el archivo sysctl.conf

nano /etc/sysctl.conf

#Se agrega al final del archivo lo siguiente dejando una linea en blanco de ultimo

kernel.shmall = 167772160
kernel.shmmax = 167772160

#Se reinicia el sistema

reboot

##############################
#Instalar paquetes necesarios#
##############################

#No olvidar volverse root nuevamente con: su

aptitude install acpid build-essential linux-headers-`uname -r` automake perl libauthen-pam-perl \
apache2 libpam-runtime libio-pty-perl libmysqlclient-dev php5 php5-cli libapache2-mod-php5 php5-mysql \
libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl libjpeg62 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 yasm libnet-ssleay-perl libauthen-pam-perl libio-pty-perl apt-show-versions git-core mysql-server mysql-client

#############################
#Descargar e Instalar Webmin#
#############################

wget http://downloads.sourceforge.net/project/webadmin/webmin/1.570/webmin_1.570_all.deb?use_mirror=voxel

mv webmin_1.570_all.deb\?use_mirror=voxel webmin_1.570_all.deb && \
dpkg -i webmin_1.570_all.deb

############################################
#Descargar e instalar libjpeg-turbo# (AMD64)
############################################

wget http://downloads.sourceforge.net/project/libjpeg-turbo/1.1.1/libjpeg-turbo_1.1.1_amd64.deb?use_mirror=voxel

mv libjpeg-turbo_1.1.1_amd64.deb?use_mirror=voxel libjpeg-turbo_1.1.1_amd64.deb && \
dpkg -i libjpeg-turbo_1.1.1_amd64.deb

#Se crean enlaces

ln -s /opt/libjpeg-turbo/lib/libjpeg.a /usr/lib/libjpeg.a && \
ln -s /opt/libjpeg-turbo/include/jconfig.h /usr/include/jconfig.h && \
ln -s /opt/libjpeg-turbo/include/jerror.h /usr/include/jerror.h && \
ln -s /opt/libjpeg-turbo/include/jmorecfg.h /usr/include/jmorecfg.h && \
ln -s /opt/libjpeg-turbo/include/jpeglib.h /usr/include/jpeglib.h

###########################
#Configurar rutas para Lib#
##########################

echo "/opt/libjpeg-turbo/lib" > /etc/ld.so.conf.d/libjpeg-turbo.conf && \
echo "/usr/local/lib" > /etc/ld.so.conf.d/ffmpeg.conf && \
echo "LD_LIBRARY_PATH=/usr/local/lib:/opt/libjpeg-turbo/lib:$LD_LIBRARY_PATH" >> /etc/bash.bashrc && \
echo "export LD_LIBRARY_PATH" >> /etc/bash.bashrc

ldconfig

##########################
#Instalar modulos de Perl#
##########################

#Ejecutar linea por linea y esperar a que descargue los modulos de Perl 

perl -MCPAN -e shell

install CPAN

exit

perl -MCPAN -e shell

install YAML PHP::Serialization Module::Load X10::ActiveHome

exit

LC_ALL=C perl -MCPAN -e shell

install Sys::Mmap

install DBI

install DBD::mysql

exit

#################
#Instalar FFmpeg#
#################
#Version de FFMPEG 0.10

cd /usr/src && wget http://ffmpeg.org/releases/ffmpeg-0.10.tar.gz

tar -xzvf ffmpeg-0.10.tar.gz

mv ffmpeg-0.10 ffmpeg

#Preparar y compilar FFmpeg

cd /usr/src/ffmpeg/ && ./configure --enable-gpl --enable-shared --enable-pthreads --enable-libx264 --enable-libfaac --enable-nonfree --enable-x11grab --enable-version3

make

make install

make install-libs

cd /lib && ln -s /usr/local/lib/libswscale.so.0 && \
ln -s /usr/local/lib/libavformat.so.52 && \
ln -s /usr/local/lib/libavcodec.so.52 && \
ln -s /usr/local/lib/libavutil.so.50 && \
ln -s /usr/local/lib/libavdevice.so.52

ldconfig

#####################
##Instalar Zoneminder#
#####################

cd /usr/src 

wget http://www.zoneminder.com/downloads/ZoneMinder-1.25.0.tar.gz

tar -xzvf ZoneMinder-1.25.0.tar.gz

mv ZoneMinder-1.25.0 zm

#Con las siguientes lineas se dan los parametros para el archivo de configuracion de Zoneminder
#Cuidado con los datos en: ZM_DB_HOST=localhost ZM_DB_NAME=zm ZM_DB_USER=zmuser ZM_DB_PASS=zmpass 
#Esos datos son necesarios para la comunicacion de ZM con Mysql 

cd /usr/src/zm && \ 
./configure --with-webdir=/var/www/zm --with-cgidir=/usr/lib/cgi-bin \
ZM_DB_HOST=localhost ZM_DB_NAME=zm ZM_DB_USER=zmuser \
ZM_DB_PASS=zmpass ZM_SSL_LIB=openssl --enable-debug=no \
--with-webgroup=www-data --with-webuser=www-data --enable-mmap=yes CPPFLAGS="-D__STDC_CONSTANT_MACROS ${CPPFLAGS}"

autoconf

aclocal

automake

make

#Se conecta a Mysql para crear la BD necesaria para Zoneminder.

mysql -u root -p < db/zm_create.sql

#La contraseña solicitada es la que se ingreso para root de Mysql durante la instalación de paquetes. No es contraseña del sistema.

mysql -u root -p

#A continuacion usar los datos ingresados arriba para el archivo de configuracion de Zoneminder.

grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass';

quit

mysqladmin -p reload

#Se termina de compilar y se instala ZM

make install

####################
#Instalar Cambozola#
####################

cd /usr/src && wget http://www.charliemouse.com:8080/code/cambozola/cambozola-latest.tar.gz

tar -xzvf cambozola-latest.tar.gz

#Cambiar las xx con el numero de version descargada de cambozola

cp cambozola-0.xx/dist/cambozola.jar /var/www/zm

##########################################
##Crear el script que iniciará ZoneMinder#
##########################################

nano -w /etc/init.d/zm

#Copiar todo lo que se encuentra entre las lineas de abajo y pegarlo en el archivo zm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#!/bin/sh
### BEGIN INIT INFO
# Provides:          ZM
# Required-Start:    $network mysql $local_fs 
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: <Enter a short description of the sortware>
# Description:       <Enter a long description of the software>
#                    <...>
#                    <...>
### END INIT INFO

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

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#Presionar Ctrl + O para guardar y Ctrl + X para salir de nano

#Se dan permisos de ejecución al archivo

chmod 755 /etc/init.d/zm

#Se asigna un usuario especifico al directorio /tmp/zm

chown www-data:www-data -R /tmp/zm

###########################
#Inicio de Zoneminder#
###########################
#Si no existieron errores en la compilacion se puede iniciar ZM para ver si todo funciona correctamente

/etc/init.d/zm start

#En Firefox, ir a http://Tu_IP_Zoneminder/zm y aparecerá la interfaz de ZM

###########################
#Auto-Inicio de Zoneminder#
###########################

#En Firefox, ir a https://Tu_IP_ZoneMinder:10000 para ver la interfaz de Webmin. (Usar el usuario root y contraseña de Debian)

#En el menu de la izquierda, ir a "System" > "Bootup and Shutdown". Buscar y seleccionar zm y hacer click en "StartNow and On Boot"

#################################
#Extras (No necesarios para ZM )#
#################################

#Si se desea ingresar directamente a ZM con solo poner IP o dominio hacer lo siguiente en Webmin. 
#En el menu de la izquierda, ir a "Servers" > "Apache Webserver" Hacer click en "Virtual Server". En "Document Root" se debe cambiar de /var/www a /var/www/zm y luego click en Save.
#Por ultimo, en la parte superior derecha hacer click en "Apply changes"
#En el mismo menu de Webmin es posible cambiar el puerto predeterminado (80). Al cambiarlo tambien se debe editar el archivo /etc/apache2/ports.conf y colocar el nuevo puerto.

######################
# Pequeños Problemas #
######################

#Si se agrega un nuevo monitor o se modifica un existente y se quiere usar la funcion Probe muestra un error: Unable to probe network cameras, status is '127'
#Para solucionar el error editamos como root el archivo /skins/classic/views/monitorprobe.php y buscamos la linea $command = "arp -a";
#Esa linea se sustituye con: $command = "/usr/sbin/arp -a";
#Ya debe funcionar Probe.