Difference between revisions of "Debian 11 Bullseye with Zoneminder 1.36.x"

From ZoneMinder Wiki
Jump to navigationJump to search
(40 intermediate revisions by 6 users not shown)
Line 1: Line 1:
This easy install is for Debian 8 (Jessie) with Zoneminder 1.29.0 from the back ports install.
Updated 20OCT22 for shell script install.


I installed Debian from the netinst CD with only web server, SSH server and standard system utilities. Tasksel does not install LAMP under Debian so I installed MySQL and PHP after reboot.
Debian 11 Bullseye is being released with Zoneminder 1.34.23 and as usual for Debian the zm database needs to be created manually. This is not user friendly and 1.34 is considered old and unsupported.  So we will be using the packages provided by the ZoneMinder development team hosted at zmrepo.zoneminder.com.  


Log in as your user
Note: We currently only package for amd64 and armhf so if your are running something else this won't work. 


Then become root
Debian, unlike Ubuntu, does not install sudo with the initial setup. While you can log in as root, a user with sudo authority is recommended.


  sudo root
To enable sudo:
In a terminal,become root with su. Enter your root password.
Install sudo with:
apt install sudo
Add the user account to the group sudo with:
  /sbin/adduser username sudo  
where username is your user account.
Exit root then log out and then log in with the same user.


Install PHP, and MySQL server. Yuo will be prompted to set a MySQL password
Timezone: it is recommended you set your specific timesone with:
  sudo timedatectl set-timezone America/New_York
Of course use your timezone in place of America/New_York.


apt-get install php5 mysql-server php-pear php5-mysql php5-gd
1. Install Debian 11 (Bullseye), desktop or server version, along with Apache2, PHP and your favorite database (Mariadb recommended). A quick way to install LAMP is:


Note: you may want to set MySQL to use innodb_file_per_table. Here is a procedure for Ubuntu that should also work for Debian: https://wiki.zoneminder.com/Common_Issues_with_Zoneminder_Installation_on_Ubuntu#Enable_and_convert_MySQL_to_innodb_file_per_table_for_Zoneminder
  sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql lsb-release gnupg2


Add the Jessie backports
Secure MySQL or Mariadb, create root password et. al.


  nano /etc/apt/sources.list
  mysql_secure_installation


Add to the bottom of the list:
Mariadb additional settings The default values for the database are adequate for initial setup. However, I recommend you make these changes before installing Zoneminder. Note: If you have sufficient memory double the values below. Edit the Mariadb config file:


  deb http://http.debian.net/debian jessie-backports main
  sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf


Ctrl+o Enter to save
Add the following in the [mysql] area:
CTRL+x to exit


Update Sources
innodb_file_per_table = ON
innodb_buffer_pool_size = 256M
innodb_log_file_size = 64M


apt-get update
CTRL+o then [Enter] to save


Check to be sure everything is up to date
CTRL+x to exit


apt-get upgrade
Reatart Mariadb:
apt-get dist-upgrade


Install Zoneminder
sudo service mysql restart


apt-get install zoneminder
I recommend you install mysqltuner and run it from time to time and adjust the database settings as the number of saved events grows.
_________________________________________________________________________________________________________________________________________


New install process with a shell script!


Create Zoneminder database in MySQL (Note: this also creates the default Zoneminder user and permissions in MySQL)
Become root with sudo su before running this!


mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql
Shell script file contents:


  mysql -uroot -p -e "grant all on zm.* to 'zmuser'@localhost identified by 'zmpass';"
  #!/bin/sh
 
clear
  mysqladmin -uroot -p reload
read -p "This script installs ZoneMinder 1.36.x on Debian 11 with LAMP (MySQL or Mariadb) installed...
 
This script must be run as root!
Set permissions of /etc/zm/zm.conf to root:www-data 740
Press Enter to continue or Ctrl + c to quit" nothing
 
clear
chmod 740 /etc/zm/zm.conf
  apt install -y lsb-release gnupg2
   
echo "deb https://zmrepo.zoneminder.com/debian/release-1.36 "`lsb_release  -c -s`"/" | sudo tee /etc/apt/sources.list.d/zoneminder.list
chown root:www-data /etc/zm/zm.conf
  wget -O - https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | sudo apt-key add -
 
read -p "Warning! Check above to insure the line says OK. If not the GPG signing key was not installed and you will need to figure out why before continuing.
Enable Zoneminder service to start at boot
Press enter to continue" nothing
 
apt update
  systemctl enable zoneminder.service
clear
 
apt install -y zoneminder
Add www-data to the sudo group (to enable use of local video devices)
  systemctl enable zoneminder
service zoneminder start
adduser www-data video
a2enconf zoneminder
a2enmod rewrite
a2enmod headers
a2enmod expires
service apache2 reload
clear
read -p "Install complete. Open Zoneminder/Options and set the timezone. Press enter to continue" nothing
clear


adduser www-data sudo


Start Zoneminder
Copy the contents of the script, open a terminal and run:


  systemctl start zoneminder.service
  nano zm-install


Check to see that Zoneminder is running
Paste the contents of the script into Nano


systemctl status zoneminder.service
Then:
 
Enable CGI and Zoneminder configuration in Apache.
a2enmod cgi
 
a2enmod rewrite
a2enconf zoneminder


Add timezone to PHP
Ctrl + o Ctrl + x


nano /etc/php5/apache2/php.ini
Next run:


Search for [Date] (Ctrl + w then type Date and press Enter) and make changes as follows for your time zone
chmod 755 zm-install


[Date]
Start the script by entering:
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/New_York


Ctrl+o Enter to save
./zm-install


CTRL+x to exit
Follow the prompts. Things are pretty simple. The timezone is now set in Zoneminder/Options.


Restart Apache
Good Luck!


service apache2 restart
__________________________________________________________________________________________________________________________________________


Install Cambozola (needed if you use Internet Explorer)
Old procedure retained for reference


cd /usr/src && wget http://www.andywilcock.com/code/cambozola/cambozola-latest.tar.gz
2. Add Zoneminder's repo to your APT configuration:


  tar -xzvf cambozola-latest.tar.gz
  echo "deb https://zmrepo.zoneminder.com/debian/release-1.36 "`lsb_release  -c -s`"/" | sudo tee /etc/apt/sources.list.d/zoneminder.list


replace 936 with cambozola version downloaded
3. Add Zoneminder's GPG signing key:


  cp cambozola-0.936/dist/cambozola.jar /usr/share/zoneminder
  wget -O - https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | sudo apt-key add -


You should now be able to access the web server using http://servername
4. Update package indexes and install the package


sudo apt update


Open Zoneminder in web browser
sudo apt install zoneminder=1.36.31-bullseye1


http://serverip/zm
5. Enable the systemd service and apache configuration


Click Options
sudo systemctl enable zoneminder.service
sudo systemctl start zoneminder
sudo a2enconf zoneminder
sudo a2enmod rewrite headers expires
sudo service apache2 reload


Check Is the (optional) cambozola java streaming client installed (?) Click Save
6. Open Zoneminder http://(IP-Address)/zm


Your Zoneminder install is now ready to add cameras!
7. Change the Timezone in Options-Timezone

Revision as of 21:16, 20 October 2022

Updated 20OCT22 for shell script install.

Debian 11 Bullseye is being released with Zoneminder 1.34.23 and as usual for Debian the zm database needs to be created manually. This is not user friendly and 1.34 is considered old and unsupported. So we will be using the packages provided by the ZoneMinder development team hosted at zmrepo.zoneminder.com.

Note: We currently only package for amd64 and armhf so if your are running something else this won't work.

Debian, unlike Ubuntu, does not install sudo with the initial setup. While you can log in as root, a user with sudo authority is recommended.

To enable sudo: In a terminal,become root with su. Enter your root password. Install sudo with:

apt install sudo

Add the user account to the group sudo with:

/sbin/adduser username sudo 

where username is your user account. Exit root then log out and then log in with the same user.

Timezone: it is recommended you set your specific timesone with:

sudo timedatectl set-timezone America/New_York

Of course use your timezone in place of America/New_York.

1. Install Debian 11 (Bullseye), desktop or server version, along with Apache2, PHP and your favorite database (Mariadb recommended). A quick way to install LAMP is:

sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql lsb-release gnupg2

Secure MySQL or Mariadb, create root password et. al.

mysql_secure_installation

Mariadb additional settings The default values for the database are adequate for initial setup. However, I recommend you make these changes before installing Zoneminder. Note: If you have sufficient memory double the values below. Edit the Mariadb config file:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Add the following in the [mysql] area:

innodb_file_per_table = ON
innodb_buffer_pool_size = 256M
innodb_log_file_size = 64M

CTRL+o then [Enter] to save

CTRL+x to exit

Reatart Mariadb:

sudo service mysql restart

I recommend you install mysqltuner and run it from time to time and adjust the database settings as the number of saved events grows. _________________________________________________________________________________________________________________________________________

New install process with a shell script!

Become root with sudo su before running this!

Shell script file contents:

#!/bin/sh
clear
read -p "This script installs ZoneMinder 1.36.x on Debian 11 with LAMP (MySQL or Mariadb) installed...
This script must be run as root!
Press Enter to continue or Ctrl + c to quit" nothing
clear
apt install -y lsb-release gnupg2
echo "deb https://zmrepo.zoneminder.com/debian/release-1.36 "`lsb_release  -c -s`"/" | sudo tee /etc/apt/sources.list.d/zoneminder.list
wget -O - https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | sudo apt-key add -
read -p "Warning! Check above to insure the line says OK. If not the GPG signing key was not installed and you will need to figure out why before continuing. 
Press enter to continue" nothing
apt update
clear
apt install -y zoneminder
systemctl enable zoneminder
service zoneminder start
adduser www-data video
a2enconf zoneminder
a2enmod rewrite
a2enmod headers
a2enmod expires
service apache2 reload
clear
read -p "Install complete. Open Zoneminder/Options and set the timezone. Press enter to continue" nothing
clear


Copy the contents of the script, open a terminal and run:

nano zm-install

Paste the contents of the script into Nano

Then:

Ctrl + o Ctrl + x

Next run:

chmod 755 zm-install

Start the script by entering:

./zm-install

Follow the prompts. Things are pretty simple. The timezone is now set in Zoneminder/Options.

Good Luck!

__________________________________________________________________________________________________________________________________________

Old procedure retained for reference

2. Add Zoneminder's repo to your APT configuration:

echo "deb https://zmrepo.zoneminder.com/debian/release-1.36 "`lsb_release  -c -s`"/" | sudo tee /etc/apt/sources.list.d/zoneminder.list

3. Add Zoneminder's GPG signing key:

wget -O - https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | sudo apt-key add -

4. Update package indexes and install the package

sudo apt update 
sudo apt install zoneminder=1.36.31-bullseye1

5. Enable the systemd service and apache configuration

sudo systemctl enable zoneminder.service
sudo systemctl start zoneminder
sudo a2enconf zoneminder
sudo a2enmod rewrite headers expires
sudo service apache2 reload

6. Open Zoneminder http://(IP-Address)/zm

7. Change the Timezone in Options-Timezone