Installing ZoneMinder on Debian Lenny


Edit your /etc/apt/sources.list as follows: Where in my original sources.list I have:

deb lenny main
deb-src lenny main

deb lenny/updates main
deb-src lenny/updates main

Edit this so at the end of each line it reads

deb lenny main contrib non-free
deb-src lenny main contrib non-free

deb lenny/updates main contrib non-free
deb-src lenny/updates main contrib non-free

Then you’ll be wanting to run apt-get update and then:

apt-get install build-essential apache2 mysql-server netpbm libssl-dev \
    libjpeg62-dev libmime-perl libwww-perl libarchive-tar-perl \
    libdate-manip-perl libarchive-zip-perl libmime-lite-perl libdbi-perl \
    libdbd-mysql libdbd-mysql-perl libpcre3-dev php5 php5-mysql \
    libapache2-mod-auth-mysql libmysqlclient15-dev gnutls-bin
    ffmpeg pciutils

Course there’ll be a whole load of dependencies to install so obviously ‘Y’ to the proceeding installation question.

Now might be an idea to CTRL+D, mkdir ~/zminder && cd ~/zminder to keep all the following program files in the same place.

Before the installation can proceed, there’s one more dependancy required, that of Perl’s PHP::Serialisation library. This allows zoneminder to store data on rows in a serialised fashion. If this is the first time you’ve used the perl shell, it’ll ask you some questions. Read them. But you’ll probably be wanting to answer yes to all of them.

(You’ll have to be root - sudo bash or su -)

perl -MCPAN -e shell
install PHP::Serialization

Then back to the folder:

cd ~/zminder
tar -zxvf ZoneMinder-1.24.2.tar.gz

Then to configure:

cd ZoneMinder-1.24.2
./configure --with-webdir=/var/www/zm --with-cgidir=/usr/lib/cgi-bin \
    --with-webuser=www-data --with-webgroup=www-data --with-libarch=lib \

Sometimes (like in my case) there’s a problem with the ssl headers so change the command line as follows:

./configure --with-webdir=/var/www/zm --with-cgidir=/usr/lib/cgi-bin \
    --with-webuser=www-data --with-webgroup=www-data --with-libarch=lib \
    --with-ffmpeg=/usr/local ZM_SSL_LIB=openssl

So now that it’s all configured, let’s install:

sudo make install

It’s a good idea to stick to a regime of configuration and compiling in a non-root shell. Keeps things tidy - and if it goes bananas (not that it ever has, in my case) you’ll be sure it’s not affecting/ed the rest of your system.

Now it’s installed we may ^D again back into the user shell and get the database up and running.

In the zoneminder folder ~/zminder:

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

Finally, a password!

mysql -u root -p -e "grant all privileges on zm.* to 'zminder'@'localhost' \
    identified by 'xXxDybByLzcv9y'"

Now, as default, this password is expected in the .conf is the zuser:zpass combination. We changed this though from the default as expected, so let’s modify:

vi /usr/local/etc/zm.conf

and then change the bottom two configurations to zminder:yourpassword.

One final thing - the apache2 install is as default not enabled with php5. If you’re running php already with apache2, you’re not going to have to do this, but otherwise:

a2enmod php5 && apache2ctl restart


Now take your web browser to http://serveripaddress/zm (as default) or if on localhost, http://localhost/zm

You may of course configure apache2 outwith these specs to provide access on a vhost, but I will leave that up to yourselves.

So that’s the basic installation done. From here, you may add your cameras, monitors and so forth.