Debian 10 Buster with Zoneminder 1.36.x from ZM Repo

From ZoneMinder Wiki
Revision as of 02:12, 27 November 2019 by Snake (talk | contribs)
Jump to navigationJump to search

Debian 10 Buster with Zoneminder 1.33.x from the ZM Master Repro

This install procedure was developed to use the Debian package developed by iconnor. This is from the Master development version of Zoneminder 1.33.x but is a bit more stable than Zoneminder 1.32.x version and, in my opinion, works better and is kept up to date better than Zoneminder on Debian repros.

NOTE: this guide should also work with Debian 9 / Devuan Ascii (with some superfluous errors, due to init script generators using systemctl. Those can be ignored.). Sysvinit users must manually run the db creation script, and procure an /etc/init.d/zoneminder script (for new installs).

To begin, install Debian 10 (Buster) along with Apache2, PHP and your favorite database (Mariadb recommended).

Add the repro

sudo nano /etc/apt/sources.list

Add the following line to the end of the file

deb https://zmrepo.zoneminder.com/debian/master buster/

CTRL+o then [Enter] to save

CTRL+x to exit

Install the following and retrieve the key from the repro

sudo apt install apt-transport-https gnupg
wget -O - https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | sudo apt-key add -

Important - Make sure the above "wget" process completes without error! If it does not complete you will not get the most recent Zoneminder version this procedure is written for.

sudo apt update

Install mariadb-server, apache and php

sudo apt install mariadb-server apache2 php

Install Zoneminder

sudo apt install zoneminder

Sysvinit only Configure user in mysql for ZM if this is a new install

cat /usr/share/zoneminder/db/zm_create.sql | sudo mysql --defaults-file=/etc/mysql/debian.cnf
echo 'grant lock tables,alter,create,select,insert,update,delete,index on zm.* to 'zmuser'@localhost identified by "zmpass";'    | sudo mysql --defaults-file=/etc/mysql/debian.cnf mysql

The reason this is done, is because the init script generator is using systemctl, and those without systemd don't have this command in the dpkg script at /var/lib/dpkg/info/zoneminder.postinst. So it must be run manually. An /etc/init.d/zoneminder script will also need to be grabbed from an earlier ZM install.

If MySQL/MariaDB is not running during install run

sudo dpkg-reconfigure zoneminder

Enable Zoneminder

sudo systemctl enable zoneminder.service

Enable Apache Modules

sudo a2enconf zoneminder
sudo a2enmod rewrite
sudo a2enmod cgi 

Add your timezone to PHP

Easy way

sed -i "s/;date.timezone =/date.timezone = $(sed 's/\//\\\//' /etc/timezone)/g" /etc/php/7.3/apache2/php.ini

Long way

sudo nano /etc/php/7.3/apache2/php.ini

Search for [Date] (Ctrl + w then type Date and press Enter) and change date.timezone for your time zone. Don’t forget to remove the ; from in front of date.timezone.

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

CTRL+o then [Enter] to save

CTRL+x to exit

Restart Apache and start Zoneminder

sudo service apache2 reload
sudo systemctl start zoneminder  
OR
sudo service zoneminder restart