Fedora

From ZoneMinder Wiki
Jump to navigationJump to search

The Fedora Project is a Red Hat sponsored, community-supported open source project. Its stated goal is to promote the rapid progress of free (as in freedom) and open source software and content, and its rapid innovation is possible using open processes and public forums.

The project is led by the Fedora Project Board, which is comprised of community leaders and Red Hat members, and this group steers the direction of the project and of Fedora Core, the Linux distribution it develops. Red Hat employees work with the code alongside community members, and many Fedora Project innovations make their way into new releases of Red Hat Enterprise Linux.

ZoneMinder is developed on the Fedora distribution and no special actions are usually required for installation.

Zmrepo - A ZoneMinder repository for RPM based distros

The ZoneMinder development team would like to introduce you to a new, easier way to install ZoneMinder on Fedora. Zmrepo is meant to be a turn-key solution. There is no compiling, no installing modules from CPAN, and no more complicated repository instructions.

This repository brings together a ZoneMinder rpm built by the development team, with all features enabled. This is in comparison to past ZoneMinder rpm's found in the Fedora repositories, which do not have ffmpeg support built-in. Zmrepo includes all dependencies that are not found in the default Fedora repositories. A few Perl modules are built by us, but all the rest of the dependencies are mirrored from popular sites such as EPEL and RPMFusion. There is no longer a need to add these additional repositories to your system. Zmrepo takes care of that for you.

Purpose

The primary purpose for developing ZoneMinder rpms for Fedora is to get an idea of how well ZoneMinder works on the bleeding edge of software development. We don't use Fedora in our production systems and consequently these rpms do not get the same share of testing that the ZoneMinder rpms for RHEL/CentOS do. However, they do give us the unique opportunity to solve any problems caused by new software widgets (looking at you systemd) before they trickle down to RHEL/CentOS.

Who Should Use

Those that want to use the latest and greatest packages available should use this repository over the RHEL/CentOS repository. Keep in mind that this comes with the real possibility Fedora may throw in something new, which might cause a problem with ZoneMinder.

Supported Versions

Fedora distributions have a relatively short life cycle. A new version of Fedora is scheduled to be released every 6 months. It is the goal of the ZoneMinder development team to provide and support ZoneMinder rpms for the two most recent versions of Fedora. Today, those two versions are Fedora 22 and 21. Rpms built for older versions of Fedora may exist in zmrepo, but they will not be maintained and may be deleted at some point in the future.

Installation

Please navigate to http://zmrepo.zoneminder.com/ and select your distro from the drop-down to view installation instructions.

Remember to follow the steps documented in README.Fedora following installation of the ZoneMinder rpm.

Fedora 18 (alpha)

  • FIXED: if you get problems with Live Video not working due to a problem with the sockets.
    • ERROR: socket_sendto permission errors.
  • Make sure your cgi-bin ScriptAlias is correct as shown below.
  • ffmpeg libraries from Fedora rpms do not work with zm. You have to install from source (yuck).

This is how I got it installed...

Do all the following as sudo (or root)
install packages
yum install mysql mysql-server zoneminder

disable selinux
vi /etc/selinux/config

  • change the word 'enforcing' to 'disabled'

REBOOT

setup mysql:
systemctl start mysqld.service
mysql_secure_installation # enable root password
mysql -u root -p < /usr/share/zoneminder/db/zm_create.sql
mysql -u root -p
grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass';
use zm;
quit

setup apache web server:
vi /etc/httpd/conf.d/zoneminder.conf

  • in the section - <Directory "/usr/share/zoneminder/www">
    • remove the line "Deny from all # DELETE THIS LINE"
    • remove the '-Indexes' on the Options line on Line 17 )I don't think the '-' is supposed to be there
    • Comment out the Order and Allow lines and insert the new syntax 'Require all granted' as a new line
  • I also got a ScriptAlias error for the cgi-bin/zm alias so I commented the cgi-bin scriptAlias in the /etc/httpd/conf/httpd.conf
 #F18     /etc/httpd/conf.d.zoneminder.conf
 Alias /zm "/usr/share/zoneminder/www"
 <Directory "/usr/share/zoneminder/www">
   Options FollowSymLinks
   AllowOverride All
   # NEW format
   Require all granted
   # The code unfortunately uses short tags in many places
   php_value short_open_tag 1
 #Deny from all # DELETE THIS LINE
 </Directory>
 ScriptAlias /cgi-bin "/usr/libexec/zoneminder/cgi-bin"
 <Directory "/usr/libexec/zoneminder/cgi-bin">
   Options +ExecCGI +MultiViews +SymLinksIfOwnerMatch
   AllowOverride All
   # NEW format
   Require all granted
   php_value short_open_tag 1
 </Directory>


start httpd:
systemctl start httpd.service

start zoneminder:
systemctl start zoneminder.service

Fedora 17

install packages
yum install mysql mysql-server zoneminder

setup mysql:
systemctl start mysqld.service
mysql_secure_installation # enable root password
mysql -u root -p < /usr/share/zoneminder/db/zm_create.sql
mysql -u root -p
grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass';
use zm;
quit

setup apache web server:
vi /etc/httpd/conf.d/zoneminder.conf # remove the line "Deny from all # DELETE THIS LINE"
systemctl start httpd.service

start zoneminder:
systemctl start zoneminder.service

Fedora 14

install packages:
yum install mysql mysql-server zoneminder

setup mysql:
/etc/init.d/mysqld start
mysql_secure_installation # enable root password
mysql -u root -p < /usr/share/zoneminder/db/zm_create.sql
mysql -u root -p
grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass';
use zm;
quit

setup apache web server:
vi /etc/httpd/conf.d/zoneminder.conf # remove the line "Deny from all # DELETE THIS LINE"
/etc/init.d/httpd start

start zoneminder
/etc/init.d/zoneminder start

Fedora 11, 12 and 13

The Easy Way Adapted from a forum post by "hiredguntech" or just search the forum for "flowers for candy"

Step-by-step installation of ZM v1.24.2 on Fedora-12.

(1) load fc12 using the netinstall ISO (the CD wants to use dhcp and doesn't work well with an assigned fixed IP) - turn off 'office' and turn on 'server' and 'development'. Besure to include a large /var partition through custom partitioning and use localhost instead of what it suggests (domain.localhost ?). Also, if you're using a capture card install it (them) in the system before starting the netinstall CD. Save these steps as a .txt file so the code can be cut and paste into the terminal with ease.

[2] Remove evolution from task bar (right click... (not a requirement)).

[3] Set screensaver to NOT require password and set it to 20 minutes or more (menu-system::preferences::screensaver).

(4) Disable SELinux. (menu-system::Admin::SELinux Mgmnt; change system default enforcing mode to disabled).

[5] Enable sudo for yourself. From a terminal (menu-Application::System Tools::Terminal), Code:

su

(enter root password)

echo 'YourUserName ALL=(ALL) ALL' >> /etc/sudoers (put YOUR user name from FC12 installation in place of YourUserName)

(6) Set up the RPM Fusion Repository (in open terminal).

Code:

rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm

rpm -ivh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

exit

exit (closes terminal window)

(7) Install the pre-requisites, (menu-System::Administration::Add/Remove Software) type in the search field the following package names and select each of the closest match (there will be 'other' packages related or similar named - look for the right one, and check-it.)

mysql-server

mysql-devel

pcre-devel

ffmpeg

ffmpeg-devel

Hit the 'Apply' button, accept any added packages, type root password, and let this stuff load.

[8] Install any updates that are available, its the yellow icon up by the time.

(9) Enable the services: web and db. (menu-System::Administration::Services) and find the following:

httpd

mysqld

for each of them hit the 'enable button' so you can start them later.

(10) Reboot. This allows all the services to start and settle in.

(11) Now add Zoneminder (menu-System::Administration::Add/Remove Software) Type Zoneminder in the search field select it and apply.

[13] Note: To edit as root: open a terminal (menu-Application::System Tools::Terminal), su to root, type 'gedit <path/filename>'. Now you have sufficient permissions to edit & save as root.

(14) Edit as root /etc/httpd/conf.d/zoneminder.conf to remove the 'Deny from All' line. It even says 'DELETE THIS LINE', so it should be easy to find. Save it.

(15) As root, [or with sudo] build the zm database (menu-Application::System Tools::Terminal).

Code:

su

(enter root password)

mysql mysql < /usr/share/zoneminder/db/zm_create.sql

mysqladmin reload

mysql mysql

grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass';

\q

exit

exit


(16) Enable zoneminder. (menu-System::Administration::Services) and find zoneminder. Enable it. You can start the service hear also, Or in a terminal:

Code:

service zoneminder start

[18] Last thing - edit the SECOND entry of short_open_tag down at line 229. Again as root (menu-Application::System Tools::Terminal), gedit /etc/php.ini

Change short_open_tag from 'off' to 'on'

[19] reboot. open browser, type 'localhost/zm'

[20] It may be necessary to change the ffmpeg path in options::images to get ffmpeg to make videos. Generally removing the /local from the existing path will fix this issue


Or (the original wiki walk through)

You should be able to just do "yum install zoneminder", create the zm database, find the zm_create.sql file (rpm -ql zoneminder) and import it to mysql, then start zoneminder. Plus allow web access. Edit /etc/httpd/conf.d/zoneminder.conf and comment out (#) or delete this line :-

Deny from all # DELETE THIS LINE

Restart/reload apache

sudo service httpd restart

This didn't work for me due to 2 problems. First was php.ini section short_open_tag = Off, set to on

short_open_tag = On

Restart/reload apache

sudo service httpd restart

The other problem was zm_create.sql had duplicate indexes reported using phpMyAdmin. Removed all "INSERT INTO MonitorPresets" and "INSERT INTO MonitorPresets" in zm_create.sql and that imported cleanly. Alternatively just import from the command line mysql -u zmuser -p < zm_create.sql

http://www.zoneminder.com/forums/viewtopic.php?p=50242


Manual Install Version 1.24.2 with ffmpeg enabled

Version 1.23.3 has always compiled ok on Fedora 9/10/11 but I had problems with version 1.24.2.

Problems with compiling fixed by adding #include <cstdio> to all .cpp files in src directory and removing ccache package (yum remove ccache)

http://www.zoneminder.com/forums/viewtopic.php?p=55152

http://www.zoneminder.com/forums/viewtopic.php?t=12515&sid=0da85eb2fc78917d7a78cf788603a320

If using ffmpeg and ffmpeg-devel packages you may see problem compiling with libavutil.a . I could not get ffmpeg to compile so downloaded the Fedora source package and compiled it manually.

yumdownloader --source ffmpeg

sudo rpm -Uvh ffmpeg-0.5-5.20091026svn.fc12.src.rpm

Needed the following packages

sudo yum install dirac-devel faad2-devel gsm-devel imlib2-devel lame-devel libdc1394-devel libtheora-devel libvdpau-devel openjpeg-devel \
schroedinger-devel speex-devel texi2html x264-devel xvidcore-devel yasm

See http://fozzolog.fozzilinymoo.org/tech/2009/11/recompiling-ffmpeg-for-fedora-12-to-add-faac-support.html (don't need to add faac support, just follow procedure)

My rpmbuild failed so from the BUILD/ffmpeg-20091026

make
sudo make install
sudo make install-libs

and configured ZoneMinder to use /usr/local for FFMPEG

./configure --with-webdir=/var/www/html/zm --with-cgidir=/var/www/cgi-bin --with-webuser=apache --with-webgroup=apache ZM_DB_HOST=localhost \
ZM_DB_NAME=zm ZM_DB_USER=zmuser ZM_DB_PASS=zmpass --with-extralibs="-L/usr -L/usr/lib/mysql" ZM_SSL_LIB=openssl --with-ffmpeg=/usr/local

Fedora 8

  • Have packages for Apache and MySQL installed on the system.
  • Install the zoneminder RPM package on the system
Fedora Information for package zoneminder
* http://koji.fedoraproject.org/koji/packageinfo?packageID=4691
  • Configure zoneminder
  • Make sure Apache and MySQL services are running
  • Edit the zoneminder.conf apache configuration file to allow web connections
 vi /etc/httpd/conf.d/zoneminder.conf
  • Build the MySQL database table for zoneminder
 mysql -p -u root mysql < /usr/share/zoneminder/db/zm_create.sql > mysqladmin -p -u root reload

The Fedora RPM creates /var/log/zoneminder, but the database scripts point logs to /tmp, rather than the new directory.

  • Click Options, Paths tab, and change
 ZM_PATH_LOGS = /var/log/zoneminder
  • Click Options, Debug tab, and change
 ZM_EXTRA_DEBUG_LOG = /var/log/zoneminder/zm_debug.log+
  • Install ffmpeg on Fedora.

Due to licensing the ffmpeg package is absent from Fedora. It can be added from Livna.

 wget http://rpm.livna.org/livna-release-8.rpm
 rpm -ih livna-release-8.rpm
 yum install ffmpeg
 yum install ffmpeg-devel

Which provides the following: ffmpeg-libs-0.4.9-0.41.20071011.lvn8, ffmpeg-0.4.9-0.41.20071011.lvn8, ffmpeg-devel-0.4.9-0.41.20071011.lvn8

  • Test ffmpeg
 ffmpeg -f image2 -i %03d-capture.jpg /tmp/movie.mpg

Fedora 7

Fedora Core 6

Fedora Core 4

Set web user and group correctly and set the log dir to a writeable location. With FC4 there are three things that must be done to get ZM running,:

  1. is in the /etc/ld.so.conf.d/ dir created a file with 775 perm called zm.conf and add the line '/usr/local/lib' to it and type 'ldconfig' once it is added, also with a fresh install of FC4 make sure SE linux is disabled if you are not using it. Check your log path in options under the paths tab. This will tell you were the log are going to be put.
  2. Second make sure the path exists.
  3. Third create the log files if they do not exist and make sure that they have the correct permissions. If zm can not open and write the log files, it will not start.