<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.staging.zoneminder.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Johnydo</id>
	<title>ZoneMinder Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.staging.zoneminder.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Johnydo"/>
	<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/Special:Contributions/Johnydo"/>
	<updated>2026-04-19T22:54:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16075</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16075"/>
		<updated>2020-03-31T10:19:09Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es sollen mittels ZoneMinder verschiedene Überwachungskameras, vom Hersteller Vivotek, verwaltet werden. Als Basishardware dient ein Raspberry Pi mit einem Ubuntu Server Betriebssystem. Als Datenspeicher kommt eine Synology die per NFS eingebunden wird zum Einsatz. &lt;br /&gt;
&lt;br /&gt;
=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.home.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
===Virtual Host (Port 443) erstellen===&lt;br /&gt;
 sudo a2dissite default-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/sites-available/zoneminder-ssl.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
         &amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
                 ServerName zoneminder.home.lan&lt;br /&gt;
 &lt;br /&gt;
                 RewriteEngine on&lt;br /&gt;
                 RewriteRule ^/$ https://zoneminder.home.lan/zm/$1 [L,R] &lt;br /&gt;
 &lt;br /&gt;
                 ErrorLog ${APACHE_LOG_DIR}/zoneminder-error.log&lt;br /&gt;
                 CustomLog ${APACHE_LOG_DIR}/zoneminder-access.log combined &lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile      /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
                 &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet&lt;br /&gt;
&lt;br /&gt;
 sudo a2ensite zoneminder-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Standard Virtual Host (Port 80) deaktivieren==&lt;br /&gt;
 sudo a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/ports.conf&lt;br /&gt;
&lt;br /&gt;
 # If you just change the port or add more ports here, you will likely also&lt;br /&gt;
 # have to change the VirtualHost statement in&lt;br /&gt;
 # /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
 &lt;br /&gt;
 #Listen 80&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule ssl_module&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule mod_gnutls.c&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Firewall Port 80 entfernen==&lt;br /&gt;
 sudo ufw delete allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==Hardening Webserver==&lt;br /&gt;
===Hide Apache Version and Operating System===&lt;br /&gt;
 sudo vi /etc/apache2/conf-enabled/security.conf&lt;br /&gt;
&lt;br /&gt;
 ServerTokens Prod&lt;br /&gt;
 ServerSignature Off&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable Directory Listing and FollowSymLinks===&lt;br /&gt;
 sudo vi /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /var/www/&amp;gt;&lt;br /&gt;
         Options &amp;#039;&amp;#039;&amp;#039;-Indexes -FollowSymLinks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
         AllowOverride None&lt;br /&gt;
         Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Secure Apache using mod_security and mod_evasive Modules===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mod_security&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Acts as a firewall for web servers and applications, providing protection against brute force attacks. Install it and then restart Apache.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libapache2-mod-security2 -y&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable TRACE HTTP Requestit Request Size===&lt;br /&gt;
By default, Trace HTTP Request is enabled allowing for Cross Site Tracing. This enables a hacker to easily steal cookie information. Disabling Trace HTTP Request makes the mod_proxy and core server return “405 - Method Not Allowed” error message to clients.&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/conf-enabled/security.conf&lt;br /&gt;
&lt;br /&gt;
 TraceEnable Off&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable Apache and PHP Infopages===&lt;br /&gt;
 sudo rm /var/www/html/index.html&lt;br /&gt;
&lt;br /&gt;
 sudo rm /var/www/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16074</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16074"/>
		<updated>2020-03-31T10:16:50Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Disable Directory Listing and FollowSymLinks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.home.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
===Virtual Host (Port 443) erstellen===&lt;br /&gt;
 sudo a2dissite default-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/sites-available/zoneminder-ssl.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
         &amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
                 ServerName zoneminder.home.lan&lt;br /&gt;
 &lt;br /&gt;
                 RewriteEngine on&lt;br /&gt;
                 RewriteRule ^/$ https://zoneminder.home.lan/zm/$1 [L,R] &lt;br /&gt;
 &lt;br /&gt;
                 ErrorLog ${APACHE_LOG_DIR}/zoneminder-error.log&lt;br /&gt;
                 CustomLog ${APACHE_LOG_DIR}/zoneminder-access.log combined &lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile      /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
                 &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet&lt;br /&gt;
&lt;br /&gt;
 sudo a2ensite zoneminder-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Standard Virtual Host (Port 80) deaktivieren==&lt;br /&gt;
 sudo a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/ports.conf&lt;br /&gt;
&lt;br /&gt;
 # If you just change the port or add more ports here, you will likely also&lt;br /&gt;
 # have to change the VirtualHost statement in&lt;br /&gt;
 # /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
 &lt;br /&gt;
 #Listen 80&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule ssl_module&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule mod_gnutls.c&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Firewall Port 80 entfernen==&lt;br /&gt;
 sudo ufw delete allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==Hardening Webserver==&lt;br /&gt;
===Hide Apache Version and Operating System===&lt;br /&gt;
 sudo vi /etc/apache2/conf-enabled/security.conf&lt;br /&gt;
&lt;br /&gt;
 ServerTokens Prod&lt;br /&gt;
 ServerSignature Off&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable Directory Listing and FollowSymLinks===&lt;br /&gt;
 sudo vi /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /var/www/&amp;gt;&lt;br /&gt;
         Options &amp;#039;&amp;#039;&amp;#039;-Indexes -FollowSymLinks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
         AllowOverride None&lt;br /&gt;
         Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Secure Apache using mod_security and mod_evasive Modules===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mod_security&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Acts as a firewall for web servers and applications, providing protection against brute force attacks. Install it and then restart Apache.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libapache2-mod-security2 -y&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable TRACE HTTP Requestit Request Size===&lt;br /&gt;
By default, Trace HTTP Request is enabled allowing for Cross Site Tracing. This enables a hacker to easily steal cookie information. Disabling Trace HTTP Request makes the mod_proxy and core server return “405 - Method Not Allowed” error message to clients.&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/conf-enabled/security.conf&lt;br /&gt;
&lt;br /&gt;
 TraceEnable Off&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable Apache and PHP Infopages===&lt;br /&gt;
 sudo rm /var/www/html/index.html&lt;br /&gt;
&lt;br /&gt;
 sudo rm /var/www/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16073</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16073"/>
		<updated>2020-03-31T10:16:33Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Hardening Webserver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.home.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
===Virtual Host (Port 443) erstellen===&lt;br /&gt;
 sudo a2dissite default-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/sites-available/zoneminder-ssl.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
         &amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
                 ServerName zoneminder.home.lan&lt;br /&gt;
 &lt;br /&gt;
                 RewriteEngine on&lt;br /&gt;
                 RewriteRule ^/$ https://zoneminder.home.lan/zm/$1 [L,R] &lt;br /&gt;
 &lt;br /&gt;
                 ErrorLog ${APACHE_LOG_DIR}/zoneminder-error.log&lt;br /&gt;
                 CustomLog ${APACHE_LOG_DIR}/zoneminder-access.log combined &lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile      /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
                 &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet&lt;br /&gt;
&lt;br /&gt;
 sudo a2ensite zoneminder-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Standard Virtual Host (Port 80) deaktivieren==&lt;br /&gt;
 sudo a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/ports.conf&lt;br /&gt;
&lt;br /&gt;
 # If you just change the port or add more ports here, you will likely also&lt;br /&gt;
 # have to change the VirtualHost statement in&lt;br /&gt;
 # /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
 &lt;br /&gt;
 #Listen 80&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule ssl_module&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule mod_gnutls.c&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Firewall Port 80 entfernen==&lt;br /&gt;
 sudo ufw delete allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==Hardening Webserver==&lt;br /&gt;
===Hide Apache Version and Operating System===&lt;br /&gt;
 sudo vi /etc/apache2/conf-enabled/security.conf&lt;br /&gt;
&lt;br /&gt;
 ServerTokens Prod&lt;br /&gt;
 ServerSignature Off&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable Directory Listing and FollowSymLinks===&lt;br /&gt;
 sudo vi /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /var/www/&amp;gt;&lt;br /&gt;
         Options &amp;#039;&amp;#039;&amp;#039;-Indexes -FollowSymLinks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
         AllowOverride None&lt;br /&gt;
         Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Secure Apache using mod_security and mod_evasive Modules===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mod_security&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Acts as a firewall for web servers and applications, providing protection against brute force attacks. Install it and then restart Apache.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libapache2-mod-security2 -y&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable TRACE HTTP Requestit Request Size===&lt;br /&gt;
By default, Trace HTTP Request is enabled allowing for Cross Site Tracing. This enables a hacker to easily steal cookie information. Disabling Trace HTTP Request makes the mod_proxy and core server return “405 - Method Not Allowed” error message to clients.&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/conf-enabled/security.conf&lt;br /&gt;
&lt;br /&gt;
 TraceEnable Off&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable Apache and PHP Infopages===&lt;br /&gt;
 sudo rm /var/www/html/index.html&lt;br /&gt;
&lt;br /&gt;
 sudo rm /var/www/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16072</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16072"/>
		<updated>2020-03-31T10:15:11Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Hardening Webserver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.home.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
===Virtual Host (Port 443) erstellen===&lt;br /&gt;
 sudo a2dissite default-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/sites-available/zoneminder-ssl.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
         &amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
                 ServerName zoneminder.home.lan&lt;br /&gt;
 &lt;br /&gt;
                 RewriteEngine on&lt;br /&gt;
                 RewriteRule ^/$ https://zoneminder.home.lan/zm/$1 [L,R] &lt;br /&gt;
 &lt;br /&gt;
                 ErrorLog ${APACHE_LOG_DIR}/zoneminder-error.log&lt;br /&gt;
                 CustomLog ${APACHE_LOG_DIR}/zoneminder-access.log combined &lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile      /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
                 &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet&lt;br /&gt;
&lt;br /&gt;
 sudo a2ensite zoneminder-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Standard Virtual Host (Port 80) deaktivieren==&lt;br /&gt;
 sudo a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/ports.conf&lt;br /&gt;
&lt;br /&gt;
 # If you just change the port or add more ports here, you will likely also&lt;br /&gt;
 # have to change the VirtualHost statement in&lt;br /&gt;
 # /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
 &lt;br /&gt;
 #Listen 80&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule ssl_module&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule mod_gnutls.c&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Firewall Port 80 entfernen==&lt;br /&gt;
 sudo ufw delete allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==Hardening Webserver==&lt;br /&gt;
===Hide Apache Version and Operating System===&lt;br /&gt;
 sudo vi /etc/apache2/conf-enabled/security.conf&lt;br /&gt;
&lt;br /&gt;
 ServerTokens Prod&lt;br /&gt;
 ServerSignature Off&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable Directory Listing and FollowSymLinks===&lt;br /&gt;
 sudo vi /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /var/www/&amp;gt;&lt;br /&gt;
         Options &amp;#039;&amp;#039;&amp;#039;-Indexes -FollowSymLinks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
         AllowOverride None&lt;br /&gt;
         Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Secure Apache using mod_security and mod_evasive Modules===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mod_security&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Acts as a firewall for web servers and applications, providing protection against brute force attacks. Install it and then restart Apache.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libapache2-mod-security2 -y&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16071</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16071"/>
		<updated>2020-03-31T10:15:01Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Hardening Webserver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.home.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
===Virtual Host (Port 443) erstellen===&lt;br /&gt;
 sudo a2dissite default-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/sites-available/zoneminder-ssl.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
         &amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
                 ServerName zoneminder.home.lan&lt;br /&gt;
 &lt;br /&gt;
                 RewriteEngine on&lt;br /&gt;
                 RewriteRule ^/$ https://zoneminder.home.lan/zm/$1 [L,R] &lt;br /&gt;
 &lt;br /&gt;
                 ErrorLog ${APACHE_LOG_DIR}/zoneminder-error.log&lt;br /&gt;
                 CustomLog ${APACHE_LOG_DIR}/zoneminder-access.log combined &lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile      /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
                 &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet&lt;br /&gt;
&lt;br /&gt;
 sudo a2ensite zoneminder-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Standard Virtual Host (Port 80) deaktivieren==&lt;br /&gt;
 sudo a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/ports.conf&lt;br /&gt;
&lt;br /&gt;
 # If you just change the port or add more ports here, you will likely also&lt;br /&gt;
 # have to change the VirtualHost statement in&lt;br /&gt;
 # /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
 &lt;br /&gt;
 #Listen 80&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule ssl_module&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule mod_gnutls.c&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Firewall Port 80 entfernen==&lt;br /&gt;
 sudo ufw delete allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==Hardening Webserver==&lt;br /&gt;
===Hide Apache Version and Operating System===&lt;br /&gt;
 sudo vi /etc/apache2/conf-enabled/security.conf&lt;br /&gt;
&lt;br /&gt;
 ServerTokens Prod&lt;br /&gt;
 ServerSignature Off&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable Directory Listing and FollowSymLinks===&lt;br /&gt;
 sudo vi /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /var/www/&amp;gt;&lt;br /&gt;
         Options &amp;#039;&amp;#039;&amp;#039;-Indexes -FollowSymLinks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
         AllowOverride None&lt;br /&gt;
         Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Secure Apache using mod_security and mod_evasive Modules===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mod_security&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Acts as a firewall for web servers and applications, providing protection against brute force attacks. Install it and then restart Apache.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libapache2-mod-security2 -y&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16070</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16070"/>
		<updated>2020-03-31T10:14:21Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Disable Directory Listing and FollowSymLinks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.home.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
===Virtual Host (Port 443) erstellen===&lt;br /&gt;
 sudo a2dissite default-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/sites-available/zoneminder-ssl.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
         &amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
                 ServerName zoneminder.home.lan&lt;br /&gt;
 &lt;br /&gt;
                 RewriteEngine on&lt;br /&gt;
                 RewriteRule ^/$ https://zoneminder.home.lan/zm/$1 [L,R] &lt;br /&gt;
 &lt;br /&gt;
                 ErrorLog ${APACHE_LOG_DIR}/zoneminder-error.log&lt;br /&gt;
                 CustomLog ${APACHE_LOG_DIR}/zoneminder-access.log combined &lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile      /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
                 &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet&lt;br /&gt;
&lt;br /&gt;
 sudo a2ensite zoneminder-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Standard Virtual Host (Port 80) deaktivieren==&lt;br /&gt;
 sudo a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/ports.conf&lt;br /&gt;
&lt;br /&gt;
 # If you just change the port or add more ports here, you will likely also&lt;br /&gt;
 # have to change the VirtualHost statement in&lt;br /&gt;
 # /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
 &lt;br /&gt;
 #Listen 80&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule ssl_module&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule mod_gnutls.c&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Firewall Port 80 entfernen==&lt;br /&gt;
 sudo ufw delete allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==Hardening Webserver==&lt;br /&gt;
===Hide Apache Version and Operating System===&lt;br /&gt;
 sudo vi /etc/apache2/conf-enabled/security.conf&lt;br /&gt;
&lt;br /&gt;
 ServerTokens Prod&lt;br /&gt;
 ServerSignature Off&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable Directory Listing and FollowSymLinks===&lt;br /&gt;
 sudo vi /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /var/www/&amp;gt;&lt;br /&gt;
         Options &amp;#039;&amp;#039;&amp;#039;-Indexes -FollowSymLinks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
         AllowOverride None&lt;br /&gt;
         Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16069</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16069"/>
		<updated>2020-03-31T10:14:10Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Hardening Webserver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.home.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
===Virtual Host (Port 443) erstellen===&lt;br /&gt;
 sudo a2dissite default-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/sites-available/zoneminder-ssl.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
         &amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
                 ServerName zoneminder.home.lan&lt;br /&gt;
 &lt;br /&gt;
                 RewriteEngine on&lt;br /&gt;
                 RewriteRule ^/$ https://zoneminder.home.lan/zm/$1 [L,R] &lt;br /&gt;
 &lt;br /&gt;
                 ErrorLog ${APACHE_LOG_DIR}/zoneminder-error.log&lt;br /&gt;
                 CustomLog ${APACHE_LOG_DIR}/zoneminder-access.log combined &lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile      /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
                 &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet&lt;br /&gt;
&lt;br /&gt;
 sudo a2ensite zoneminder-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Standard Virtual Host (Port 80) deaktivieren==&lt;br /&gt;
 sudo a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/ports.conf&lt;br /&gt;
&lt;br /&gt;
 # If you just change the port or add more ports here, you will likely also&lt;br /&gt;
 # have to change the VirtualHost statement in&lt;br /&gt;
 # /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
 &lt;br /&gt;
 #Listen 80&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule ssl_module&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule mod_gnutls.c&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Firewall Port 80 entfernen==&lt;br /&gt;
 sudo ufw delete allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==Hardening Webserver==&lt;br /&gt;
===Hide Apache Version and Operating System===&lt;br /&gt;
 sudo vi /etc/apache2/conf-enabled/security.conf&lt;br /&gt;
&lt;br /&gt;
 ServerTokens Prod&lt;br /&gt;
 ServerSignature Off&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Disable Directory Listing and FollowSymLinks===&lt;br /&gt;
 sudo vi /etc/apache2/apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory /var/www/&amp;gt;&lt;br /&gt;
         Options &amp;#039;&amp;#039;&amp;#039;-Indexes -FollowSymLinks&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
         AllowOverride None&lt;br /&gt;
         Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16068</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16068"/>
		<updated>2020-03-31T10:13:35Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Webserver Konfiguration SSL only */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.home.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
===Virtual Host (Port 443) erstellen===&lt;br /&gt;
 sudo a2dissite default-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/sites-available/zoneminder-ssl.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
         &amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
                 ServerName zoneminder.home.lan&lt;br /&gt;
 &lt;br /&gt;
                 RewriteEngine on&lt;br /&gt;
                 RewriteRule ^/$ https://zoneminder.home.lan/zm/$1 [L,R] &lt;br /&gt;
 &lt;br /&gt;
                 ErrorLog ${APACHE_LOG_DIR}/zoneminder-error.log&lt;br /&gt;
                 CustomLog ${APACHE_LOG_DIR}/zoneminder-access.log combined &lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile      /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
                 &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet&lt;br /&gt;
&lt;br /&gt;
 sudo a2ensite zoneminder-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Standard Virtual Host (Port 80) deaktivieren==&lt;br /&gt;
 sudo a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/ports.conf&lt;br /&gt;
&lt;br /&gt;
 # If you just change the port or add more ports here, you will likely also&lt;br /&gt;
 # have to change the VirtualHost statement in&lt;br /&gt;
 # /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
 &lt;br /&gt;
 #Listen 80&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule ssl_module&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule mod_gnutls.c&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Firewall Port 80 entfernen==&lt;br /&gt;
 sudo ufw delete allow http&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==Hardening Webserver==&lt;br /&gt;
===Hide Apache Version and Operating System===&lt;br /&gt;
 sudo vi /etc/apache2/conf-enabled/security.conf&lt;br /&gt;
&lt;br /&gt;
 ServerTokens Prod&lt;br /&gt;
 ServerSignature Off&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16067</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16067"/>
		<updated>2020-03-31T10:12:18Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Webserver Konfiguration SSL only */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.home.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
===Virtual Host (Port 443) erstellen===&lt;br /&gt;
 sudo a2dissite default-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/sites-available/zoneminder-ssl.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
         &amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
                 ServerName zoneminder.home.lan&lt;br /&gt;
 &lt;br /&gt;
                 RewriteEngine on&lt;br /&gt;
                 RewriteRule ^/$ https://zoneminder.home.lan/zm/$1 [L,R] &lt;br /&gt;
 &lt;br /&gt;
                 ErrorLog ${APACHE_LOG_DIR}/zoneminder-error.log&lt;br /&gt;
                 CustomLog ${APACHE_LOG_DIR}/zoneminder-access.log combined &lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile      /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
                 &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet&lt;br /&gt;
&lt;br /&gt;
 sudo a2ensite zoneminder-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
==Standard Virtual Host (Port 80) deaktivieren==&lt;br /&gt;
 sudo a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/ports.conf&lt;br /&gt;
&lt;br /&gt;
 # If you just change the port or add more ports here, you will likely also&lt;br /&gt;
 # have to change the VirtualHost statement in&lt;br /&gt;
 # /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
 &lt;br /&gt;
 #Listen 80&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule ssl_module&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;IfModule mod_gnutls.c&amp;gt;&lt;br /&gt;
         Listen 443&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16066</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16066"/>
		<updated>2020-03-31T10:11:18Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Virtual Host (Port 443) erstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.home.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
===Virtual Host (Port 443) erstellen===&lt;br /&gt;
 sudo a2dissite default-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/sites-available/zoneminder-ssl.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
         &amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
                 ServerName zoneminder.home.lan&lt;br /&gt;
 &lt;br /&gt;
                 RewriteEngine on&lt;br /&gt;
                 RewriteRule ^/$ https://zoneminder.home.lan/zm/$1 [L,R] &lt;br /&gt;
 &lt;br /&gt;
                 ErrorLog ${APACHE_LOG_DIR}/zoneminder-error.log&lt;br /&gt;
                 CustomLog ${APACHE_LOG_DIR}/zoneminder-access.log combined &lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile      /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
                 &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet&lt;br /&gt;
&lt;br /&gt;
 sudo a2ensite zoneminder-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16065</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16065"/>
		<updated>2020-03-31T10:10:52Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Webserver Konfiguration SSL only */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.home.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
===Virtual Host (Port 443) erstellen===&lt;br /&gt;
 sudo a2dissite default-ssl&lt;br /&gt;
&lt;br /&gt;
 sudo mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf_orig&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/apache2/sites-available/zoneminder-ssl.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
         &amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
                 ServerName zoneminder.home.lan&lt;br /&gt;
 &lt;br /&gt;
                 RewriteEngine on&lt;br /&gt;
                 RewriteRule ^/$ https://zoneminder.home.lan/zm/$1 [L,R] &lt;br /&gt;
 &lt;br /&gt;
                 ErrorLog ${APACHE_LOG_DIR}/zoneminder-error.log&lt;br /&gt;
                 CustomLog ${APACHE_LOG_DIR}/zoneminder-access.log combined &lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile      /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
                 &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                                 SSLOptions +StdEnvVars&lt;br /&gt;
                 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16064</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16064"/>
		<updated>2020-03-31T10:09:32Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Webserver Konfiguration SSL only */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.home.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16063</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16063"/>
		<updated>2020-03-31T10:09:19Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;br /&gt;
&lt;br /&gt;
=Webserver Konfiguration SSL only=&lt;br /&gt;
==SSL Konfiguration==&lt;br /&gt;
===Benötigte Pakete installieren===&lt;br /&gt;
 sudo a2enmod ssl&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
&lt;br /&gt;
===Self-Signed Zertifikat erstellen===&lt;br /&gt;
 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/zoneminder-selfsigned.key -out /etc/ssl/certs/zoneminder-selfsigned.crt&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:DE&lt;br /&gt;
 State or Province Name (full name) [Some-State]:Hessen&lt;br /&gt;
 Locality Name (eg, city) []:Frankfurt&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;br /&gt;
 Organizational Unit Name (eg, section) []:&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:zoneminder.domain.lan&lt;br /&gt;
 Email Address []: &lt;br /&gt;
&lt;br /&gt;
 sudo chown root:ssl-cert /etc/ssl/private/zoneminder-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
 sudo chmod 640 /etc/ssl/private/zoneminder-selfsigned.key&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16062</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16062"/>
		<updated>2020-03-31T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* NFS-Shares in ZoneMinder einbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder temp storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder temp storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder temp storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/temp&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-temp.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-temp.mount&lt;br /&gt;
&lt;br /&gt;
 sudo init 6&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16061</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16061"/>
		<updated>2020-03-31T10:05:28Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* NFS-Shares in ZoneMinder einbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder images storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-images.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder images storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder images storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/images&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-images.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-images.mount&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16060</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16060"/>
		<updated>2020-03-31T10:04:44Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* NFS-Shares in ZoneMinder einbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder cache storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-cache.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder cache storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder cache storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/cache&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-cache.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-cache.mount&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16059</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16059"/>
		<updated>2020-03-31T10:03:47Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* NFS-Shares in ZoneMinder einbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;br /&gt;
&lt;br /&gt;
===ZoneMinder event storage===&lt;br /&gt;
 sudo vi /etc/systemd/system/var-cache-zoneminder-events.mount&lt;br /&gt;
&lt;br /&gt;
 # systemd NFS mount for ZoneMinder event storage&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=NFS mount for ZoneMinder event storage&lt;br /&gt;
 After=network.target&lt;br /&gt;
 Before=zoneminder&lt;br /&gt;
 &lt;br /&gt;
 [Mount]&lt;br /&gt;
 What=192.168.1.5:/volume1/ZoneMinder&lt;br /&gt;
 Where=/var/cache/zoneminder/events&lt;br /&gt;
 Type=nfs&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl start var-cache-zoneminder-events.mount&lt;br /&gt;
 sudo systemctl status var-cache-zoneminder-events.mount&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16058</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16058"/>
		<updated>2020-03-31T10:02:40Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* NFS-Shares in ZoneMinder einbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16057</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16057"/>
		<updated>2020-03-31T10:01:54Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* NFS-Shares in ZoneMinder einbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;br /&gt;
 sudo service zoneminder stop&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install nfs-client nfs-common&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe nfs&lt;br /&gt;
&lt;br /&gt;
 sudo su -&lt;br /&gt;
 echo NFS | tee -a /etc/modules&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/modules&lt;br /&gt;
&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 NFS&lt;br /&gt;
&lt;br /&gt;
 sudo cp /etc/idmapd.conf /etc/idmapd.conf_orig&lt;br /&gt;
 sudo vi /etc/idmapd.conf&lt;br /&gt;
&lt;br /&gt;
 [General]&lt;br /&gt;
 &lt;br /&gt;
 Verbosity = 0&lt;br /&gt;
 Pipefs-Directory = /run/rpc_pipefs&lt;br /&gt;
 # set your own domain here, if it differs from FQDN minus hostname&lt;br /&gt;
 Domain = localdomain&lt;br /&gt;
 &lt;br /&gt;
 [Mapping]&lt;br /&gt;
 &lt;br /&gt;
 Nobody-User = nobody&lt;br /&gt;
 Nobody-Group = nogroup&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16056</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16056"/>
		<updated>2020-03-31T10:00:29Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* ZoneMinder NFS Storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS-Shares in ZoneMinder einbinden==&lt;br /&gt;
===NFS Client installieren und konfigurieren===&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Synology_NFS_Share06.png&amp;diff=16055</id>
		<title>File:ZoneMinder Synology NFS Share06.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Synology_NFS_Share06.png&amp;diff=16055"/>
		<updated>2020-03-31T09:58:59Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16054</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16054"/>
		<updated>2020-03-31T09:58:50Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* ZoneMinder NFS Storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Berechtigung setzen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsame Ordner &amp;gt; ZoneMinder &amp;gt; Bearbeiten &amp;gt; NFS-Berechtigungen &amp;gt; Erstellen &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share05.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share06.png|900px]]&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Synology_NFS_Share05.png&amp;diff=16053</id>
		<title>File:ZoneMinder Synology NFS Share05.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Synology_NFS_Share05.png&amp;diff=16053"/>
		<updated>2020-03-31T09:58:34Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Synology_NFS_Share04.png&amp;diff=16052</id>
		<title>File:ZoneMinder Synology NFS Share04.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Synology_NFS_Share04.png&amp;diff=16052"/>
		<updated>2020-03-31T09:57:14Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Synology_NFS_Share03.png&amp;diff=16051</id>
		<title>File:ZoneMinder Synology NFS Share03.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Synology_NFS_Share03.png&amp;diff=16051"/>
		<updated>2020-03-31T09:57:04Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16050</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16050"/>
		<updated>2020-03-31T09:56:33Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* ZoneMinder NFS Storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe Verzeichnis erstellen==&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Gemeinsamer Ordner &amp;gt; Erstellen &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share03.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share04.png|900px]]&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Synology_NFS_Share02.png&amp;diff=16049</id>
		<title>File:ZoneMinder Synology NFS Share02.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Synology_NFS_Share02.png&amp;diff=16049"/>
		<updated>2020-03-31T09:56:02Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16048</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16048"/>
		<updated>2020-03-31T09:53:49Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;br /&gt;
&lt;br /&gt;
=ZoneMinder NFS Storage=&lt;br /&gt;
Damit ZoneMinder alle Daten auf einem NFS Share ablegen kann muss dies konfiguriert werden. In meinem Beispiel verwende ich eine Synology als NFS-Server sowie Datenspeicher.&lt;br /&gt;
&lt;br /&gt;
==NFS Freigabe erstellen==&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;hostname&amp;gt;:5001/&lt;br /&gt;
&lt;br /&gt;
* Systemsteuerung &amp;gt; Dateidienste &amp;gt; NFS &amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Synology_NFS_Share01.png|900px]]&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Synology_NFS_Share01.png&amp;diff=16047</id>
		<title>File:ZoneMinder Synology NFS Share01.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Synology_NFS_Share01.png&amp;diff=16047"/>
		<updated>2020-03-31T09:53:37Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16046</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16046"/>
		<updated>2020-03-31T09:47:56Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Benutzername und Kennwort ändern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16045</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16045"/>
		<updated>2020-03-31T09:47:47Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Authentifizierung aktivieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Default Username: admin&lt;br /&gt;
* Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16044</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16044"/>
		<updated>2020-03-31T09:47:37Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Zeitzone ändern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
Default Username: admin&lt;br /&gt;
Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16043</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16043"/>
		<updated>2020-03-31T09:47:19Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Benutzername und Kennwort ändern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
Default Username: admin&lt;br /&gt;
Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
* Username: zmadmin&lt;br /&gt;
* Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16042</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16042"/>
		<updated>2020-03-31T09:47:06Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Datenbank Benutzer und Kennwort ändern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
Default Username: admin&lt;br /&gt;
Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
Username: zmadmin&lt;br /&gt;
Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* ZoneMinder Datenbank Benutzername: zmdbuser&lt;br /&gt;
* ZoneMinder Datenbank Kennwort: zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16041</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16041"/>
		<updated>2020-03-31T09:46:38Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Konfiguration ZoneMinder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
Default Username: admin&lt;br /&gt;
Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
Username: zmadmin&lt;br /&gt;
Password: zmadmin&lt;br /&gt;
&lt;br /&gt;
==Datenbank Benutzer und Kennwort ändern==&lt;br /&gt;
 mysql -umysqladmin -p -e &amp;quot;grant lock tables,alter,drop,select,insert,update,delete,create,index,alter routine,create routine, trigger,execute on zm.* to &amp;#039;zmdbuser&amp;#039;@localhost identified by &amp;#039;zmdbuser&amp;#039;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ZoneMinder Datenbank Benutzername:	zmdbuser&lt;br /&gt;
ZoneMinder Datenbank Kennwort:		zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/zm/zm.conf&lt;br /&gt;
&lt;br /&gt;
 # ZoneMinder database user&lt;br /&gt;
 ZM_DB_USER=zmdbuser&lt;br /&gt;
 &lt;br /&gt;
 # ZoneMinder database password&lt;br /&gt;
 ZM_DB_PASS=zmdbuser&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart zoneminder&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16040</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16040"/>
		<updated>2020-03-31T09:45:35Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Konfiguration ZoneMinder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
Default Username: admin&lt;br /&gt;
Default Password: admin&lt;br /&gt;
&lt;br /&gt;
==Benutzername und Kennwort ändern==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; Users&amp;gt; admin &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_Users_admin.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
Username: zmadmin&lt;br /&gt;
Password: zmadmin&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Options_Users_admin.png&amp;diff=16039</id>
		<title>File:ZoneMinder Options Users admin.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Options_Users_admin.png&amp;diff=16039"/>
		<updated>2020-03-31T09:45:12Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16038</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16038"/>
		<updated>2020-03-31T09:44:15Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Authentifizierung aktivieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
Default Username: admin&lt;br /&gt;
Default Password: admin&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16037</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16037"/>
		<updated>2020-03-31T09:42:55Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Authentifizierung aktivieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16036</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16036"/>
		<updated>2020-03-31T09:42:39Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Konfiguration ZoneMinder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung aktivieren==&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Authentification.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Options_System_Authentification.png&amp;diff=16035</id>
		<title>File:ZoneMinder Options System Authentification.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Options_System_Authentification.png&amp;diff=16035"/>
		<updated>2020-03-31T09:42:30Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16034</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16034"/>
		<updated>2020-03-31T09:41:02Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Konfiguration ZoneMinder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Options_System_Timezone.png]]&lt;br /&gt;
&lt;br /&gt;
* Save&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Options_System_Timezone.png&amp;diff=16033</id>
		<title>File:ZoneMinder Options System Timezone.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=File:ZoneMinder_Options_System_Timezone.png&amp;diff=16033"/>
		<updated>2020-03-31T09:40:45Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16032</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16032"/>
		<updated>2020-03-31T09:40:30Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Konfiguration ZoneMinder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
==Zeitzone ändern==&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16031</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16031"/>
		<updated>2020-03-31T09:39:21Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Konfiguration ZoneMinder=&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
* Options &amp;gt; System &amp;gt; TIMEZONE &amp;gt;&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16030</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16030"/>
		<updated>2020-03-31T09:38:07Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* LAMP (Linux, Apache, MySQL, PHP) vorbereiten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16029</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16029"/>
		<updated>2020-03-31T09:37:53Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Testen ob ZoneMinder funktioniert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16028</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16028"/>
		<updated>2020-03-31T09:37:37Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* PHP testen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png|900px]]&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16027</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16027"/>
		<updated>2020-03-31T09:37:21Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Testen ob ZoneMinder funktioniert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png|900px]]&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
	<entry>
		<id>http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16026</id>
		<title>Ubuntu Install ZoneMinder on Ubuntu Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.staging.zoneminder.com/index.php?title=Ubuntu_Install_ZoneMinder_on_Ubuntu_Server&amp;diff=16026"/>
		<updated>2020-03-31T09:37:06Z</updated>

		<summary type="html">&lt;p&gt;Johnydo: /* Testen ob ZoneMinder funktioniert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LAMP (Linux, Apache, MySQL, PHP) vorbereiten=&lt;br /&gt;
==Installation Apache==&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Apache_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
==Firewall einrichten==&lt;br /&gt;
 sudo ufw allow ssh&lt;br /&gt;
 sudo ufw allow http&lt;br /&gt;
 sudo ufw allow https&lt;br /&gt;
 sudo ufw enable&lt;br /&gt;
&lt;br /&gt;
 sudo ufw status&lt;br /&gt;
&lt;br /&gt;
 Status: active&lt;br /&gt;
 &lt;br /&gt;
 To                         Action      From&lt;br /&gt;
 --                         ------      ----&lt;br /&gt;
 22/tcp                     ALLOW       Anywhere&lt;br /&gt;
 80/tcp                     ALLOW       Anywhere&lt;br /&gt;
 443/tcp                    ALLOW       Anywhere&lt;br /&gt;
 22/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 80/tcp (v6)                ALLOW       Anywhere (v6)&lt;br /&gt;
 443/tcp (v6)               ALLOW       Anywhere (v6)&lt;br /&gt;
&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
&lt;br /&gt;
==MySQL installieren==&lt;br /&gt;
 sudo apt-get install mysql-server&lt;br /&gt;
 sudo mysql&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; SHOW databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | Database           |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 | information_schema |&lt;br /&gt;
 | mysql              |&lt;br /&gt;
 | performance_schema |&lt;br /&gt;
 | sys                |&lt;br /&gt;
 +--------------------+&lt;br /&gt;
 4 rows in set (0.00 sec)&lt;br /&gt;
 mysql&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Standardmäßig hat MySQL nur den Benutzer root. Mit diesem Benutzer kann man sich an der Datenbank anmelden, wenn man als root auf dem Linux Betriebssystem den Befehl mysql ausführt. Eine Passworteingabe ist nicht nötig.&lt;br /&gt;
&lt;br /&gt;
Es ist empfehlenswert einen weiteren Benutzer anzulegen, der sich per Passwort verbinden kann. So kann beispielsweise über ein PHP Skript etc. auf die Datenbank zugegriffen werden. Der Benutzer kann folgendermaßen angelegt werden:&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -e &amp;quot;CREATE USER &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED BY &amp;#039;mysqlpassword&amp;#039;;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;GRANT ALL PRIVILEGES ON * . * TO &amp;#039;mysqluser&amp;#039;@&amp;#039;localhost&amp;#039; WITH GRANT OPTION;&amp;quot;&lt;br /&gt;
 sudo mysql -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&lt;br /&gt;
 mysql -u mysqluser -p&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
 Datenbank Adminbenutzer: mysqluser&lt;br /&gt;
 Kennwort: mysqlpassword&lt;br /&gt;
&lt;br /&gt;
==PHP-FPM installieren==&lt;br /&gt;
 sudo apt-get install php-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo a2enmod proxy_fcgi&lt;br /&gt;
 sudo a2enconf php7.2-fpm&lt;br /&gt;
 &lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
==Webserver Rechte anpassen==&lt;br /&gt;
Die Webserver Dateien befinden sich Standardmäßig im Verzeichnis /var/www. Damit die PHP Erweiterung funktioniert, muss die Berechtigung angepasst werden. Der Benutzer sowie Gruppe des Verzeichnisses wird auf www-data geändert.&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R www-data:www-data /var/www/&lt;br /&gt;
&lt;br /&gt;
Danach setzen wir für das Verzeichnis das setgit Bit. Dadurch werden neu angelegte Dateien und Verzeichnisse automatisch der Gruppe www-data zugewiesen.&lt;br /&gt;
&lt;br /&gt;
 sudo find /var/www -type d -exec chmod g+s {} +&lt;br /&gt;
&lt;br /&gt;
==Benutzerzugriffe auf Webseiten-Dateien gewähren==&lt;br /&gt;
Da wir auf das Verzeichnis /var/www ein setgit Bit gesetzt haben werden alle erstellten Dateien oder Verzeichnisse mit der Berechtigung www-data erstellt. Um nun auch mit einem normalen Benutzer Dateien und Verzeichnisse bearbeiten zu können, ohne die Berechtigung zu verändern wird bindfs benötigt.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install bindfs&lt;br /&gt;
&lt;br /&gt;
Wir erstellen uns im Homeverzeichnis einen Ordner über diesen wir auf das /var/www Verzeichnis zugreifen können.&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/websites&lt;br /&gt;
&lt;br /&gt;
Anschließend erstellen wir uns den passenden fstab Eintrag damit der Zugriff mit den passenden Berechtigungen durchgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Passt euch den folgenden Befehl an euren Benutzer an. In meinem Falls verwende ich den Benutzer  myroot.&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\n\nbindfs#/var/www/ /home/$USER/websites/ fuse force-user=$USER,force-group=$USER,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&amp;quot; | sudo tee -a /etc/fstab&lt;br /&gt;
&lt;br /&gt;
Überprüfen ob der Befehl richtig ausgeführt wurde:&lt;br /&gt;
&lt;br /&gt;
 sudo cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
 # /etc/fstab: static file system information.&lt;br /&gt;
 #&lt;br /&gt;
 # Use &amp;#039;blkid&amp;#039; to print the universally unique identifier for a&lt;br /&gt;
 # device; this may be used with UUID= as a more robust way to name devices&lt;br /&gt;
 # that works even if disks are added and removed. See fstab(5).&lt;br /&gt;
 #&lt;br /&gt;
 # &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
 # / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation&lt;br /&gt;
 /dev/disk/by-id/dm-uuid-LVM-biSTbFwePFxtmgpVX68Rwa01ddBXHcAixzw1EBpYcV8kumDeCPxLkQnyNX2hkJ8M / ext4 defaults 0 0&lt;br /&gt;
 # /boot was on /dev/sda2 during curtin installation&lt;br /&gt;
 /dev/disk/by-uuid/c4c0f1b3-7284-4880-a2bc-11ab15c0a5f3 /boot ext4 defaults 0 0&lt;br /&gt;
 /swap.img       none    swap    sw      0       0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 bindfs#/var/www/ /home/myroot/websites/ fuse force-user=myroot,force-group=myroot,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0&lt;br /&gt;
&lt;br /&gt;
Anschließend das erstellte Verzeichnis aus dem Home-Folder mounten:&lt;br /&gt;
&lt;br /&gt;
 sudo mount /home/$USER/websites&lt;br /&gt;
&lt;br /&gt;
==PHP testen==&lt;br /&gt;
PHP Testseite erstellen:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo();&amp;quot; &amp;gt; ~/websites/html/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_PHP_Testpage.png]]&lt;br /&gt;
&lt;br /&gt;
=Installation ZoneMinder=&lt;br /&gt;
==ZoneMinder Repository hinzufügen==&lt;br /&gt;
 sudo add-apt-repository ppa:iconnor/zoneminder-1.34&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
==Konfiguration MySQL==&lt;br /&gt;
 sudo rm /etc/mysql/my.cnf&lt;br /&gt;
 sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 #&lt;br /&gt;
 # * Basic Settings&lt;br /&gt;
 #&lt;br /&gt;
 user            = mysql&lt;br /&gt;
 pid-file        = /var/run/mysqld/mysqld.pid&lt;br /&gt;
 socket          = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 port            = 3306&lt;br /&gt;
 basedir         = /usr&lt;br /&gt;
 datadir         = /var/lib/mysql&lt;br /&gt;
 tmpdir          = /tmp&lt;br /&gt;
 lc-messages-dir = /usr/share/mysql&lt;br /&gt;
 skip-external-locking&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sql_mode = NO_ENGINE_SUBSTITUTION&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==ZoneMinder Installation==&lt;br /&gt;
 sudo apt-get install zoneminder&lt;br /&gt;
&lt;br /&gt;
==Webserver Konfiguration==&lt;br /&gt;
 sudo chmod 740 /etc/zm/zm.conf&lt;br /&gt;
 sudo chown root:www-data /etc/zm/zm.conf&lt;br /&gt;
 sudo chown -R www-data:www-data /usr/share/zoneminder/&lt;br /&gt;
&lt;br /&gt;
 sudo a2enmod cgi&lt;br /&gt;
 sudo a2enmod rewrite&lt;br /&gt;
 sudo a2enconf zoneminder&lt;br /&gt;
 sudo a2enmod expires&lt;br /&gt;
 sudo a2enmod headers&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/php/7.2/fpm/php.ini&lt;br /&gt;
&lt;br /&gt;
 [Date]&lt;br /&gt;
 ; Defines the default timezone used by the date functions&lt;br /&gt;
 ; http://php.net/date.timezone&lt;br /&gt;
 date.timezone = &amp;quot;Europe/Berlin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart apache2&lt;br /&gt;
 sudo systemctl restart php7.2-fpm.service&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable zoneminder&lt;br /&gt;
 sudo systemctl start zoneminder&lt;br /&gt;
&lt;br /&gt;
==Testen ob ZoneMinder funktioniert==&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_Testpage.png|900px]]&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;hostname&amp;gt;/zm/api/host/getVersion.json&lt;br /&gt;
&lt;br /&gt;
[[File:ZoneMinder_API_Testpage.png]]&lt;/div&gt;</summary>
		<author><name>Johnydo</name></author>
	</entry>
</feed>