summaryrefslogtreecommitdiffstats
path: root/abs/core/zoneminder/zoneminder.install
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/zoneminder/zoneminder.install')
-rw-r--r--abs/core/zoneminder/zoneminder.install224
1 files changed, 158 insertions, 66 deletions
diff --git a/abs/core/zoneminder/zoneminder.install b/abs/core/zoneminder/zoneminder.install
index bf5cd99..0a1f557 100644
--- a/abs/core/zoneminder/zoneminder.install
+++ b/abs/core/zoneminder/zoneminder.install
@@ -1,86 +1,178 @@
-
-install_db() {
- . /etc/systemconfig
- if [ $SystemType = Master_backend -o $SystemType = Standalone ]
- then
- mysql -e "use zm" > /dev/null
- rc=$?
- if [ $rc = 1 ]
- then
- echo "Installing zoneminder database zm"
- cat /usr/share/zoneminder/db/zm_create.sql | mysql
- echo 'grant lock tables, alter,select,insert,update,delete on zm.* to 'zmuser'@localhost identified by "zmpass";' | mysql
- fi
- else
- echo "Will only init the database for StandAlone or Master_backend LinHES systems"
- fi
- }
-
pre_install() {
- set -e
- abort=false
- if [ -L /srv/http/zoneminder/events ]; then
- l=$(readlink /srv/http/zoneminder/events)
- if [ $l != /var/cache/zoneminder/events ]; then
- abort=true
+ set -e
+ abort=false
+ if [ -L /srv/http/zoneminder/events ]; then
+ l=$(readlink /srv/http/zoneminder/events)
+ if [ $l != /var/cache/zoneminder/events ]; then
+ abort=true
+ fi
fi
- fi
- if [ -L /srv/http/zoneminder/images ]; then
- l=$(readlink /srv/http/zoneminder/images)
- if [ $l != /var/cache/zoneminder/images ]; then
- abort=true
+ if [ -L /srv/http/zoneminder/images ]; then
+ l=$(readlink /srv/http/zoneminder/images)
+ if [ $l != /var/cache/zoneminder/images ]; then
+ abort=true
+ fi
fi
- fi
- if [ $abort = true ]; then
- cat >&2 << EOF
+ if [ $abort = true ]; then
+ cat >&2 << EOF
Aborting installation of zoneminder due to non-default symlinks in
/srv/http/zoneminder for the images and/or events directory, which could
result in loss of data. Please move your data in each of these directories to
/var/cache/zoneminder before installing zoneminder from the package.
EOF
- exit 1
- fi
- exit 0
+ exit 1
+ fi
+ exit 0
}
post_install() {
- if [[ -d /var/log/zoneminder ]]; then
- chmod 0755 /var/log/zoneminder
- chown http.http /var/log/zoneminder
- else
- mkdir -m 0755 /var/log/zoneminder
- chown http.http /var/log/zoneminder
- fi
- if [[ -d /tmp/zoneminder ]]; then
- chmod 0700 /tmp/zoneminder
- chown http.http /tmp/zoneminder
- else
- mkdir -m 0700 /tmp/zoneminder
- chown http.http /tmp/zoneminder
- fi
-#---
- usermod -G video http
- install_db
- gen_light_include.py
- /sbin/sv hup /service/lighttpd
-#---
+ if [[ -d /var/log/zoneminder ]]; then
+ chmod 0755 /var/log/zoneminder
+ chown http.http /var/log/zoneminder
+ else
+ mkdir -m 0755 /var/log/zoneminder
+ chown http.http /var/log/zoneminder
+ fi
+ if [[ -d /tmp/zm ]]; then
+ chmod 0700 /tmp/zm
+ chown http.http /tmp/zm
+ else
+ mkdir -m 0700 /tmp/zm
+ chown http.http /tmp/zm
+ fi
+
+ # edit /etc/php.ini for Zoneminder
+ sed -e '
+ # Enable these libraries by removing the leading comment character
+ \|^;extension=mysql.so$| s|^;||;
+ \|^;extension=mysqli.so$| s|^;||;
+ \|^;extension=pdo_mysql.so$| s|^;||;
+ \|^;extension=gd.so$| s|^;||;
+ \|^;extension=gettext.so$| s|^;||;
+ \|^;extension=mcrypt.so$| s|^;||;
+ \|^;extension=session.so$| s|^;||;
+ \|^;extension=sockets.so$| s|^;||;
+ \|^;extension=openssl.so$| s|^;||;
+ \|^;extension=ftp.so$| s|^;||;
+ \|^;extension=zip.so$| s|^;||;
+
+ # Add zoneminder paths to open_basedir
+ s|^open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/$|&:/etc:/srv/http/zoneminder/:/var/cache/zoneminder/|;
+ ' /etc/php/php.ini > /etc/php/php.ini.zoneminder
+
+ # edit /etc/httpd/conf/httpd.conf for Zoneminder
+ sed -e '
+ # Use mod_mpm_prefork instead of mod_mpm_event.so (FS#39218).
+ s|^LoadModule mpm_event_module modules/mod_mpm_event.so$|#&\nLoadModule mpm_prefork_module modules/mod_mpm_prefork.so|;
+
+ # Zoneminder requires cgi
+ \|^#LoadModule cgi_module modules/mod_cgi.so$| s|#||;
+
+ # libphp5
+ \|^LoadModule php5_module modules/libphp5.so$|d;
+ s|^#*LoadModule rewrite_module modules/mod_rewrite.so$|&\nLoadModule php5_module modules/libphp5.so|;
+ \|^Include /etc/httpd/conf/extra/php5_module.conf|d;
+ s|^Include conf/extra/httpd-default.conf$|&\nInclude /etc/httpd/conf/extra/php5_module.conf|;
+
+ # Include httpd-zoneminder.conf
+ \|^Include /etc/httpd/conf/extra/httpd-zoneminder.conf$|d;
+ s|^# Server-pool management (MPM specific)$|\nInclude /etc/httpd/conf/extra/httpd-zoneminder.conf\n&|;
+ ' /etc/httpd/conf/httpd.conf > /etc/httpd/conf/httpd.conf.zoneminder
+
+ cat << EOF
+Note for mysql:
+==> To run Zoneminder, you must install the database running mysql service (as root):
+==> "rc.d start mysqld" (in initscripts) or "systemctl start mysqld.service" (in systemd)
+==> and add Zoneminder database typing (with passsword):
+==> "mysqladmin --defaults-file=/etc/mysql/my.cnf -p -f reload"
+==> "cat /usr/share/zoneminder/db/zm_create.sql | mysql --defaults-file=/etc/mysql/my.cnf -p"
+==> "echo 'grant lock tables, alter,select,insert,update,delete on zm.* to 'zmuser'@localhost identified by "zmpass";' | mysql --defaults-file=/etc/mysql/my.cnf -p mysql"
+==> (or without passsword):
+==> "mysqladmin --defaults-file=/etc/mysql/my.cnf -f reload"
+==> "cat /usr/share/zoneminder/db/zm_create.sql | mysql --defaults-file=/etc/mysql/my.cnf"
+==> "echo 'grant lock tables, alter,select,insert,update,delete on zm.* to 'zmuser'@localhost identified by "zmpass";' | mysql --defaults-file=/etc/mysql/my.cnf mysql"
+
+Note for php:
+==> You must uncomment that line in /etc/php/php.ini:
+==> "extension=mysql.so"
+==> check and make sure these are uncommented:
+==> "extension=gd.so"
+==> "extension=gettext.so"
+==> "extension=mcrypt.so"
+==> "extension=mysqli.so"
+==> "extension=session.so"
+==> "extension=sockets.so"
+==> "extension=openssl.so"
+==> "extension=ftp.so"
+==> "extension=zip.so"
+==> check and add to open_basedir "/etc" and
+==> "/srv/http/zoneminder" like so
+==> "open_basedir = /home:/tmp:/usr/share/pear:/etc:/srv/http/zoneminder"
+==> and set your timezone in php.ini:
+==> "date.timezone = <your_country>/<your_city>"
+
+Note for apache:
+==> You must edit /etc/httpd/conf/httpd.conf and add the line:
+==> "LoadModule php5_module modules/libphp5.so"
+==> and:
+==> "Include /etc/httpd/conf/extra/php5_module.conf"
+==> "Include /etc/httpd/conf/extra/httpd-zoneminder.conf"
+EOF
}
post_upgrade() {
- post_install
- /usr/bin/zmupdate.pl -f >/dev/null
- gen_light_include.py
- /sbin/sv hup /service/lighttpd
+ post_install
+ /usr/bin/zmupdate.pl -f >/dev/null
}
post_remove() {
- if [[ -d /tmp/zoneminder ]]; then
- rm -vr /tmp/zoneminder
- fi
+ if [[ -d /tmp/zoneminder ]]; then
+ rm -vr /tmp/zoneminder
+ fi
+ # sed -i -e '
+ # /^open_basedir/ s/:\/srv\/http\/zoneminder//;
+ # /^open_basedir/ s/:\/srv\/http\/zoneminder\///;
+ # ' /etc/php/php.ini || read
+ # sed -i -e '
+ # /^# ZoneMinder/d;
+ # /Include \/etc\/httpd\/conf\/extra\/httpd-zoneminder.conf/d;
+ # ' /etc/httpd/conf/httpd.conf || read
-#--
- gen_light_include.py
- /sbin/sv hup /service/lighttpd
-#--
+ cat << EOF
+Note:
+==> To clean Zoneminder mysql database, run as root (with password):
+==> "echo 'delete from user where User="zmuser";' | mysql --defaults-file=/etc/mysql/my.cnf -p mysql"
+==> "echo 'delete from db where User="zmuser";' | mysql --defaults-file=/etc/mysql/my.cnf -p mysql"
+==> "mysqladmin --defaults-file=/etc/mysql/my.cnf -p -f drop zm"
+==> (or without password):
+==> "echo 'delete from user where User="zmuser";' | mysql --defaults-file=/etc/mysql/my.cnf mysql"
+==> "echo 'delete from db where User="zmuser";' | mysql --defaults-file=/etc/mysql/my.cnf mysql"
+==> "mysqladmin --defaults-file=/etc/mysql/my.cnf -f drop zm"
+==> Disable http with php if it isn't needed with others servers,
+==> comment or remove that lines in /etc/httpd/conf/httpd.conf:
+==> "LoadModule php5_module modules/libphp5.so"
+==> "Include /etc/httpd/conf/extra/php5_module.conf"
+
+==> Remove line in /etc/httpd/conf/httpd.conf:
+==> "Include /etc/httpd/conf/extra/httpd-zoneminder.conf"
+
+==> Disable php with mysql if it isn't needed with others servers,
+==> comment that lines in /etc/php/php.ini:
+==> "extension=mysql.so"
+==> "extension=gd.so"
+==> "extension=gettext.so"
+==> "extension=mcrypt.so"
+==> "extension=mysqli.so"
+==> "extension=session.so"
+==> "extension=sockets.so"
+==> "date.timezone = <my_country>/<my_city>"
+
+==> Edit /etc/php/php.ini and remove "/etc" and "/srv/http/zoneminder"
+==> in the "open_basedir".
+
+==> Remove log files and "zonemider" directory in "/var/log/zoneminder".
+
+==> Backup and remove "events", "images" and "temp" dirs in "/var/cache/zoneminder".
+EOF
}