Debian 10 Buster with Zoneminder 1.36.x from ZM Repo

From ZoneMinder Wiki
Revision as of 13:38, 16 July 2019 by Bbunge (talk | contribs)
Jump to navigationJump to search

Debian 10 Buster with Zoneminder 1.32.3 from the Debian Multimedia Repository

Install Debian Buster. I used the net install CD and installed only web server, SSH server and standard system utilities from tasksel.

Login and become root. I have added sudo and permissions for my user and have omitted the use of sudo before each command.

sudo su

Install additional LAMP components

apt install php mariadb-server php-mysql libapache2-mod-php7.3

Secure Mariadb, create root password et. al.

mysql_secure_installation


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 buster 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.

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
apt update

Install Zoneminder

apt install zoneminder vlc-plugin-base 


Create Zoneminder database in MySQL (Note: this also creates the default Zoneminder user and permissions in MySQL)

mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql
mysql -uroot -p -e "grant all on zm.* to 'zmuser'@localhost identified by 'zmpass';"
mysqladmin -uroot -p reload

Set permissions

chmod 740 /etc/zm/zm.conf
chown root:www-data /etc/zm/zm.conf
chown -R www-data:www-data /usr/share/zoneminder/
chown -R www-data:www-data /var/cache/zoneminder/

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.3/apache2/php.ini

Search for [Date] (Ctrl + w then type Date and press Enter) and make changes as follows for your time zone

[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

To get the API working you need to create .htaccess in 3 places and add the code below. (Thanks Chimaera!)

nano /usr/share/zoneminder/www/api/.htaccess
nano /usr/share/zoneminder/www/api/app/.htaccess
nano /usr/share/zoneminder/www/api/app/webroot/.htaccess

Code for .htaccess files:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    RewriteBase /zm/api
</IfModule>

Ctrl+o Enter to save

CTRL+x to exit

Restart Apache

service apache2 restart

All done! Navigate to http://serverip/zm