ZoneMinder video camera security and surveillance

From Alpine Linux
Revision as of 22:48, 6 December 2015 by Cscracker (talk | contribs) (Added rc-update commands to start on boot)

ZoneMinder usually runs with apache, but in this short howto we use lighttpd.

First add the needed packages to our system

apk add zoneminder mysql mysql-client lighttpd php-fpm php-pdo php-pdo_mysql

Initialize mysql database

/etc/init.d/mariadb setup

set root password for mysql as instructed by mysql setup

/usr/bin/mysqladmin -u root password 'your_secure_root_mysql_password'

Create a zoneminder MySQL database and user

mysql> create database zm;
mysql> CREATE USER zm@localhost IDENTIFIED BY 'your_zm_password_as_set_in_config';
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE, DROP on zm.* to zm@localhost;

We are running lighttpd so lets run php-fpm as lighttpd user/group

vim /etc/php/php-fpm.conf

Which should look like:

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
;user = nobody
;group = nobody
user = lighttpd
group = lighttpd

Enable the php cgi fpm config in lighttpd.conf

vim /etc/lighttpd/lighttpd.conf

Go down to the includes section, it should look like:

# {{{ includes
include "mime-types.conf"
# uncomment for cgi support
   include "mod_cgi.conf"
# uncomment for php/fastcgi support
#   include "mod_fastcgi.conf"
# uncomment for php/fastcgi fpm support
   include "mod_fastcgi_fpm.conf"

# }}}

Edit lighttpd cgi config and add old style cgi support by adding to cgi.assign

vim /etc/lighttpd/mod_cgi.conf

which should look like

cgi.assign = (
    ""      =>      "",
    ".pl"   =>      "/usr/bin/perl",
    ".cgi"  =>      "/usr/bin/perl"
)

start php-fpm

/etc/init.d/php-fpm start

start lighttpd

/etc/init.d/lighttpd start

Set the MySQL hostname, username, password.

Change the ZoneMinder user (ZM_WEB_USER) and group (ZM_WEB_GROUP) to lighttpd

And set ZM_SERVER_HOST to your zoneMinder hostname/ipaddress

vim /etc/zm.conf

Which should look like:

# Username and group that web daemon (httpd/apache) runs as
ZM_WEB_USER=lighttpd
ZM_WEB_GROUP=lighttpd
# ZoneMinder database type: so far only mysql is supported
ZM_DB_TYPE=mysql

# ZoneMinder database hostname or ip address
ZM_DB_HOST=localhost

# ZoneMinder database name
ZM_DB_NAME=zm

# ZoneMinder database user
ZM_DB_USER=zm

# ZoneMinder database password
ZM_DB_PASS=your_zm_password_as_set_in_config

# Host of this machine
ZM_SERVER_HOST=yourserver

Change ownership of zm.conf to lighttpd

chown lighttpd.lighttpd /etc/zm.conf

Initialize the zoneminder database

/etc/init.d/zoneminder setup

Start zoneminder

/etc/init.d/zoneminder start

Profit!

To access zoneminder, browse to http://yourserver/zm/

To make it start automatically on boot:

rc-update add lighttpd default
rc-update add mariadb default
rc-update add php-fpm default
rc-update add zoneminder default