Difference between revisions of "Ubuntu Server 19.10 Zoneminder 1.33.x"

From ZoneMinder Wiki
Jump to navigationJump to search
Line 73: Line 73:
  sudo checkinstall
  sudo checkinstall
Follow the instructions on the screen.  
Follow the instructions on the screen.  
Change the description values as following: Name=''libmp4v2-2'', Version=''2.0'', Provides=''libmp4v2-2''
Change the description values as following: Name='''''libmp4v2-2''''', Version='''''2.0''''', Provides='''''libmp4v2-2'''''




Line 161: Line 161:


CTRL +o Enter to save, then CTRL +x to exit
CTRL +o Enter to save, then CTRL +x to exit





Revision as of 10:47, 2 May 2019

<Home

Zoneminder 1.32 made it into the "official" Ubuntu 19.04 repositories. Unfortunately the MP4 recording and playback does not work with the shipped version as there are missing libraries (libmp4v2-2). So events can only be saved in jpeg-frames, video recordings do not happen. [State: 01 MAY 2019]

These instructions will show how to install Zoneminder 1.32-3 from the iconnor ppa with mp4 support to use video recordings.


You will need to install LAMP then secure MySQL before installing Zoneminder.


Preparations

Install needed packages:

sudo apt-get install x264 x265 build-essential checkinstall gdebi


Secure MySQL or Mariadb:

mysql_secure_installation


Add entry into my.cnf:

nano /etc/mysql/my.cnf


Add the following to the end of the file:

[mysqld]
sql_mode = NO_ENGINE_SUBSTITUTION

CTRL + o CTRL + x

Restart MySQL:

service mysql restart


Install the official repository for the current stable version 1.32:

sudo add-apt-repository ppa:iconnor/zoneminder-1.32

Now installing zoneminder by "sudo apt-get install zoneminder" will not work because of missing dependencies (as of 05/01/2019)



Installing libmp4v2-2

Download and compile libmp4v2-2:

wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/mp4v2/mp4v2-2.0.0.tar.bz2

tar xf mp4v2-2.0.0.tar.bz2
cd mp4v2-2.0.0/
mkdir build/ && cd build/
../configure CXXFLAGS='-fpermissive' CFLAGS='-fpermissive'
make

Don't leave this folder.


Install libmp4v2-2 as debian package:

sudo checkinstall

Follow the instructions on the screen. Change the description values as following: Name=libmp4v2-2, Version=2.0, Provides=libmp4v2-2



Repacking zoneminder deb-package and installation

We have to repack the zoneminder deb-package to fix the dependencies issue (libx264-155).

Download the current deb-package:

wget https://launchpad.net/~iconnor/+archive/ubuntu/zoneminder-1.32/+files/zoneminder_1.32.3-disco_amd64.deb

Extract the deb-package:

ar x zoneminder_1.32.3-disco_amd64.deb
tar xf control.tar.xz

Rewrite the required dependencies:

nano control

search for "libx264-155" and move it after "libx264-152 | ".

Repack the deb-package:

tar c {post,pre}{inst,rm} md5sums control | gzip -c > control.tar.gz
ar rcs zoneminder_1.32.3-disco_repacked_amd64.deb debian-binary control.tar.gz data.tar.xz


Install Zoneminder:

sudo gdebi zoneminder_1.32.3-disco_repacked_amd64.deb

Other missing dependencies will automaticely be installed.



Post-installation procedures

Create the Database:

The database is not created automatically. Create the database with:

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


Fix permissions:

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


Enable Apache features:

sudo a2enmod cgi
sudo a2enmod rewrite
sudo a2enconf zoneminder

sudo service apache2 restart


Add user www-data to group video, for accessing local cameras:

sudo adduser www-data video
sudo usermod -a -G video www-data


Enable Zoneminder service:

systemctl enable zoneminder.service


Add timezone to PHP:

sudo nano /etc/php/7.2/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 = Europe/Luxembourg

CTRL +o Enter to save, then CTRL +x to exit



Finally, restart Apache and zoneminder

sudo service apache2 reload
sudo service zoneminder restart


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