Zoneminder ist in der Branche weit bekannt als eine robuste und vielseitige Open-Source-Software für Überwachungskameras (CCTV). Trotz seiner zahlreichen Funktionen und Konfigurationsmöglichkeiten gibt es immer wieder Lücken in den offiziellen Anleitungen: Die Standard-Installation konzentriert sich beispielsweise auf Sub-Verzeichnisse und bietet keine vollständigen Informationen zur Einrichtung unter einer eigenen Domain. Gerade in einer so wichtigen Anwendung wie der Überwachungstechnik oder zum besseren Trennen von Services macht es Sinn, Zoneminder unter einer eigenen Domain oder Subdomain verfügbar zu machen.
Deshalb bieten wir Ihnen einen Leitfaden, der sich speziell hierauf fokussiert. Getestet und genutzt wird dies unter Debian. Auf anderen Systemen muss die Konfiguration ggf. angepasst werden, bzw. einzelne Pfade. Mit diesem Beitrag erhalten Sie eine ausführliche Schritt-für-Schritt-Anleitung zur Einrichtung von Zoneminder unter einer eigenen Domain mithilfe von nginx.
Erstellt wurde diese Anleitung für Debian 11 und Zoneminder 1.36.33.
Die nginx-Konfiguration
Um Zoneminder unter einer eigenen Domain verfügbar zu machen, bedarf es einer eigenen Server-Konfiguration. Alternativ kann auch eine bestehende Konfiguration angepasst werden, wenn die Domain nicht anderweitig verwendet wird.
Wir nutzen eine eigene Subdomain inklusive SSL-Verschlüsselung, wodurch unsere Basis-Konfiguration
unter /etc/nginx/sites-enabled/zoneminder.example.com
so aussieht:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name zoneminder.example.com;
ssl_certificate /etc/ssl/fullchain.pem;
ssl_certificate_key /etc/ssl/privkey.pem;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/dhparam.pem;
}
Diese kann gerne als Vorlage genommen werden. Im Server-Block muss für Zoneminder folgendes ergänzt werden. Dies gibt einerseits an, unter welchem Pfad sich die Zoneminder Ordner befinden und macht diese verfügbar.
Wir nutzen eine Standardinstallation von Zoneminder unter Debian, die Pfade sollten auf den meisten Installationen identisch sein.
Unter dem Stamm-Ordner (/
) ist Zoneminder dann zukünftig erreichbar.
root /usr/share/zoneminder/www;
index index.php;
location /cgi-bin {
gzip off;
if_modified_since off;
expires off;
etag off;
alias /usr/lib/zoneminder/cgi-bin;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
location /zm/cgi-bin {
gzip off;
if_modified_since off;
expires off;
etag off;
alias /usr/lib/zoneminder/cgi-bin;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
location /cache {
alias /var/cache/zoneminder/cache;
}
location / {
gzip off;
if_modified_since off;
expires off;
etag off;
try_files $uri $uri/ /index.php?$args =404;
location ~ /api/(css|img|ico) {
rewrite ^/api(.+)$ /api/app/webroot/$1 break;
try_files $uri $uri/ =404;
}
location /api {
alias /usr/share/zoneminder/www/api;
rewrite ^/api(.+)$ /api/app/webroot/index.php?p=$1 last;
}
}
PHP-FPM Unterstützung
Falls kein allgemeines Handling von php-Dateien in nginx verfügbar ist oder PHP generell noch nicht installiert ist, muss anschließend noch folgende Location zum Server-Block hinzugefügt werden:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Der Pfad zum php-fpm Socket muss ggf. angepasst werden. Jedoch sollte das standardmäßig passen, wenn die Pakete
php
und php-fpm
installiert sind. Dabei darauf achten, dass es sich mindestens um PHP8.0 handelt.
Fcgiwrap
Zoneminder nutzt für die CGI-Skripte fcgiwrap. Dazu wird das gleichnamige Paket benötigt. Dies sollte
nach der Installation einen Socket unter /var/run/fcgiwrap.socket
bereitstellen.
Anpassungen sind standardmäßig keine nötig. Sollte es jedoch zu CGI-Problemen kommen, kann es helfen in der
Datei /etc/default/fcgiwrap
am Ende DAEMON_OPTS=-c 10
zu ergänzen.
Zoneminder Konfiguration
Bevor nun die neue Konfiguration geladen wird, sollten in der bestehenden Zoneminder-Installation noch die URLs angepasst werden.
Dazu in Zoneminder gehen.
Unter Optionen -> Servers
sollten Sie die folgenden Parameter aktualisieren, um
den reibungslosen Betrieb sicherzustellen:
- Url: Die neue URL, in unserem Beispiel
https://zoneminder.example.com
- PathToIndex:
/index.php
- PathToZMS:
/cgi-bin/nph-zms
- PathToApi:
/api
Relaunch: nginx und Zoneminder neustarten
Nachdem die Konfigurationen sowohl für nginx als auch für Zoneminder angepasst wurden, ist der finale Schritt das Neuladen bzw. Neustarten der Dienste.
Dazu einfach systemctl reload nginx
und systemctl restart zoneminder
ausführen. Dabei auf Fehler
achten, welche meist durch eine falsche Konfiguration zustande kommen.
Falls php-fpm
oder fcgiwrap
installiert wurden, am Besten noch einmal kontrollieren, dass die Sockets
verfügbar sind.
Jetzt sollte Zoneminder unter der neuen Domain erreichbar sein, ebenso dessen API.
Zoneminder Mobil
Die Nutzung von Zoneminder ist primär für den PC gedacht. Wir dürfen aber nicht vergessen, dass eine Nutzung auf Mobilgeräten sehr praktisch ist, da man diese fast immer bei sich hat.
Hierbei nutzen wir seit langer Zeit die App "zmNinja". Diese wird leider nicht mehr weiterentwickelt, funktioniert jedoch nach wie vor bei uns einwandfrei. Die App integriert nahtlos Ihre Zoneminder-Installation und bietet einen bequemen Zugang zu Ihren Überwachungskameras und Aufzeichnungen.
Fazit
Die Implementierung von Zoneminder unter einer eigenen Domain ist zwar ein technisch anspruchsvolleres Unterfangen, jedoch dank unserer ausführlichen Anleitung jetzt gut machbar. Wir haben viele Stunden damit verbracht, dies zum Laufen zu bringen und Feinabstimmung zu betreiben, damit auch beispielsweise die App nahtlos funktioniert.
Mit dieser Konfiguration nutzen wir seit vielen Monaten Zoneminder vollkommen reibungslos, und Sie hoffentlich auch.
Haben Sie Fragen zu diesem Thema oder benötigen Sie weitere Unterstützung? Wir laden Sie herzlich ein, Ihre Gedanken und Fragen in den Kommentaren zu teilen. Wenn Sie professionelle Unterstützung im Bereich der CCTV-Technologie oder bei anderen IT-Herausforderungen suchen, steht Neoground GmbH als Ihr Partner für digitale Lösungen bereit. Kontaktieren Sie uns, und lassen Sie uns Ihre digitale Transformation gemeinsam vorantreiben!
Dieser Beitrag wurde mit Unterstützung von künstlicher Intelligenz (GPT-4) erstellt. Titelfoto von Lianhao Qu auf Unsplash
->> No comments yet
Add a comment