Blog Archives

zoneminder 1.29 (free NVR for Linux) on Ubuntu 16.04 LTS

Having a couple of spare PC parts laying around i put together a linux box, why do i have to pay for windows license ?
Looking over the INTERNET for a Linux based NVR (CCTV Recorder) software, zoneminder came up almost every time.

These steps will get you to install zoneminder 1.29 on Ubuntu 16.04 LTS 64bit as of the post date (May 2016), because fuck knows what other issues will associate other releases (of zoneminder, apache2 or mysql). Nothing much of my effort here, mostly googling around the issues i was facing, this is a list of things to do in order to get it to work.

Official steps of setting up reference here:

(this will install zoneminder, apache2 and mysql (at least it did for me) you will be prompt for mysql root password)

sudo apt-get update
sudo apt-get install zoneminder


Some Database stuff:

sudo mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql

mysql -uroot -p -e "grant select,insert,update,delete,create,alter,index,lock tables on zm.* to 'zmuser'@localhost identified by 'zmpass';"

Some other stuff:

sudo /usr/bin/

sudo systemctl enable zoneminder

sudo a2enconf zoneminder

sudo a2enmod cgi

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

sudo a2enmod rewrite

sudo chown www-data:www-data /etc/zm/zm.conf

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

look for “date.timezone” uncomment and set it to a proper value in my case it was Asia/Amman

sudo service apache2 reload
sudo systemctl restart zoneminder

now you should be able to get to the zoneminder web interface through http://localhost/zm

http://localhost/zm/api/ should show all green

running http://localhost/zm/api/host/getVersion.json should get you the version of zoneminder, if it didn’t do the following

sudo nano /etc/apache2/apache2.conf

Change “None” to “All” in two places reference here:

<Directory /usr/share>
 AllowOverride All
 Require all granted

<Directory /var/www/>
 Options Indexes FollowSymLinks
 AllowOverride All
 Require all granted


To fix the sql error while adding monitor:

sudo cp /usr/share/mysql/my-default.cnf /etc/mysql/my.cnf

sudo nano /etc/mysql/my.cnf







sudo service mysql restart

sudo service zoneminder restart

one last step to avoid flooding the logs:

startup ZM console in your browser, go to Options->Path and make sure PATH_ZMS is set to /zm/cgi-bin/nph-zms and restart ZM (you should not need to do this for packages, as this should automatically work)

Adding Camera:

( RTSP Camera for example)

  • click “Add new monitor”
  • On General Tab:
    • Change Name to desired
    • Source type to FFEMPG
    • function to “Monitor” or “Record” what ever is desired
    • enabled ticked
  • On Source tab:
    • source path: rtsp://<username>:<password>@<ipaddress>/<stream path>
    • example path for dlink: rtsp://admin:admin@
    • remote method RTP/Unicast
    • change resolution to desired
    • click save

note: if you don’t want to have the zoneminder generated timestamp, change the mask on timestamp tab

Congratulations !