ZioPRoTo (Saverio Proto)
http://zioproto.ninux.org/howto/ZoneMin ... V1pre2.pdf
http://zioproto.ninux.org/howto/ZoneMin ... V1pre2.pdf
This document tells you how to make a ZoneMinder Server on Gentoo Linux
I spent a couple of days reading the ZoneMinder Forum to have a nice ZoneMinder installation on
Gentoo, so in this thread I'm trying to write down the complete guide

Few easy steps to install ZoneMinder on Gentoo

First of all install Gentoo
I used version 2006.1 to write the HowTo
Grab the Live CD and make a networkless installation, installing no extra packages. Just the base
system.
Once installed modify the file /etc/make.conf
You must set ACCEPT_KEYWORDS="~x86" because ZoneMinder is still not stable in the
Portage. This will change in the future, keep in mind this document is dated October 2006
SYNC and GENTOO_MIRRORS are just to have faster download sources.
Here is my Make.conf example:
------------------------------------------------------------------------------------------
# These settings were set by the catalyst build script that
automatically built this stage
# Please consult /etc/make.conf.example for a more detailed
example
#CFLAGS="-O2 -march=i686 -pipe"
CFLAGS="-march=i686 -O2 -pipe"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS=""
ACCEPT_KEYWORDS="~x86"
USE="-cups mpeg apache2 php mysql -X java samba -gtk swat png tiff
gif jpeg -opengl alsa -firefox -kde dvdr encode mp3 vorbis -gnome
-new-login xml graphviz bzip2 bash-completion"
FEATURES=""
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
GENTOO_MIRRORS="ftp://ftp.unina.it/pub/linux/distributions/gentoo"
LINGUAS="it"
--------------------------------------------------------------------------------------------
Now you can go ahead and use emerge to install what you need:
emerge --sync update list of packets
emerge portage update portage
emerge --update world update all system
etc-update update config files
emerge libpcre If you dont install this manually now, later on
zoneminder will complain about this in the syslog.
emerge zoneminder zoneminder, automatically this will also install apache2
mysql and php
When emerge is done, last few lines on the console will show how to modify /etc/zm.conf and how
to prepare the mysql database.
Let’s see now these two steps:
I used apache2, with apache2 may be a little different
/etc/zm.conf
-------------------------------------------------------
ZM_PATH_BUILD = /usr/share/zoneminder
ZM_PATH_WEB = /var/www/localhost/htdocs/zoneminder
ZM_PATH_CGI = /var/www/localhost/cgi-bin
# ZoneMinder database hostname or ip address
ZM_DB_HOST=localhost
# ZoneMinder database name
ZM_DB_NAME=zm
# ZoneMinder database user
ZM_DB_USER=zm
# ZoneMinder database password
ZM_DB_PASS=zm
---------------------------------------------------------
Now run mysql_install_db if this is your first mysql startup.
And then mysql /etc/init.d/mysql start
Now we create the database tables needed by zoneminder:
mysql -u root < /usr/share/zoneminder/db/zm_create.sql
Into /etc/zm.conf just use root as your DB user so you dont have to create a user. Of course it
is better to create a user, but I’m not explaining this here now.
Now let’s start apache2 /etc/init.d/apache2 start. Point your browser at
http://IP/zoneminder and we should see the ZoneMinder console.
We are almost done, just a few things to fix:
to make everything start automatically when the machine boots:
rc-update add apache2 default
rc-update add mysql default
rc-update add zoneminder default
Now modify /etc/sysctl.conf inserting these two lines:
kernel.shmall = 134217728
kernel.shmmax = 134217728
If you dont do this, ZoneMinder won’t have enough shared memory and will not work with images
bigger than 320x240.
The Start/Stop script provided with the package is not working, so on the ZoneMinder forum I
found information about how to fix the problem:
Modify /etc/passwd
Replace:
apache
with:
apache
We let the apache user execute commando (warning this is a securty threat!)
We put this brand new file /etc/init.d/zoneminder:
---------------------------------------------------------------------------------------------------
#!/sbin/runscript
# Start and stop zoneminder (for Gentoo)
opts="start stop status"
depend() {
use mysql apache2
}
prog=ZoneMinder
ZM_PATH_BIN="/usr/bin"
command="$ZM_PATH_BIN/zmpkg.pl"
start() {
ebegin "Starting $prog"
$command start
eend $? "Failed to start $prog"
}
stop() {
ebegin "Stopping $prog"
$command stop
eend $? "Failed to stop $prog"
}
status() {
result=`$command status`
if [ "$result" = "running" ]; then
echo "ZoneMinder is running"
RETVAL=0
else
echo "ZoneMinder is stopped"
RETVAL=1
fi
exit ${RETVAL}
}
--------------------------------------------------------------------------------------------------------
Start/stop script is fixed.
Last patches:
cd /var/www/localhost/htdocs/zoneminder
chmod 777 events/
mkdir temp/
chmod 777 temp/
I hope this will be useful to someone until ZoneMinder becames a stable package for Gentoo
ZioPRoTo (Saverio Proto)