Debian 9 64-bit with Zoneminder 1.30.4 the Easy Way

From ZoneMinder Wiki
Jump to: navigation, search

Debian 9 with Zoneminder 1.30.4

This procedure has been verified with the Debian 9.0.0 released of 17JUN17.

Note: 23JUN17 - I was able to get the libvlc source to work! I have added the install for vlc-plugin-base which allows the Zoneminder install to complete without errors. However, I have been getting some console errors from VLC. It may be my old camera and you may have good results with libvlc but I consider ffmpeg better to use.

I used Debian 9 net install CD (https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.0.0-amd64-netinst.iso).

Install only: web server, SSH server and standard system utilities from tasksel

Login and become root (su root) or prepend sudo to the following commands

If needed check to make sure you are up to date

apt update
apt upgrade
apt dist-upgrade

Install additional LAMP components Mariadb server (recommended)

apt install php mariadb-server php-mysql apache2-mod-php7.0

Secure Mariadb, create root password et. al.

mysql_secure_installation

NOTE:The MySQL/MariaDB configuration file is located at: /etc/mysql/mysql.conf.d/mysqld.cnf To better manage the MariaDB server I recommend you move the config file and replace the default my.cnf symbolic link (this also works for MySQL 5.6).

rm /etc/mysql/my.cnf  
cp /etc/mysql/mariadb.conf.d/50-server.cnf /etc/mysql/my.cnf

Change Mariadb settings:

nano /etc/mysql/my.cnf

Make the following changes:

character-set-server = latin1
collation-server = latin1_swedish_ci

Note: The above settings are actually the Mariadb default. Changing back to default is necessary to avoid errors when logging into Zoneminder. This was added on 01APR17 but is not an April Fool! It may be necessary to align these settings with your regional language.

Ctrl+o Enter to save

CTRL+x to exit

Restart Mariadb

service mariadb restart

Install Zoneminder

Add the Deb Multimedia repository. (instructions at: https://deb-multimedia.org/)

Edit sources.list

nano /etc/apt/sources.list

Add to the end of the file:

deb http://www.deb-multimedia.org stretch main non-free

Ctrl+o Enter to save

CTRL+x to exit

After you have added the necessary line in /etc/apt/sources.list the first package to install is deb-multimedia-keyring.

apt-get update
apt-get install deb-multimedia-keyring

If apt-get can not find the new key, do that :

wget http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb
dpkg -i deb-multimedia-keyring_2016.8.1_all.deb

Update packages list:

apt update
apt upgrade
apt dist-upgrade


Install Zoneminder

apt install zoneminder vlc-plugin-base


Set permissions of /etc/zm/zm.conf to root:www-data 740

chmod 740 /etc/zm/zm.conf
chown root:www-data /etc/zm/zm.conf

Enable Zoneminder service to start at boot

systemctl enable zoneminder.service

Add www-data to the sudo group (to enable use of local video devices)

adduser www-data video

Start Zoneminder

systemctl start zoneminder.service

Check to see that Zoneminder is running

systemctl status zoneminder.service

Enable CGI and Zoneminder configuration in Apache.

a2enmod cgi
a2enmod rewrite
a2enconf zoneminder

Add timezone to PHP

nano /etc/php/7.0/apache2/php.ini

Search for [Date] (Ctrl + w then type Date and press Enter) and make changes as follows for your time zone. Be sure to remove the ; before date.timezone

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/New_York

Ctrl+o Enter to save

CTRL+x to exit

Change permissions in /usr/share/zoneminder/

chown -R www-data:www-data /usr/share/zoneminder/


Restart Apache

service apache2 restart

Open Zoneminder in a web browser (http://server-ip/zm).

Alternate install MySQL Server

Note: Install of MySQL was not tested with the Debian 9.0.0 release but should work based on past experience


apt install php default-mysql-server php-mysql apache2-mod-php7.0

Make a change to MySQL settings: (Note: Your my.cnf may be in another location)

nano /etc/mysql/my.cnf

In the [mysqld] section add the following

sql_mode = NO_ENGINE_SUBSTITUTION

Ctrl+o Enter to save

CTRL+x to exit

Restart MySQL

systemctl restart mysql

Continue with Zoneminder install https://wiki.zoneminder.com/Debian_9_64-bit_with_Zoneminder_1.30.4_the_Easy_Way#Install_Zoneminder