Ubuntu 18.04 安装Zoneminder记录

最近闲的,想装个监控服务器玩,查了下应该就Zoneminder应该还不错,记录如下:

找到官网,https://zmrepo.zoneminder.com/,看了半天,先装个公钥吧

wget -O - https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | sudo apt-key add -

然后转到页面说明的Ubuntu安装说明,https://zoneminder.readthedocs.io/en/latest/installationguide/ubuntu.html

接下来执行下列命令开始安装

sudo apt-get install tasksel
sudo tasksel install lamp-server

方便起见切换下root用户

sudo -i

加PPA源

add-apt-repository ppa:iconnor/zoneminder-1.36

更新更新(我只update了)

apt-get update
apt-get upgrade
apt-get dist-upgrade

配置MySql,系统里应该装了mysql,没装装一个,注意版本,我的版本是MySQL 5.7 +  Zoneminder 1.36

执行

rm /etc/mysql/my.cnf  (this removes the current symbolic link)
cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf

编辑my.cnf

vim /etc/mysql/my.cnf

找到[mysqld]区块,追加以下内容

sql_mode = NO_ENGINE_SUBSTITUTION

保存重启

systemctl restart mysql

接下来安装

apt-get install zoneminder

 配置数据库,初始化。

mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql
mysql -uroot -p -e "grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute,references on zm.* to 'zmuser'@localhost identified by 'zmpass';"

这块导入可能会报一些SQL错误,主要是新增表失败,表已经存在之类的,

解决方法是在SQL报错的地方加上了删除表的命令,大概zm_create.sql的1089行左右

DROP TABLE IF EXISTS Sessions;
CREATE TABLE Sessions (...
DROP TABLE IF EXISTS Snapshots;
CREATE TABLE Snapshots (...
DROP TABLE IF EXISTS Snapshot_Events;
CREATE TABLE Snapshot_Events (...

再执行应该差不多的位置还会报错,无法删除Snapshots表,因为外键关联。所以加上下列命令,强行删除就好了,

SET FOREIGN_KEY_CHECKS = 0;

我最后的解决方法,手动删除了上述三张表,再执行zm_create.sql,无错成功。

 

设置权限

chmod 740 /etc/zm/zm.conf
chown root:www-data /etc/zm/zm.conf
chown -R www-data:www-data /usr/share/zoneminder/

增加用户

adduser www-data video 
usermod -a -G video www-data

配置Apache

a2enmod cgi
a2enmod rewrite
a2enconf zoneminder

a2enmod expires
a2enmod headers

设置ZoneMinder自启动&启动

systemctl enable zoneminder
systemctl start zoneminder
systemctl reload apache2

 

最后,访问!

http://ip/zm/

 

 

 

 

 

my.cnf
posted on 2022-01-12 15:54  BoneKing  阅读(754)  评论(0编辑  收藏  举报