zoneminder/distros/fedora/nginx
Andy Bauer bf85791e4c improvements to fedora nginx rpm support 2016-11-22 13:02:02 -06:00
..
README.Fedora prelimniary support for nginx on fedora 2016-11-15 18:34:25 -06:00
zoneminder.conf.in prelimniary support for nginx on fedora 2016-11-15 18:34:25 -06:00
zoneminder.php-fpm.conf.in Update zoneminder.php-fpm.conf.in 2016-11-17 19:48:35 -06:00
zoneminder.service.in improvements to fedora nginx rpm support 2016-11-22 13:02:02 -06:00

README.Fedora

What's New
==========

1. This is an *experimental* build of zoneminder which uses the 
   nginx web server.

2. The Apache ScriptAlias has been changed from "/cgi-bin/zm/zms" to 
   "/cgi-bin-zm/zms". This has been to done to avoid this bug:
   https://bugzilla.redhat.com/show_bug.cgi?id=973067

   IMPORTANT: You must manually inspect the value for PATH_ZMS under Options
   and verify it is set to "/cgi-bin-zm/nph-zms". Failure to do so will result
   in a broken system. You have been warned.

3. Due to the active state of the ZoneMinder project, we now recommend granting
   ALL permission to the ZoneMinder mysql account. This change must be done
   manually before ZoneMinder will run. See the installation steps below.

4. This package uses the HTTPS protocol by default to access the web portal.
   Requests using HTTP will auto-redirect to HTTPS. See README.https for
   more information.
   
5. This package ships with the new ZoneMinder API enabled.

New installs
============

1. This package supports either community-mysql-server or mariadb-server with
   mariadb being the preferred choice. Unless you are already using MariaDB or
   Mysql server, you need to ensure that the server is configured to start
   during boot and properly secured by running:

	sudo yum install mariadb-server
	sudo systemctl enable mariadb
	sudo systemctl start  mariadb.service
	mysql_secure_installation

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:

     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

   The database account credentials, zmuser/zmpass, are arbitrary. Set them to
   anything that suits your environment.

3. If you have chosen to change the zoneminder database account credentials to
   something other than zmuser/zmpass, you must now edit /etc/zm/zm.conf.
   Change ZM_DB_USER and ZM_DB_PASS to the values you created in the previous
   step.

   This version of zoneminder no longer requires you to make a similar change 
   to the credentials in /usr/share/zoneminder/www/api/app/Config/database.php 
   This now happens dynamically. Do *not* make any changes to this file.

4. Edit /etc/php.ini, uncomment the date.timezone line, and add your local
   timezone.  PHP will complain loudly if this is not set, or if it is set
   incorrectly, and these complaints will show up in the zoneminder logging
   system as errors.

   If you are not sure of the proper timezone specification to use, look at
   http://php.net/date.timezone

5. Disable SELinux 

   We currently do not have the resources to create and maintain an accurate
   SELinux policy for ZoneMinder on Fedora. We will gladly accept pull
   reqeusts from anyone who wishes to do the work. In the meantime, SELinux
   will need to be disabled or put into permissive mode.
   
   To immediately disbale SELinux for the current seesion, issue the following
   from the command line:

     sudo setenforce 0

   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.

6. This package comes preconfigured for HTTPS using the default self signed
   certificate on your system. We recommend you keep this configuration.

   If this does not meet your needs, then read README.https to
   learn about alternatives. 

7. Edit /etc/sysconfig/fcgiwrap and set DAEMON_PROCS to the maximum number of
   simulatneous streams the server should support. Generally, a good minimum 
   value for this equals the total number of cameras you expect to view at the
   same time.

8. Now start the web server:

	sudo systemctl enable nginx
	sudo systemctl start nginx

9. Now start zoneminder:

	sudo systemctl enable zoneminder
	sudo systemctl start zoneminder

10.The Fedora repos have a ZoneMinder package available, but it does not
   support ffmpeg or libvlc, which many modern IP cameras require. Most users
   will want to prevent the ZoneMinder package in the Fedora repos from
   overwriting the ZoneMinder package in zmrepo, during a future dnf update. To
   prevent that from happening you must edit /etc/yum.repos.d/fedora.repo
   and /etc/yum.repos.d/fedora-updates.repo. Add the line "exclude=zoneminder*"
   without the quotes under the [fedora] and [fedora-updates] blocks,
   respectively.

Upgrades
========

1. Verify /etc/zm/zm.conf.

   If zm.conf was manually edited before running the upgrade, the installation
   may not overwrite it. In this case, it will create the file
   /etc/zm/zm.conf.rpmnew.

   For example, this will happen if you are using database account credentials
   other than zmuser/zmpass.

   Compare /etc/zm/zm.conf to /etc/zm/zm.conf.rpmnew. Verify that zm.conf
   contains any new config settings that may be in zm.conf.rpmnew.

   This version of zoneminder no longer requires you to make a similar change 
   to the credentials in /usr/share/zoneminder/www/api/app/Config/database.php 
   This now happens dynamically. Do *not* make any changes to this file.

2. Verify permissions of the zmuser account.

   Over time, the database account permissions required for normal operation
   have increased. Verify the zmuser database account has been granted all
   permission to the ZoneMinder database:

     mysql -uroot -p -e "show grants for zmuser@localhost;"

   See step 2 of the Installation section to add missing permissions.
   
3. Verify the ZoneMinder Apache configuration file in the folder 
   /etc/httpd/conf.d. You will have a file called "zoneminder.conf" and there
   may also be a file called "zoneminder.conf.rpmnew". If the rpmnew file
   exists, inspect it and merge anything new in that file with zoneminder.conf.
   Verify the SSL REquirements meet your needs. Read README.https if necessary.

4. Upgrade the database before starting ZoneMinder.

   Most upgrades can be performed by executing the following command:
   
     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:

   sudo zmupdate.pl --user=root --pass=<mysql_root_pwd> --version=<from version>

5. Now start zoneminder:

	sudo systemctl start zoneminder