Installing ZoneMinder on Centos 6

ZoneMinder is arguably one of the best video camera applications available for Linux, especially if you need to capture images and/or video from multiple cameras, both remote and local. It offers a huge set of features that just aren’t available in other pieces of free software. Getting it to compile on Centos 6 (64bit), however, is a bit of a chore.

There is some information in the ZoneMinder wiki on compiling and installing ZoneMinder on Centos 6, but these instructions are incomplete, and will not work. After helping a coworker get it up and running, and finding little information out there for Centos 6, I decided to turn it into a blog post.

The following procedure will allow you to compile and install ZoneMinder 1.25 on Centos 6 64bit with all options enabled. All actions should be done as root.

Procedure

1] Install Centos 6 using the 64bit minimal install DVD. I highly recommend using the minimal install, but you can probably use disk 1 of the full install if you want.

2] Run updates:

yum -y update

3] Disable SELinux by editing /etc/sysconfig/selinux and changing the SELINUX line to disabled:

SELINUX=disabled

4] Reboot

5] Install RPMForge yum repository:

rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -ihv http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

6] Install needed dependencies:

yum install gcc gcc-c++ wget mysql-devel mysql-server php php-mysql php-pear php-pear-DB php-mbstring \
bison bison-devel httpd make ncurses ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver \
sox newt-devel libxml2-devel libtiff-devel php-gd audiofile-devel gtk2-devel libv4l-devel ffmpeg ffmpeg-devel \
zlib zlib-devel openssl openssl-devel gnutls-devel php-process perl-Time-HiRes perl-CPAN pcre-devel libjpeg-devel \
perl-Date-Manip perl-libwww-perl perl-Module-Load perl-Net-SFTP-Foreign perl-Archive-Tar perl-Archive-Zip perl-Expect \
perl-MIME-Lite perl-Device-SerialPort

7] Install Sys::Mmap module if you want mmap enabled. Also install MIME::Entity and X10 camera support, if desired. Just hit enter to accept the default for any question you’re asked. Do each of these separately, one at a time (ie, don’t just copy and paste the following three lines in one go, do one at a time).

perl -MCPAN -e 'install Sys::Mmap'
perl -MCPAN -e 'install MIME::Entity'
perl -MCPAN -e 'install X10::ActiveHome'

8] Download Zoneminder install:

cd /usr/local/src
wget http://www2.zoneminder.com/downloads/ZoneMinder-1.25.0.tar.gz
tar xzvf ZoneMinder-1.25.0.tar.gz
cd ZoneMinder-1.25.0

9] Run configure. NOTE: The database username and password specified in this step are also used in step 13.

CXXFLAGS=-D__STDC_CONSTANT_MACROS ./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=YOURZMUSER ZM_DB_PASS=YOURZMPASSWORD ZM_SSL_LIB=openssl \
--with-extralibs="-L/usr/lib64 -L/usr/lib64/mysql -L/usr/local/lib" --with-libarch=lib64 --with-ffmpeg

If you don’t want mmap support, add “–enable-mmap=no“:

CXXFLAGS=-D__STDC_CONSTANT_MACROS ./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=YOURZMUSER ZM_DB_PASS=YOURZMPASSWORD ZM_SSL_LIB=openssl \
--with-extralibs="-L/usr/lib64 -L/usr/lib64/mysql -L/usr/local/lib" --with-libarch=lib64 --with-ffmpeg --enable-mmap=no

10] Compile and install:

make
make install

11] Start mysqld for the first time:

service mysqld start

12] Set your root mysql password by following the instructions in the output:

/usr/bin/mysqladmin -u root password 'NEWPASSWORD'

13] Create your Zoneminder database and user, and give the user access to the database, and reload privs. NOTE: YOURZMUSER and YOURZMPASSWORD need to be the same as in the configure statement in step 9. When prompted for the password for root, use the one you set in step 12.

mysql -u root -p
create database zm;
CREATE USER 'YOURZMUSER'@'localhost' IDENTIFIED BY 'YOURZMPASSWORD';
grant CREATE, INSERT, SELECT, DELETE, UPDATE on zm.* to YOURZMUSER@localhost;
FLUSH PRIVILEGES;
exit

14] Load in initial SQL data for ZoneMinder:

mysql -u root -p zm < /usr/local/src/ZoneMinder-1.25.0/db/zm_create.sql

15] Copy the start script to /etc/init.d and configure it to start on boot. Also set other services to start on boot:

cp /usr/local/src/ZoneMinder-1.25.0/scripts/zm /etc/init.d/
chmod +x /etc/init.d/zm
chkconfig zm on
chkconfig mysqld on
chkconfig httpd on

16] Copy Cambozola jar file:

cd /var/www/html/zm
wget http://www.zoneminder.com/sites/zoneminder.com/downloads/cambozola.jar
chown apache:apache /var/www/html/zm/cambozola.jar

17] Edit php.ini and set:

short_open_tag = On

This is off by default.
18] Start Apache and ZoneMinder:

service httpd start
service zm start

19] Browse to your web interface using http://YOURIP/zm. You should see the ZoneMinder Console web interface.

 

Troubleshooting

If you are not able to pull up the web interface, check the following:

Iptables – Centos 6 comes with a restrictive set of iptables rules. If you’re providing firewall through some other method (ex, a hardware firewall), you can shut iptables off and prevent it from starting on boot by doing the following:

service iptables stop
chkconfig iptables off

If you need to use iptables for firewalling, edit /etc/sysconfig/iptables and add a line just below the line for port 22 (SSH) to allow web (port 80) connections:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Then restart iptables:

service iptables restart

PHP Short Open Tags – Check your /var/log/httpd/error_log file. If you have error messages like the following, redo step 17.

PHP Parse error:  syntax error, unexpected $end in /var/www/html/zm/includes/functions.php on line 2437

After editing the /etc/php.ini file, you must restart httpd:

service httpd restart

Next Steps

Once you have the web interface up, you’ll want to click on Options in the upper right.

The System tab will allow you to turn on authentication. By default, ZoneMinder does not require any username and password.

Under the Images tab, click the check box next to OPT_CAMBOZOLA to use the Java streaming client for better refresh rates.

On the main page, click Add New Monitor to start adding cameras to monitor.

You can leave a response, or trackback from your own site.

44 Responses to “Installing ZoneMinder on Centos 6”

  1. avatar Matt says:

    Thanks for this! Haven’t found good directions. This works perfectly!

  2. Thanks for directions that actually work!
    On step 14 however it looks like the symbol was converted to an HTML special entity (>).

    What I did was run:
    mysql -u root -p zm < /usr/local/src/ZoneMinder-1.25.0/db/zm_create.sql

  3. avatar George says:

    This is excellent, thank you for these instructions! I had been trying to get it to work on CentOS 6.2 for a while, but wasn’t able. This made it easy, thanks!

    Thanks to Anonymous too, for correcting the step 14 error, that had me scratching my head for a few moments.

    Also worth noting is that php.ini in step 17 is located in /etc which I didn’t know until I ran a ‘find’ to see where it was.

  4. avatar P.V.Anthony says:

    Thank you very much for sharing this installation documentation. It has been very very useful for me and saved a lot of time.

  5. avatar Matt says:

    Thanks SO Much

  6. avatar Andrew says:

    I get the following error, any ideas?

    checking for mysql_init in -lmysqlclient… no
    configure: error: zm requires libmysqlclient.a
    [root@centos6 ZoneMinder-1.25.0]#

  7. avatar Blazer says:

    I followed your directions exactly, but when I run make I get:

    # make
    make all-recursive
    make[1]: Entering directory `/root/ZoneMinder-1.25.0′
    Making all in src
    make[2]: Entering directory `/root/ZoneMinder-1.25.0/src’
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zmc.o -MD -MP -MF .deps/zmc.Tpo -c -o zmc.o zmc.cpp
    mv -f .deps/zmc.Tpo .deps/zmc.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm_box.o -MD -MP -MF .deps/zm_box.Tpo -c -o zm_box.o zm_box.cpp
    mv -f .deps/zm_box.Tpo .deps/zm_box.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm_buffer.o -MD -MP -MF .deps/zm_buffer.Tpo -c -o zm_buffer.o zm_buffer.cpp
    mv -f .deps/zm_buffer.Tpo .deps/zm_buffer.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm_camera.o -MD -MP -MF .deps/zm_camera.Tpo -c -o zm_camera.o zm_camera.cpp
    mv -f .deps/zm_camera.Tpo .deps/zm_camera.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm_comms.o -MD -MP -MF .deps/zm_comms.Tpo -c -o zm_comms.o zm_comms.cpp
    mv -f .deps/zm_comms.Tpo .deps/zm_comms.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm_config.o -MD -MP -MF .deps/zm_config.Tpo -c -o zm_config.o zm_config.cpp
    mv -f .deps/zm_config.Tpo .deps/zm_config.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm_coord.o -MD -MP -MF .deps/zm_coord.Tpo -c -o zm_coord.o zm_coord.cpp
    mv -f .deps/zm_coord.Tpo .deps/zm_coord.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm.o -MD -MP -MF .deps/zm.Tpo -c -o zm.o zm.cpp
    mv -f .deps/zm.Tpo .deps/zm.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm_db.o -MD -MP -MF .deps/zm_db.Tpo -c -o zm_db.o zm_db.cpp
    mv -f .deps/zm_db.Tpo .deps/zm_db.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm_logger.o -MD -MP -MF .deps/zm_logger.Tpo -c -o zm_logger.o zm_logger.cpp
    zm_logger.cpp:43: warning: ‘void subtractTime(timeval*, timeval*)’ defined but not used
    mv -f .deps/zm_logger.Tpo .deps/zm_logger.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm_event.o -MD -MP -MF .deps/zm_event.Tpo -c -o zm_event.o zm_event.cpp
    mv -f .deps/zm_event.Tpo .deps/zm_event.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm_exception.o -MD -MP -MF .deps/zm_exception.Tpo -c -o zm_exception.o zm_exception.cpp
    mv -f .deps/zm_exception.Tpo .deps/zm_exception.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm_file_camera.o -MD -MP -MF .deps/zm_file_camera.Tpo -c -o zm_file_camera.o zm_file_camera.cpp
    mv -f .deps/zm_file_camera.Tpo .deps/zm_file_camera.Po
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -Iyes/include -Wall -Wno-sign-compare -fno-inline -Iyes/include -D__STDC_CONSTANT_MACROS -MT zm_ffmpeg_camera.o -MD -MP -MF .deps/zm_ffmpeg_camera.Tpo -c -o zm_ffmpeg_camera.o zm_ffmpeg_camera.cpp
    zm_ffmpeg_camera.cpp: In destructor ‘virtual FfmpegCamera::~FfmpegCamera()’:
    zm_ffmpeg_camera.cpp:61: warning: ‘void av_close_input_file(AVFormatContext*)’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:1561)
    zm_ffmpeg_camera.cpp:61: warning: ‘void av_close_input_file(AVFormatContext*)’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:1561)
    zm_ffmpeg_camera.cpp: In member function ‘virtual int FfmpegCamera::PrimeCapture()’:
    zm_ffmpeg_camera.cpp:94: error: ‘av_open_input_file’ was not declared in this scope
    zm_ffmpeg_camera.cpp:98: warning: ‘int av_find_stream_info(AVFormatContext*)’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:1385)
    zm_ffmpeg_camera.cpp:98: warning: ‘int av_find_stream_info(AVFormatContext*)’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:1385)
    zm_ffmpeg_camera.cpp:125: warning: ‘int avcodec_open(AVCodecContext*, AVCodec*)’ is deprecated (declared at /usr/local/include/libavcodec/avcodec.h:3416)
    zm_ffmpeg_camera.cpp:125: warning: ‘int avcodec_open(AVCodecContext*, AVCodec*)’ is deprecated (declared at /usr/local/include/libavcodec/avcodec.h:3416)
    make[2]: *** [zm_ffmpeg_camera.o] Error 1
    make[2]: Leaving directory `/root/ZoneMinder-1.25.0/src’
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/root/ZoneMinder-1.25.0′
    make: *** [all] Error 2

    Any idea what is wrong?

    • avatar Joe says:

      Your ffmpeg-devel library is newer than what ZoneMinder was written against. ffmpeg recently made some changes (found a similar problem working with forked-daapd).

      • avatar Varjen says:

        Hi there!

        I have run into the same problem as above with the ffmpeg error…

        Im running a scientific linux 64b but that shouldnt be a problem i think?

        Any ideas on how to get past this?

  8. avatar Razza says:

    Installing on CentOS 6.3 (Disk 1 install), I have exactly the same issue as “Blazer” :o(

  9. avatar JS says:

    Excellent “how-to” that helped me to get ZoneMinder up and running FAST!

    Working from the ZM wiki instructions (tried BOTH 5.x and 6) I burned an entire day trying to clean up various configure/make errors.

    After finding your site, I downloaded the minimal install CentOS 6 disk, followed your instructions (only had to adjust for i686 since I’m using some old hardware) and within an hour or so I was viewing my 4 network cameras.

    Thanks for publishing this great guide!

    JS

  10. avatar rah says:

    Getting the following error

    ERROR 1146 (42S02) at line 1: Table ‘zm.Config’ doesn’t exist
    Starting ZoneMinder: DBD::mysql::st execute failed: Table ‘zm.Config’ doesn’t exist at /usr/local/share/perl5/ZoneMinder/Config.pm line 92.
    Can’t execute: Table ‘zm.Config’ doesn’t exist at /usr/local/share/perl5/ZoneMinder/Config.pm line 100
    BEGIN failed–compilation aborted at /usr/local/share/perl5/ZoneMinder/Config.pm line 100.
    Compilation failed in require at /usr/local/share/perl5/ZoneMinder.pm line 33.
    BEGIN failed–compilation aborted at /usr/local/share/perl5/ZoneMinder.pm line 33.
    Compilation failed in require at /usr/local/bin/zmpkg.pl line 37.
    BEGIN failed–compilation aborted at /usr/local/bin/zmpkg.pl line 37.

  11. avatar Joe says:

    For those having a hard time compiling on CentOS 6 with ffmpeg-devel from rpmfusion.org with errors about missing PixelFormat and AVOutputFormat :

    zm_mpeg.h:63: error: use of enum ‘PixelFormat’ without previous declaration
    zm_mpeg.h:64: error: ISO C++ forbids declaration of ‘AVOutputFormat’ with no type
    zm_mpeg.h:64: error: expected ‘;’ before ‘*’ token
    zm_mpeg.h:65: error: ISO C++ forbids declaration of ‘AVFormatContext’ with no type
    zm_mpeg.h:65: error: expected ‘;’ before ‘*’ token
    zm_mpeg.h:66: error: ISO C++ forbids declaration of ‘AVStream’ with no type
    zm_mpeg.h:66: error: expected ‘;’ before ‘*’ token
    zm_mpeg.h:67: error: ISO C++ forbids declaration of ‘AVFrame’ with no type
    zm_mpeg.h:67: error: expected ‘;’ before ‘*’ token
    zm_mpeg.h:68: error: ISO C++ forbids declaration of ‘AVFrame’ with no type
    zm_mpeg.h:68: error: expected ‘;’ before ‘*’ token
    zm_mpeg.h:69: error: ISO C++ forbids declaration of ‘uint8_t’ with no type
    zm_mpeg.h:69: error: expected ‘;’ before ‘*’ token
    zm_mpeg.h:85: error: ‘uint8_t’ has not been declared
    In file included from zm_zone.h:27,
    from zm_monitor.h:27,
    from zmc.cpp:27:

    Those includes are in your /usr/include/ffmpeg directory, not /usr/include. You should probably run the configure line as :

    CPPFLAGS=”-I/usr/include/ffmpeg -I/usr/include” CFLAGS=”-I/usr/include/ffmpeg -I/usr/include” CXXFLAGS=”-D__STDC_CONSTANT_MACROS -I/usr/include/ffmpeg -I/usr/include” ./configure –with-webdir=/var/www/html/zm –with-cgidir=/var/www/cgi-bin –with-libarch=lib64 –with-ffmpeg=/usr –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/lib64 -L/usr/lib64/mysql” ZM_SSL_LIB=openssl

  12. avatar Brian says:

    Beautiful Guide! Had a bit of an issue with starting the zm service, but must have missed a step with the mysql database. After redoing the steps a few times (and learning more mysql in general) the service started right up!

    Very glad you put this guide together, after finding much lack of complete information on zoneminder’s wiki.

    Thanks!

  13. avatar Nick says:

    Great write up! I had the same issues that some above with the current version of CentOS 6.3 full install. Couldn’t get around the make install issues. I reverted and installed the 6.3 minimal install, and followed the directions above, and worked great. had a hiccup on step 14, which was pointed out by someone else’s comment.

    Looks good, now, I’m just waiting for my cams to be delivered and see how this works.

    Thanks again!

  14. avatar Mike says:

    Can someone please help. I am getting this error when starting the zm service up.
    Starting ZoneMinder: Bareword “ZM_PATH_LOGS” not allowed while “strict subs” in use at /usr/local/share/perl5/ZoneMinder/Logger.pm line 153.
    BEGIN not safe after errors–compilation aborted at /usr/local/share/perl5/ZoneMinder/Logger.pm line 168.
    Compilation failed in require at /usr/local/share/perl5/ZoneMinder.pm line 34.
    BEGIN failed–compilation aborted at /usr/local/share/perl5/ZoneMinder.pm line 34.
    Compilation failed in require at /usr/local/bin/zmpkg.pl line 37.
    BEGIN failed–compilation aborted at /usr/local/bin/zmpkg.pl line 37.
    [FAILED]
    [root@mbtdvr01 ZoneMinder-1.25.0]# vi /usr/local/share/perl5/ZoneMinder/Logger.pm

    Thanks,

    Mike

  15. avatar Didier says:

    For Mike : I had the same problem.

    It seems that the DB was not corrrectly initialised. For example, if the “Config” table in th zm database is empty, you should drop the db, re-create it then create again the tables with the .sql script. You can see that the .sql is modified by the “make” of zm. In my case, that solved the problem.

    It seems that all the .pl scripts get the database connection info from the configuration text file zm.conf, then use the extra fields found in the Config table. You’ll see that the ZM_PATH_LOGS is defined there.

    Regards,

    Didier.

  16. avatar PC says:

    add to line if you get error “error zm requires libmysqlclient.a”
    –with-extralibs=”-L/usr/lib64 -L/usr/lib64/mysql”

  17. avatar Mario says:

    Thanks, installing on CentOS 6 working properly.
    Now I have the probem that when I install Cpanel Zoneminder stops working, any advice to install ZoneMinder with Cpanel without conflict?

    Sorry for my English

  18. avatar Mike says:

    This was so helpful. Got me up and running in about an hour, most of that time was waiting… 🙂

    I submit this as an option (or for anyone to tell me what’s wrong with it):

    I would add that if you do the LV partitioning, you’ll probably end up with a large /home partition, which would be a great place to save your events. Otherwise, they’ll save in ‘/’ by default, which is smaller (which I filled up quickly)

    on command line:
    su – root
    cd /home
    mkdir events
    chown apache events
    chgrp apache events

    and then in the ZM console, go to “Options>Paths> and type ‘/home/events’ in the “DIR_EVENTS”. Save and restart zoneminder. Your events will now be saved in the /home/events folder on the larger partition. This is assuming that you use the default partition scheme in the CentOS 6.3 setup, which setups up a moderate ‘/’ partition and a large ‘/home’ partition.

  19. avatar tony says:

    at step 14 I keep getting a problem:
    I enter the command:
    # mysql -u root -p zm > /usr/local/src/ZoneMinder-1.25.0/db/zm_create.sql
    it asks me for my password:
    Enter password:
    I type in my password and the cursor just drops to the next line. Nothing happens and I don’t get the # prompt back. I have to do CTRL+C to get it back and that nullifys the previous command. What is wrong here?

  20. avatar George says:

    This worked perfectly with Centos 64 Bit Min Install CD. T H A N K Y O U!!!!

    Still wondering why ZM needs FFMpeg to have so many damn audio libary dependencies. I just want streaming video and x264 compression!

    Again, A+ on this guide to get ZM 1.25 working!

  21. avatar George says:

    Seems this guide helps you get FFMpeg 0.6.5 installed and it works!

    I’ve tried getting ZM 1.25 compiled this past week with FFMpeg 0.11.1 and it failed. FFMpeg 0.10.6 worked with ZM 1.25 on a Slackware 14 i386 machine I have.

  22. avatar jorje says:

    [Wed Jan 16 21:42:35 2013] [notice] Digest: done
    [Wed Jan 16 21:42:35 2013] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 configu red — resuming normal operations
    [Wed Jan 16 21:44:48 2013] [error] [client 192.168.189.57] Directory index forbi dden by Options directive: /var/www/html/
    [Wed Jan 16 21:44:49 2013] [error] [client 192.168.189.57] File does not exist: /var/www/html/favicon.ico
    [Wed Jan 16 21:44:54 2013] [error] [client 192.168.189.57] File does not exist: /var/www/html/favicon.ico
    [Wed Jan 16 21:44:54 2013] [error] [client 192.168.189.57] PHP Parse error: syn tax error, unexpected $end in /var/www/html/zm/includes/functions.php on line 24 37
    [Wed Jan 16 21:44:54 2013] [error] [client 192.168.189.57] File does not exist: /var/www/html/favicon.ico
    [Wed Jan 16 21:45:00 2013] [error] [client 192.168.189.57] PHP Parse error: syn tax error, unexpected $end in /var/www/html/zm/includes/functions.php on line 24 37
    [Wed Jan 16 21:45:01 2013] [error] [client 192.168.189.57] File does not exist: /var/www/html/favicon.ico
    [Wed Jan 16 21:45:01 2013] [error] [client 192.168.189.57] PHP Parse error: syn tax error, unexpected $end in /var/www/html/zm/includes/functions.php on line 24 37
    [Wed Jan 16 21:45:01 2013] [error] [client 192.168.189.57] File does not exist: /var/www/html/favicon.ico

    my centos 6.3

    ; session.gc_divisor
    ; Default Value: 100
    ; Development Value: 1000
    ; Production Value: 1000

    ; session.hash_bits_per_character
    ; Default Value: 4
    ; Development Value: 5
    ; Production Value: 5

    ; short_open_tag=On
    ; development value=on
    ; Production Value =on

    ; track_errors
    ; Default Value: Off
    ; Development Value: On
    ; Production Value: Off

    ; url_rewriter.tags
    ; Default Value: “a=href,area=href,frame=src,form=,fieldset=”
    ; Development Value: “a=href,area=href,frame=src,input=src,form=fakeentry”
    ; Production Value: “a=href,area=href,frame=src,input=src,form=fakeentry”

    ; variables_order
    ; Default Value: “EGPCS”
    ; Development Value: “GPCS”

  23. avatar kyferez says:

    After following the guide I get a blank webpage… Any ideas? It’s not the firewall as I disabled it.

  24. I have fun with, lead to I discovered just what I was taking a look for. You have ended my four day long hunt! God Bless you man. Have a nice day. Bye

  25. avatar kyferez says:

    I found that when installing on Cent 6.3 you had to edit the /etc/php.ini and change short_open_tag=On and then do service httpd restart

    Before doing that, I would get a blank page when going to the zoneminder webpage.

  26. avatar Edward says:

    If anyone is still having a blank page even after turning short_open_tag on, I managed to resolve this issue by creating a zm.ini in /etc/php.d/ with just the line
    short_open_tag = On

    for some reason having that line in the php.ini file would have no affect on the blank page error.

  27. avatar Matt says:

    Amazing guide. Works perfect on top of latest freepbx distro (centos 5 x64) with new(ish) 2.6.32 kernel, hauppauge cards, and next up I hope mythtv/vlc or something to tune and stream ATSC broadcasts. Thanks a million. Wanted so badly to combine asterrisk+freepbx and zoneminder properly, and this was a big help

  28. avatar Jim Apger says:

    Very nice work. Worked beautifully. The only minor clarification would be explicitly showing the /etc/php.ini location.

  29. avatar Wayne says:

    Just a quick “me too” offer of thanks for this great setup guide. Can only imagine how many hours/days I would have spent on my own figuring this out.
    —————————————
    Got my prototype working … now gonna redo the install for a real setup. Some of your warnings and recommendations now make sense.

    Thanks again – Wayne

  30. avatar Martin West says:

    When building I had the following error:

    zm_local_camera.cpp: In static member function ‘static bool LocalCamera::GetCurrentSettings(const char*, char*, int, bool)’:
    zm_local_camera.cpp:774: error: ‘PATH_MAX’ was not declared in this scope

    Had to include
    #include

  31. avatar Sebastian D. says:

    @ Martin West:

    Same Error here:
    zm_local_camera.cpp:774:22: error: ‘PATH_MAX’ was not declared in this scope

    Did you solved the problem?

  32. avatar JJ Anderson says:

    I am trying to install zoneminder on centos 6.4 and am having the exact same issue as blazer, even after trying later suggestions in this thread. I also am trying to combine freepbx and zoneminder on one box. Can anyone give me a hint? I’m not sure which version of ffmpeg to install nor can I find which version is tested with zoneminder!

  33. avatar Mike says:

    On step 14 i’ve put in:
    mysql -u root -p ZM > /usr/local/src/ZoneMinder-1.25.0/db/ZM_create.sql

    However, after it asks for password, it kinda hangs and not do anything. Urgent!

  34. avatar gopal says:

    Hi,
    Please help me to fix this error,

    Starting ZoneMinder: Bareword “ZM_PATH_LOGS” not allowed while “strict subs” in use at /usr/local/share/perl5/ZoneMinder/Logger.pm line 153.
    BEGIN not safe after errors–compilation aborted at /usr/local/share/perl5/ZoneMinder/Logger.pm line 168.
    Compilation failed in require at /usr/local/share/perl5/ZoneMinder.pm line 34.
    BEGIN failed–compilation aborted at /usr/local/share/perl5/ZoneMinder.pm line 34.
    Compilation failed in require at /usr/local/bin/zmpkg.pl line 37.
    BEGIN failed–compilation aborted at /usr/local/bin/zmpkg.pl line 37.
    [FAILED]

    Thanks and Regards,
    Gopal

  35. avatar hoodcanaljim says:

    Great artical. So now how about one for centos 7.0??

    Jim

Leave a Reply

Powered by WordPress | Free T-Mobile Phones for Sale | Thanks to Palm Pre Blog, Video Game Music and Get Six Pack Abs