Debian 11 Bullseye with Zoneminder 1.36.x
Updated 23AUG16 for Debian 8.5
This easy install is for Debian 8 (Jessie) with Zoneminder 1.29.0 from the back ports 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.
Log in as your user
Then become root
sudo root
Install PHP, and MySQL server. You will be prompted to set a MySQL password
apt-get install php5 mysql-server php-pear php5-mysql php5-gd
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
Add the Jessie backports
nano /etc/apt/sources.list
Add to the bottom of the list:
deb http://ftp.debian.org/debian jessie-backports main
Ctrl+o Enter to save CTRL+x to exit
Update Sources
apt-get update
Check to be sure everything is up to date
apt-get upgrade
apt-get dist-upgrade
Install Zoneminder
apt-get install zoneminder
or (if the above does not work)
apt-get -t jessie-backports install zoneminder
Create Zoneminder database in MySQL (Note: this also creates the default Zoneminder user and permissions in MySQL)
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 reload
Set permissions of /etc/zm/zm.conf to root:www-data 740
chmod 740 /etc/zm/zm.conf chown root:www-data /etc/zm/zm.conf
Enable Zoneminder service to start at boot
systemctl enable zoneminder.service
Add www-data to the sudo group (to enable use of local video devices)
adduser www-data video
Start Zoneminder
systemctl start zoneminder.service
Check to see that Zoneminder is running
systemctl status zoneminder.service
Enable CGI and Zoneminder configuration in Apache.
a2enmod cgi
a2enmod rewrite a2enconf zoneminder
Add timezone to PHP
nano /etc/php5/apache2/php.ini
Search for [Date] (Ctrl + w then type Date and press Enter) and make changes as follows for your time zone
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = America/New_York
Ctrl+o Enter to save
CTRL+x to exit
27FEB16 A problem has been cited that requires the following to allow the API to work properly:
Change permissions in /usr/share/zoneminder/
chown -R www-data:www-data /usr/share/zoneminder/
Edit /etc/apache2/conf-enabled/zoneminder.conf
nano /etc/apache2/conf-enabled/zoneminder.conf
Add at the bottom:
<Directory /usr/share/zoneminder/www/api> AllowOverride All </Directory>
Ctrl+o Enter to save
CTRL+x to exit
Note that if you are using the API and If you alter the ZM mysql db password from the default then you must specify the new password. This file is located at /usr/share/zoneminder/www/api/app/Config/database.php per this post
Restart Apache
service apache2 restart
Optional: Install Cambozola (needed if you use old versions of Internet Explorer) Note: Cambozola requires Java Runtime Environement which many consider a security risk.
cd /usr/src && wget http://www.andywilcock.com/code/cambozola/cambozola-latest.tar.gz
tar -xzvf cambozola-latest.tar.gz
replace 936 with cambozola version downloaded
cp cambozola-0.936/dist/cambozola.jar /usr/share/zoneminder
You should now be able to access the web server using http://servername
Open Zoneminder in web browser
Optional:Click Options, check Is the (optional) cambozola java streaming client installed (?) Click Save
Your Zoneminder install is now ready to add cameras!
For a slight performance boost use 32 bit colour in camera settings.