summaryrefslogtreecommitdiff
path: root/multimedia/zoneminder-h264/files/README.FreeBSD
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/zoneminder-h264/files/README.FreeBSD')
-rw-r--r--multimedia/zoneminder-h264/files/README.FreeBSD160
1 files changed, 0 insertions, 160 deletions
diff --git a/multimedia/zoneminder-h264/files/README.FreeBSD b/multimedia/zoneminder-h264/files/README.FreeBSD
deleted file mode 100644
index 0a4c888a2608..000000000000
--- a/multimedia/zoneminder-h264/files/README.FreeBSD
+++ /dev/null
@@ -1,160 +0,0 @@
-
-ZoneMinder is a free, open source Closed-circuit television software
-application developed for Unix-like operating systems which supports
-IP, USB and Analog cameras.
-
-New installs
-============
-
-ZoneMinder requires a MySQL (or MySQL forks) database backend and
-a http server, capable to execute PHP and CGI scripts.
-
-To simplify things, we assume, that you use MySQL and NGINX on
-the same server.
-
-1. Preliminary steps
-
-1.1 Install databases/mysql56-server or newer
- You may choose your favourite method - ports or packages here.
- FreeBSD default setting use STRICT_TRANS_TABLES sql_mode. It's mandatory to disable it. Edit your my.cnf accordingly
-
- The following SQL mode should be compatible with ZM:
- sql_mode= NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
-
- ZoneMinder use very simple queries, however it tends to write to
- the database quite a lot depending on your capture mode and number
- of cameras. So tweak your MySQL instance accordantly
-
- Now, enable and start MySQL
- sysrc mysql_server_enable="YES"
- service mysql-server start
-
-1.2 Install www/nginx
- We provide an example for an HTTP install, however, you should use
- HTTPS if you plan to expose your installation to the public. There
- are plenty guides how to do it and security/letsencrypt.sh is a
- good way to get a valid SSL certificate.
-
- Your server block should include the following:
-
- server {
- root /usr/local/www/zoneminder;
- try_files $uri $uri/ /index.php$is_args$args;
- index index.php;
-
- location = /cgi-bin/nph-zms {
- include fastcgi_params;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock;
- }
-
- location ~ \.php$ {
- include fastcgi_params;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_pass unix:/var/run/php-fpm.sock;
- }
-
- location /api {
- rewrite ^/api/(.+)$ /api/index.php?p=$1 last;
- }
- }
-
-1.2.1 ZoneMinder has it's own authentication system, however it's recommend to use NGINX basic
- auth over HTTPS if you don't need fine grain control to ZoneMinder components.
-
-1.2.2 If you choose ZoneMinder authentication, it's recommended to prohibit access to
- image and events folder as it's possible to guess file names inside it.
-
- location ~ ^/(?:images|events)/ {
- deny all;
- }
-
- Enable and start NGINX
- sysrc nginx_enable="YES"
- service nginx start
-
-1.3 Install www/fcgiwrap
- As NGINX lacks it's own CGI wrapper, we need external one. Please
- note that ZoneMinder's montage page use simultaneous access to all
- cameras, so you need to use at least as many fcgiwrap workers as
- your number of cameras. The following example assumes you have 4.
-
- Enable and start FcgiWrap
- sysrc fcgiwrap_enable="YES"
- sysrc fcgiwrap_user="www"
- sysrc fcgiwrap_socket_owner="www"
- sysrc fcgiwrap_flags="-c 4"
-
-1.4 PHP is installed as a dependency to ZoneMinder. However, you should
- tweak some of it's settings.
- Edit /usr/local/etc/php-fpm.conf and set
-
- listen = /var/run/php-fpm.sock
- listen.owner = www
- listen.group = www
- env[PATH] = /usr/local/bin:/usr/bin:/bin
-
- If you want to set another path for the socket file, make sure you
- change it in your NGINX config well. The env[PATH] needs to be set
- to locate the zip utility as ZoneMinder's export functions rely on
- exec(). Sorry, chroot folks.
-
- PHP throws warning if date.timezone option is not set. The best place
- to do it is to create new ini file in /usr/local/etc/php with overrides
-
- date.timezone = "UTC"
-
- Enable and start php-fpm
- sysrc php_fpm_enable="YES"
- service php-fpm start
-
-1.5 ZoneMinder constantly keeps the last N frames from its cameras to
- preserve them when alarm occurs. This can be a performance hog if
- placed on spindle drive. The best practice is put it on tmpfs.
- See https://www.freebsd.org/cgi/man.cgi?query=tmpfs for more
- information.
-
- ZoneMinder will use /tmp for default. If you plan to change it, see
- ZM_PATH_MAP setting.
-
- Mapping /tmp to tmpfs is actually a recommended step under FreeBSD.
- Edit /etc/fstab and add the following:
-
- tmpfs /tmp tmpfs rw,nosuid,mode=01777 0 0
-
- The size of temporary files depends on your number of cameras
- number and frames you plan to keep. My 12 3Mbit cameras with 25
- last frames consumes 6 GB.
-
-2. ZoneMinder installation
-
- Connect to MySQL under root and create zm user and populate database.
-
- mysql -u root -p
-
- CREATE DATABASE zm;
- GRANT ALL PRIVILEGES ON zm.* TO 'zmuser'@'localhost' IDENTIFIED BY 'zmpass';
- FLUSH PRIVILEGES;
- quit;
-
- mysql -u root -p zm < /usr/local/share/zoneminder/db/zm_create.sql
-
-2.1 If you have chosen to change the ZoneMinder MySQL credentials to something
- other than zmuser/zmpass then you must now edit /usr/local/etc/zm.conf. Change
- ZM_DB_USER and ZM_DB_PASS to the values you created in the previous step.
-
- Enable and start ZoneMinder
- sysrc zoneminder_enable="YES"
- service zoneminder start
-
-Upgrades
-========
-
-1. Stop ZoneMinder
- service zoneminder stop
-
-2. Upgrade database
- sudo -u www zmupdate.pl
-
-3. Start ZoneMinder
- service zoneminder start