Debian 12 Bookworm is released with Zoneminder 1.36.33 and as usual for Debian the zm database needs to be created manually.
Note: This version has been verified with Bookworm Debian 12 official release. A few issues have been found and corrected. Zoneminder now opens in Firefox (Windows, Linux and Android), Edge, Chrome (on Android). ZmNinja on Android also works. If using ZmNinja you may have to clear the API cache. Please report other errors on the Zoneminder forum.
In time a version of Zoneminder for Bookworm will be made available in the zmrepo.
You will have to install sudo and add the user to the sudoers file.
Become root with
Code: Select all
suCode: Select all
apt install sudoCode: Select all
/sbin/adduser username sudo Become root
Code: Select all
sudo suCode: Select all
timedatectl set-timezone Australia/BrisbaneCode: Select all
apt install apache2 mariadb-server php libapache2-mod-php php-mysql lsb-release gnupg2 wgetCode: Select all
nano /etc/php/8.2/apache2/php.iniCode: Select all
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Australia/BrisbaneCTRL+x to exit
Restart Apache
Code: Select all
service apache2 restartCode: Select all
apt install zoneminderCode: Select all
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 reloadCode: Select all
chmod 640 /etc/zm/zm.conf
chown root:www-data /etc/zm/zm.conf
chown -R www-data:www-data /var/cache/zoneminder/
chmod 755 /var/cache/zoneminder/Code: Select all
cp /etc/apache2/conf-available/zoneminder.conf /etc/apache2/conf-available/zoneminder.conf.sav
rm /etc/apache2/conf-available/zoneminder.conf
nano /etc/apache2/conf-available/zoneminder.confCode: Select all
# Remember to enable cgi mod (i.e. "a2enmod cgi").
ScriptAlias /zm/cgi-bin "/usr/lib/zoneminder/cgi-bin"
<Directory "/usr/lib/zoneminder/cgi-bin">
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
AllowOverride All
Require all granted
</Directory>
# Order matters. This alias must come first.
Alias /zm/cache "/var/cache/zoneminder"
<Directory "/var/cache/zoneminder">
Options -Indexes +FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
</Directory>
Alias /zm /usr/share/zoneminder/www
<Directory /usr/share/zoneminder/www>
Options -Indexes +FollowSymLinks
<IfModule mod_dir.c>
DirectoryIndex index.php
</IfModule>
</Directory>
# For better visibility, the following directives have been migrated from the
# default .htaccess files included with the CakePHP project.
# Parameters not set here are inherited from the parent directive above.
<Directory "/usr/share/zoneminder/www/api">
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
RewriteBase /zm/api
</Directory>
<Directory "/usr/share/zoneminder/www/api/app">
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
RewriteBase /zm/api
</Directory>
<Directory "/usr/share/zoneminder/www/api/app/webroot">
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteBase /zm/api
</Directory>Code: Select all
systemctl enable zoneminder.serviceCode: Select all
adduser www-data videoCode: Select all
systemctl start zoneminder.serviceCode: Select all
a2enconf zoneminder
a2enmod rewrite
a2enmod headers
a2enmod expires
a2enmod cgi
service apache2 reload