ZoneMinder video camera security and surveillance: Difference between revisions
Ranger0665 (talk | contribs) (Added community repo reference, changed vim to vi, updated PHP5 to PHP8 references, fixed zm.conf to proper location, added reference to start/connect to MySql) |
Ranger0665 (talk | contribs) (Additional lighttpd configurations needed for latest version of zoneminder) |
||
Line 47: | Line 47: | ||
vi /etc/lighttpd/lighttpd.conf | vi /etc/lighttpd/lighttpd.conf | ||
Go down to the server modules section and uncomment <code>mod_alias</code>, which is needed for the cgi-bin. It should look like: | |||
# {{{ modules | |||
# At the very least, mod_access and mod_accesslog should be enabled. | |||
# All other modules should only be loaded if necessary. | |||
# NOTE: the order of modules is important. | |||
server.modules = ( | |||
# "mod_rewrite", | |||
# "mod_redirect", | |||
"mod_alias", | |||
"mod_access", | |||
# "mod_cml", | |||
# "mod_trigger_b4_dl", | |||
# "mod_auth", | |||
# "mod_status", | |||
# "mod_setenv", | |||
# "mod_proxy", | |||
# "mod_simple_vhost", | |||
# "mod_evhost", | |||
# "mod_userdir", | |||
# "mod_deflate", | |||
# "mod_ssi", | |||
# "mod_usertrack", | |||
# "mod_expire", | |||
# "mod_secdownload", | |||
# "mod_rrdtool", | |||
# "mod_webdav", | |||
"mod_accesslog" | |||
) | |||
# }}} | |||
Go down to the includes section, it should look like: | Go down to the includes section, it should look like: | ||
Line 116: | Line 147: | ||
chown lighttpd.lighttpd /etc/zm/zm.conf | chown lighttpd.lighttpd /etc/zm/zm.conf | ||
Zoneminder will create a cache in <code>/var/cache/zoneminder</code> which isn't created by default. Create this directory and allow lighttpd access to it: | |||
mkdir /var/cache/zoneminder | |||
chown lighttpd.lighttpd /var/cache/zoneminder | |||
Initialize the ZoneMinder database | Initialize the ZoneMinder database |
Revision as of 21:55, 2 October 2022
ZoneMinder usually runs with Apache, but in this short how-to we use Lighttpd.
ZoneMinder is found in the community repositories, please enable it by following the instructions here
First, add the needed packages to our system
apk add zoneminder mariadb mysql-client lighttpd php8-fpm php8-pdo php8-pdo_mysql
Initialize MySQL database
/etc/init.d/mariadb setup
Start the database
/etc/init.d/mariadb start
Set root password for MySQL as instructed by MySQL setup
/usr/bin/mysqladmin -u root password 'your_secure_root_mysql_password'
You can log into MySQL as current root user with
mysql
Create a ZoneMinder MySQL database and user
mysql> create database zm;
mysql> CREATE USER zmuser@localhost IDENTIFIED BY 'your_zm_password_as_set_in_config';
mysql> grant ALL on zm.* to zmuser@localhost;
We are running lighttpd
, so let's run php-fpm
as lighttpd user/group
vi /etc/php8/php-fpm.conf
Add this section to the bottom of the file:
; 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
vi /etc/lighttpd/lighttpd.conf
Go down to the server modules section and uncomment mod_alias
, which is needed for the cgi-bin. It should look like:
# {{{ modules # At the very least, mod_access and mod_accesslog should be enabled. # All other modules should only be loaded if necessary. # NOTE: the order of modules is important. server.modules = ( # "mod_rewrite", # "mod_redirect", "mod_alias", "mod_access", # "mod_cml", # "mod_trigger_b4_dl", # "mod_auth", # "mod_status", # "mod_setenv", # "mod_proxy", # "mod_simple_vhost", # "mod_evhost", # "mod_userdir", # "mod_deflate", # "mod_ssi", # "mod_usertrack", # "mod_expire", # "mod_secdownload", # "mod_rrdtool", # "mod_webdav", "mod_accesslog" ) # }}}
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
vi /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-fpm8 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
vi /etc/zm/zm.conf
Which should look like:
# Username and group that web daemon (httpd/apache) runs as ZM_WEB_USER=lighttpd ZM_WEB_GROUP=lighttpd ZM_PATH_DATA=/usr/share/zoneminder
# 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=zmuser # 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/zm.conf
Zoneminder will create a cache in /var/cache/zoneminder
which isn't created by default. Create this directory and allow lighttpd access to it:
mkdir /var/cache/zoneminder chown lighttpd.lighttpd /var/cache/zoneminder
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-fpm8 default rc-update add zoneminder default
Added notes to work with Nginx
Later to add some notes about running via nginx
Related Links
- https://wiki.alpinelinux.org/wiki/Raspberry_Pi_3_-_Browser_Client - Kiosk to watch Streams