2015-10-04 00:04:58 +08:00
|
|
|
New installs
|
|
|
|
============
|
2013-09-16 05:33:09 +08:00
|
|
|
|
2018-11-18 01:52:04 +08:00
|
|
|
NOTE: EL7 users should replace "dnf" with "yum" in the instructions below.
|
|
|
|
|
2016-12-24 03:06:44 +08:00
|
|
|
1. Unless you are already using MariaDB server, you need to ensure that the
|
|
|
|
server is configured to start during boot and properly secured by running:
|
2013-09-16 05:33:09 +08:00
|
|
|
|
2018-04-20 04:36:43 +08:00
|
|
|
sudo dnf install mariadb-server
|
|
|
|
sudo systemctl enable mariadb
|
|
|
|
sudo systemctl start mariadb.service
|
|
|
|
mysql_secure_installation
|
2015-10-04 00:04:58 +08:00
|
|
|
|
|
|
|
2. Assuming the database is local and using the password for the root account
|
|
|
|
set during the previous step, you will need to create the ZoneMinder
|
|
|
|
database and configure a database account for ZoneMinder to use:
|
|
|
|
|
2021-02-03 05:18:54 +08:00
|
|
|
mysql -u root -p < /usr/share/zoneminder/db/zm_create.sql
|
|
|
|
mysql -u root -p -e "CREATE USER 'zmuser'@'localhost' \
|
|
|
|
IDENTIFIED BY 'zmpass';"
|
|
|
|
mysql -u root -p -e "GRANT ALL PRIVILEGES ON zm.* TO \
|
|
|
|
'zmuser'@localhost;"
|
2016-02-03 01:47:55 +08:00
|
|
|
mysqladmin -uroot -p reload
|
2013-09-16 05:33:09 +08:00
|
|
|
|
2015-10-04 00:04:58 +08:00
|
|
|
The database account credentials, zmuser/zmpass, are arbitrary. Set them to
|
2016-03-19 07:27:43 +08:00
|
|
|
anything that suits your environment.
|
2013-09-16 05:33:09 +08:00
|
|
|
|
2015-10-04 00:04:58 +08:00
|
|
|
3. If you have chosen to change the zoneminder database account credentials to
|
2017-06-06 04:39:19 +08:00
|
|
|
something other than zmuser/zmpass, you must now create a config file under
|
|
|
|
/etc/zm/conf.d and set your credentials there. For example, create the file
|
|
|
|
/etc/zm/conf.d/zm-db-user.conf and add the following content to it:
|
|
|
|
|
2018-04-20 07:40:05 +08:00
|
|
|
ZM_DB_USER = {username of the sql account you want to use}
|
|
|
|
ZM_DB_PASS = {password of the sql account you want to use}
|
2017-06-06 04:39:19 +08:00
|
|
|
|
|
|
|
Once the file has been saved, set proper file & ownership permissions on it:
|
|
|
|
|
2018-04-20 07:40:05 +08:00
|
|
|
sudo chown root:apache *.conf
|
|
|
|
sudo chmod 640 *.conf
|
2015-11-22 05:18:43 +08:00
|
|
|
|
2019-12-30 22:53:34 +08:00
|
|
|
4. Manually setting the timezone in /etc/php.ini is deprecated.
|
2013-09-16 05:33:09 +08:00
|
|
|
|
2019-12-30 22:53:34 +08:00
|
|
|
Instead, navigate to Options -> System from the ZoneMinder web console.
|
|
|
|
Do this after completing step 10, below.
|
|
|
|
|
|
|
|
Note that timezone errors will appear in the ZoneMinder log until this
|
|
|
|
has been completed.
|
2013-09-16 05:33:09 +08:00
|
|
|
|
2015-10-04 00:04:58 +08:00
|
|
|
5. Disable SELinux
|
2013-09-16 05:33:09 +08:00
|
|
|
|
2019-12-30 22:53:34 +08:00
|
|
|
SELinux must be disabled or put into permissive mode. This is not optional!
|
2015-10-04 00:04:58 +08:00
|
|
|
|
|
|
|
To immediately disbale SELinux for the current seesion, issue the following
|
|
|
|
from the command line:
|
2013-09-16 05:33:09 +08:00
|
|
|
|
2015-10-04 00:04:58 +08:00
|
|
|
sudo setenforce 0
|
2013-09-16 05:33:09 +08:00
|
|
|
|
2015-10-04 00:04:58 +08:00
|
|
|
To permanently disable SELinux, edit /etc/selinux/config and change the
|
|
|
|
SELINUX line from "enforcing" to "disabled". This change will take
|
|
|
|
effect after a reboot.
|
2013-09-29 04:18:45 +08:00
|
|
|
|
2018-04-20 04:36:43 +08:00
|
|
|
6. Configure the web server
|
2016-03-03 22:33:49 +08:00
|
|
|
|
2018-04-20 04:36:43 +08:00
|
|
|
This package uses the HTTPS protocol by default to access the web portal,
|
2018-09-25 07:23:40 +08:00
|
|
|
using the default self signed certificate on your system. Requests using
|
2018-04-20 04:36:43 +08:00
|
|
|
HTTP will auto-redirect to HTTPS.
|
|
|
|
|
|
|
|
Inspect the web server configuration file and verify it meets your needs:
|
|
|
|
|
2018-11-21 05:36:34 +08:00
|
|
|
/etc/zm/www/zoneminder.httpd.conf
|
2016-03-03 22:33:49 +08:00
|
|
|
|
2018-04-20 04:36:43 +08:00
|
|
|
If you are running other web enabled services then you may need to edit
|
|
|
|
this file to suite. See README.https to learn about other alternatives.
|
|
|
|
|
|
|
|
When in doubt, proceed with the default:
|
|
|
|
|
2018-11-21 05:47:23 +08:00
|
|
|
sudo ln -sf /etc/zm/www/zoneminder.httpd.conf /etc/httpd/conf.d/
|
2018-04-20 07:40:05 +08:00
|
|
|
sudo dnf install mod_ssl
|
2013-09-29 04:18:45 +08:00
|
|
|
|
2016-03-03 22:33:49 +08:00
|
|
|
7. Now start the web server:
|
2013-09-29 04:18:45 +08:00
|
|
|
|
2018-04-20 07:40:05 +08:00
|
|
|
sudo systemctl enable httpd
|
|
|
|
sudo systemctl start httpd
|
2013-09-29 04:18:45 +08:00
|
|
|
|
2016-03-03 22:33:49 +08:00
|
|
|
8. Now start zoneminder:
|
2013-09-16 05:33:09 +08:00
|
|
|
|
2018-04-20 07:40:05 +08:00
|
|
|
sudo systemctl enable zoneminder
|
|
|
|
sudo systemctl start zoneminder
|
|
|
|
|
|
|
|
9. Optionally configure the firewall
|
|
|
|
|
|
|
|
All Redhat distros ship with the firewall enabled. That means you will not
|
|
|
|
be able to access the ZoneMinder web console from a remote machine until
|
|
|
|
changes are made to the firewall.
|
|
|
|
|
|
|
|
What follows are a set of minimal commands to allow remote access to the
|
|
|
|
ZoneMinder web console and also allow ZoneMinder's ONVIF discovery to
|
|
|
|
work. The following commands do not put any restrictions on which remote
|
|
|
|
machine(s) have access to the listed ports or services.
|
|
|
|
|
|
|
|
sudo firewall-cmd --permanent --zone=public --add-service=http
|
|
|
|
sudo firewall-cmd --permanent --zone=public --add-service=https
|
|
|
|
sudo firewall-cmd --permanent --zone=public --add-port=3702/udp
|
|
|
|
sudo firewall-cmd --reload
|
|
|
|
|
|
|
|
Additional changes to the firewall may be required, depending on your
|
|
|
|
security requirements and how you use the system. It is up to you to verify
|
|
|
|
these commands are sufficient.
|
|
|
|
|
|
|
|
10. Access the ZoneMinder web console
|
|
|
|
|
|
|
|
You may now access the ZoneMinder web console from your web browser using
|
|
|
|
an appropriate url. Here are some examples:
|
|
|
|
|
|
|
|
http://localhost/zm (works from the local machine only)
|
|
|
|
http://{machine name}/zm (works only if dns is configured for your network)
|
|
|
|
http://{ip address}/zm
|
2016-08-16 22:49:45 +08:00
|
|
|
|
2015-10-04 00:04:58 +08:00
|
|
|
Upgrades
|
|
|
|
========
|
2013-09-29 04:18:45 +08:00
|
|
|
|
2018-09-25 07:23:40 +08:00
|
|
|
1. Conf.d folder support has been added to ZoneMinder. Any custom
|
2017-06-06 04:39:19 +08:00
|
|
|
changes previously made to zm.conf must now be made in one or more custom
|
|
|
|
config files, created under the conf.d folder. Do this now. See
|
|
|
|
/etc/zm/conf.d/README for details. Once you recreate any custom config changes
|
|
|
|
under the conf.d folder, they will remain in place indefinitely.
|
2015-11-22 05:18:43 +08:00
|
|
|
|
2015-10-04 00:04:58 +08:00
|
|
|
2. Verify permissions of the zmuser account.
|
2013-09-16 05:33:09 +08:00
|
|
|
|
2015-10-04 00:04:58 +08:00
|
|
|
Over time, the database account permissions required for normal operation
|
2015-11-22 05:18:43 +08:00
|
|
|
have increased. Verify the zmuser database account has been granted all
|
|
|
|
permission to the ZoneMinder database:
|
2013-09-16 05:33:09 +08:00
|
|
|
|
2016-02-03 01:47:55 +08:00
|
|
|
mysql -uroot -p -e "show grants for zmuser@localhost;"
|
2013-10-06 08:41:28 +08:00
|
|
|
|
2015-10-04 00:04:58 +08:00
|
|
|
See step 2 of the Installation section to add missing permissions.
|
2013-10-06 08:41:28 +08:00
|
|
|
|
2015-10-04 00:04:58 +08:00
|
|
|
3. Verify the ZoneMinder Apache configuration file in the folder
|
2018-11-21 05:36:34 +08:00
|
|
|
/etc/zm/www. You will have a file called "zoneminder.httpd.conf" and there
|
2018-11-18 01:52:04 +08:00
|
|
|
may also be one or more files with "rpmnew" extenstion. If the rpmnew file
|
2015-10-04 00:04:58 +08:00
|
|
|
exists, inspect it and merge anything new in that file with zoneminder.conf.
|
2018-11-21 21:58:12 +08:00
|
|
|
Verify the SSL Requirements meet your needs. Read README.https if necessary.
|
2015-10-04 00:04:58 +08:00
|
|
|
|
2018-09-25 07:23:40 +08:00
|
|
|
The contents of this file must be merged into your Apache configuration.
|
|
|
|
See step 6 of the installation section if you have not already done this
|
|
|
|
during a previous upgrade.
|
|
|
|
|
2018-11-21 21:58:12 +08:00
|
|
|
IMPORTANT: Failure to complete this step properly will result in a mostly
|
|
|
|
empty or significantly corrupted web console post-upgrade.
|
2018-11-21 05:47:23 +08:00
|
|
|
|
2015-10-04 00:04:58 +08:00
|
|
|
4. Upgrade the database before starting ZoneMinder.
|
|
|
|
|
|
|
|
Most upgrades can be performed by executing the following command:
|
2013-10-06 08:41:28 +08:00
|
|
|
|
2015-10-04 00:04:58 +08:00
|
|
|
sudo zmupdate.pl
|
|
|
|
|
|
|
|
Recent versions of ZoneMinder don't require any parameters added to the
|
|
|
|
zmupdate command. However, if ZoneMinder complains, you may need to call
|
|
|
|
zmupdate in the following manner:
|
2013-10-06 08:41:28 +08:00
|
|
|
|
2013-10-10 07:35:39 +08:00
|
|
|
sudo zmupdate.pl --user=root --pass=<mysql_root_pwd> --version=<from version>
|
2015-10-04 00:04:58 +08:00
|
|
|
|
2017-04-15 22:23:28 +08:00
|
|
|
5. Now restart the web server then start zoneminder:
|
2015-10-04 00:04:58 +08:00
|
|
|
|
2017-04-15 22:23:28 +08:00
|
|
|
sudo systemctl restart httpd
|
2015-10-04 00:04:58 +08:00
|
|
|
sudo systemctl start zoneminder
|
|
|
|
|
2019-12-30 22:53:34 +08:00
|
|
|
6. Manually setting the timezone in /etc/php.ini is deprecated.
|
|
|
|
|
|
|
|
Instead, navigate to Options -> System from the ZoneMinder web console.
|
|
|
|
Do this now.
|
|
|
|
|
|
|
|
Note that timezone errors will appear in the ZoneMinder log until this
|
|
|
|
has been completed.
|
|
|
|
|