Zoneminder
Материал из ALT Linux Wiki
Инструкция по развёртыванию Zoneminder в ALT Linux.
Обсуждение на форуме http://forum.altlinux.org/index.php/topic,22677.0.html.
Содержание |
Общая информация
На данный момент установка Zoneminder работает только с SysVinit. Поддержка systemd не является полноценной, у меня, например, не получилось корректно запустить сервис spawn-fcgi на системе с systemd, всё остальное вроде бы завелось. Проверял работу с systemd только на p7. В статье описана работа Zoneminder вместе с nginx, работа с apache не проверялась.
Установка Zoneminder
Sisyphus / p7
apt-get install zoneminder nginx MySQL-server spawn-fcgi php5-fpm-fcgi fcgiwrap php5-cgi
Настройка Zoneminder
1. Первым делом необходимо запустить mysqld
service mysqld start
2. Создание базы данных MySQL
su - mysql mysql> create database zm; mysql> exit; mysql zm mysql> source /usr/share/zoneminder/db/zm_create.sql; mysql> grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass'; mysql> exit; service mysqld restart
3. Отредактировать файлы
/etc/sysconfig/spawn-fcgi
- USERID=_spawn_fcgi + USERID=apache
/etc/sysconfig/spawn-fcgi (багу надо вешать)
- FCGIPROGRAM="/usr/bin/fcgiwrap" + FCGIPROGRAM="/usr/sbin/fcgiwrap"
- fastcgi_temp_path /var/spool/nginx/tmp/fastcgi + #fastcgi_temp_path /var/spool/nginx/tmp/fastcgi
/etc/fpm/php5-fpm.conf
- user = _php_fpm + user = apache
4. Создать файлы
cat /etc/nginx/sites-enabled.d/zoneminder.conf server { listen 127.0.0.1:443; rewrite ^/(.*)$ http://$host/$1 permanent; } server { listen 80; types_hash_bucket_size 128; allow all; location / { root /usr/share/zoneminder/www; rewrite ^/zm/(.*) /$1 break; index index.php; } location /cgi-bin/zm { root /usr/lib/zoneminder/cgi-bin; autoindex on; index index.cgi; } location ~ nph-zms$ { root /usr/lib/zoneminder/cgi-bin; rewrite ^/cgi-bin/zm/(.*) /$1 break; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/spawn-fcgi/spw-cgi.sock; fastcgi_param SCRIPT_FILENAME /usr/lib/zoneminder/cgi-bin/$fastcgi_script_name; } location ~ /\.ht { deny all; } location ~ \.php$ { root /usr/share/zoneminder/www; rewrite ^/zm/(.*) /$1 break; include fastcgi_params; include sites-enabled.d/zm-fcgi.inc; fastcgi_param SCRIPT_FILENAME /usr/share/zoneminder/www/$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT /usr/share/zoneminder/www; } access_log /var/log/nginx/access.log; }
cat /etc/nginx/sites-enabled.d/zm-fcgi.inc fastcgi_param SERVER_NAME $hostname; fastcgi_pass unix:/var/run/php5-fpm/php5-fpm.sock; fastcgi_index index.php; fastcgi_ignore_headers Cache-Control Expires Set-Cookie; fastcgi_cache_key "$host$request_method$request_uri$is_args$args|$cookie_phpsessid"; fastcgi_temp_path /var/spool/nginx/tmp/fastcgi 1 2; fastcgi_cache_use_stale updating error timeout invalid_header http_500; fastcgi_cache_valid 200 301 302 304 5m; fastcgi_connect_timeout 180; fastcgi_send_timeout 180; fastcgi_read_timeout 250; fastcgi_cache_bypass $cookie_phpsessid; fastcgi_no_cache $cookie_phpsessid; fastcgi_intercept_errors on; fastcgi_param HTTPS off;
5. Добавить пользователя apache в группу video
usermod -a -G video apache
6. Запустить сервисы
chkconfig mysqld on chkconfig nginx on chkconfig zoneminder on chkconfig spawn-fcgi on chkconfig php5-fpm on
Запуск Zoneminder
Запустить браузер и перейти по адресу http://localhost/.
Решение проблем
1. Ошибка в /var/log/messages
Jun 11 17:13:55 comp-core2-duo-d82748 zms[6530]: FAT [Can't open memory map file /dev/shm/zm.mmap.26, probably not enough space free: Permission denied]
Решение. Проверить от имени какого пользователя запущен сервис
ps aux|egrep '(apache|zm|php-fpm|fcgiwrap)'
должен быть везде apache, при необходимости поправить конфиги: spawn-fcgi, php5-fpm.conf и zm.conf.
PS. Вообще на любые сообщения с Permission denied лучше сразу смотреть от имени какого пользователя запущен сервис.
2. Ошибка при запуске nginx
Checking configuration sanity for nginx: nginx: [emerg] the same path name "/var/spool/nginx/tmp/fastcgi" in /etc/nginx/nginx.conf:15 has the different levels than in /etc/nginx/sites-enabled.d/zm-fcgi.inc:6
#fastcgi_temp_path /var/spool/nginx/tmp/fastcgi;
3. Повторяющееся предупреждение в /var/log/nginx/error.log
PHP message: PHP Warning: strftime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Yekaterinburg' for 'YEKT/6.0/no DST' instead in /usr/share/zoneminder/www/includes/functions.php on line 1440
PHP message: PHP Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Yekaterinburg' for 'YEKT/6.0/no DST' instead in /usr/share/zoneminder/www/includes/functions.php on line 1440
Решение. Прописать в конфиге php в /etc/php/5.5/fpm/php.ini таймзону в секции [Date]
date.timezone = Asia/Yekaterinburg