Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Installation
- Der Cortexserver benötigt keinerlei Registry-Einträge und wird durch Kopieren der Programmdateien installiert
- Unter Linux läuft der Cortexserver ausschließlich als Dienst, der automatisch beim Systemstart gestartet
und vor dem Herunterfahren beendet wird und immer im Kontext des Users 'ctxserver' läuft
- Unter Windows kann der Server in der Taskbar entweder im Userkontext des angemeldeten Users oder durch ein Dienststartprogramm im Systemkontext laufen.
Dabei wird der Server ebenfalls als Dienst automatisch beim Systemstart gestartet und bei dessen Beendigung beendet.
Wird das System in den Standby- oder Suspend-Modus geschaltet, beendet sich der Server vorher selbstständig.
Der automatische Dienststart kann aber nur beim Systemstart gewährleistet werden.
- Nach Aufruf des selbstextrahierenden ZIPs wird das gewünschte Datenbankverzeichnis als Zielpfad ausgewählt und anschließend die Datei ctxserver.par im Installationspfad hinzugefügt.
In dieser Datei befindet sich auch das Administrator-Passwort. Sie sollten die Original-Datei ctxserver.par separat verwalten und nicht für andere zugänglich machen, ohne zuvor eines nur Ihnen bekanntes root-Passwort zu vergeben.
Sollte das Passwort aus irgendwelchen Gründen nicht mehr bekannt sein, kann die Original-Datei wieder eingespielt werden - Neustart des Servers ist dann erforderlich.
Die Passwortänderung erfolgt mit dem Remote-Admin-Programm.
Datei [ctxserver.ini] unter Windows
Alle Serverparameter (Port, Datensicherungspfad, Sicherungszeitplan etc.) werden in der Datei [ctxserver.ini] im Progammverzeichnis festgelegt.
Die Datendateien vom Server werden exclusiv geöffnet und können von anderen Programmen nicht gelesen werden.
Folgende Einstellungen können in der Datei [ctxserver.ini] vorgenommen werden:
[EINSTELLUNG]
basepath=.\daten | Pfad, in dem die Daten des Servers liegen | ||
port=29000 | tcp-ip-Port, der für den Serverzugriff verwendet wird | ||
bindonlylocalhost=0 | 0=nein, 1=nur Zugriffe vom lokalen Rechner erlaubt | ||
AgentManagerAutoStart=0 | 1=Agentmanager wird beim Serverstart automatisch gestartet | ||
SocketTimeout=500 | =<sec> Nach Ablauf dieser Zeit in Sekunden wird eine Socket-Connection automatisch geschlossen |
[BACKUP]
backuppath=.\backup | Pfad, in dem die Backups geschrieben oder gelesen werden | ||
MaxBackupCount=1 | Anzahl von Backups bevor der jeweils älteste gelöscht wird | ||
0=01:00 | Sonntag um 01:00 wird ein Backup erstellt | ||
1= | Uhrzeit Montag | ||
2= | Uhrzeit Dienstag | ||
3= | Uhrzeit Mittwoch | ||
4= | Uhrzeit Donnerstag | ||
5= | Uhrzeit Freitag | ||
6=02:00 | Samstag um 02:00 wird ein Backup erstellt |
[SUGGESTIONS]
Für die jeweilige Datenbank können Daten mit kombinatorischen Vorschlagsdaten mitgeliefert werden, bzw. selbstständig eingebunden werden. Solche Daten müssen dem Datenbankserver bekannt gemacht werden.
Sollten nach Einrichtung einer Datenbank neue Suggests eingerichtet werden, so ist der Datenbankserver zu stoppen und ein Eintrag unter dieser Sektion vorzunehmen. Es muss sichergestellt sein, das diese Dateien vom Server gelesen werden können. Anschließend starten Sie den Server neu.
adrde=.\suggest\adrde.dat,1 | Pfad und Dateiname, die auf die Suggestdatei verweist |
[HTTPSRV]
Wird auf einem Computer nur ein Cortex-Datenbankserver betrieben, so kann der integrierte WebServer verwendet werden.
Sollen mehrere Cortex-Datenbanken auf einem Computer gehosted werden, wird der interne WebServer mit dem Eintrag Enable=0 deaktiviert. In dem Fall ist die Installation des HTTP-Servers erforderlich, siehe nächster Abschnitt.
Enable=1 | 1: enable, 0: disable | ||
Port=80 | HTTP-Port für den Browserzugriff | ||
SslPort=443 | HTTPS-Port für den Browserzugriff | ||
BindOnlyLocalHost=0 | 1=nur vom lokalen Rechner erreichbar, 0 für alle | ||
SslCertPem=127.0.0.1.pem | Zertifikat für den HTTPS-Zugriff | ||
LogHttpSrv=1 | Log Datei für den HTTP(S) Zuriff erstellen | ||
HttpServerThreads=22 | Max. Anzahl von HTTP-Server-LoginThreads zur Performanceoptimierung | ||
HttpRoot=www | Root-Dir für statische HTML-Daten | ||
HttpAuth=0 | Standard-Authentifizierung(=1) oder Datenbankauthentifizierung ohne Browser-Support (=0) | ||
WebClientName=Cortex-WebClient | Name der Datenbank in Caption-Bar des Browsers, wird auch bei Enable=0 vom HTTP-Server benutzt | ||
DefaultUrl=%V/i/CtxWebClient/index.php | %V=HTTPS, %v=HTTP | ||
PhpSessDir=ab | Verzeichnis, in dem die PHP-Sessions der eingeloggten User gespeichert werden (muß für jede DB einmalig sein) | ||
HttpDefaultUrlOnly=0 | Login nur mit der Default-URL |
HTTP-Server
Die HTTP-Server-Konfiguration bezieht sich auf die Hauptsektion und den daraus aufgerufenen Untersektionen.
In der Hauptsektion [HTTPSRV] wird der Standardserver konfiguriert, der über die Haupt-URL aufgerufen werden kann.
Angenommen der Server wird über http://www.meinserver.de aufgerufen, so wird diese Default-Sektion verwendet, um den Cortex-Webclient zu starten.
In allen anderen Fällen erfolgt der Aufruf durch Eingabe des Datenbanknamens (Name der Sektion), z.B. http://www.meinserver.de/Flugzeuge.
||Port=80||HTTP-Port für den Browserzugriff||
SslPort=443 | HTTPS-Port für den Browserzugriff | ||
BindOnlyLocalHost=0 | 1=nur vom lokalen Rechner zugreifbar, 0 für alle | ||
SslCertPem=127.0.0.1.pem | Zertifikat für den HTTPS-Zugriff | ||
LogHttpSrv=1 | Log Datei für den HTTP(S) Zuriff erstellen | ||
HttpRoot=www | Root-Dir für statische HTML-DAten | ||
CtxSrv=127.0.0.1:29000 | Server und Port des Cortex Servers | ||
HttpAuth=0 | 0=Datenbankauthentifizierung, 1=mer http-Authorisierung | ||
WebClientName=Datenbankname | wird als _SERVER - Variable an php übergeben | ||
DefaultUrl=%V/i/CtxWebClient/index.php | %V steht für https:%v fuer http: | ||
HttpDefaultUrlOnly=0 | am http Port nur auf die / antworten | ||
PhpSessDir=tmpdev | wird als Session-Verzeichnis für die Default-URL verwendet | ||
HttpServerThreads=22 | Max. Anzahl von HTTP-Server-LoginThreads zur Performanceoptimierung | ||
vhosts=Flugzeuge,Bauelemente,Teile | Alle unter vhosts angegebenen Namen müssen als Sektionen folgen, in denen die Parameter der jeweiligen Ctx-DB festgelegt sind, siehe folgendes Beispiel. |
Beispiel
[vhost]-Sektionen
Es müssen alle Parameter der betreffenden Datenbank festgelegt werden.
Entsprechend den obigen Einträgen müssen drei Sektionen folgen.
Die Datenbanken [Teile] und [Bauelemente] würden über https: und die DB [Flugzeuge] über http: aufzurufen sein.
[Flugzeuge] ctxsrv=127.0.0.1:29001 HttpRoot=flzg HttpAuth=0 WebClientName=Flugzeuge PhpSessDir=fzg DefaultUrl=%v/i/CtxWebClient/index.php HttpDefaultUrlOnly=0 |
[Bauelemente] ctxsrv=127.0.0.1:29002 HttpRoot=baukast HttpAuth=0 WebClientName=Bauelemente PhpSessDir=bauele DefaultUrl=%V/i/CtxWebClient/index.php HttpDefaultUrlOnly=0 |
[Teile] ctxsrv=127.0.0.1:29003 HttpRoot=teile HttpAuth=0 WebClientName=Teile PhpSessDir=teile DefaultUrl=%V/i/CtxWebClient/index.php HttpDefaultUrlOnly=0 |
Automatischer Backup
Über den [Remote Admin] können Serverfunktionen wie Backup, Restore, Reorganisation, etc. manuell aufgerufen werden.
Während eines Backup's läuft der Server normal weiter und kann alle Zugriffe bedienen. Über einen speziell implementierten Mechanismus wird sichergestellt, dass immer ein konsistenter Backup geschrieben wird. Für jeden Wochentag kann eine Uhrzeit vorgegeben werden, zu der automatisch ein Backup gestartet wird.
Der Server schreibt bei jeder Änderung eines Datensatzes einen Eintrag in der Change-History, der zu jedem Datenfeld den vorherigen und den neuen Inhalt enthält. Alle Änderungen eines Tages werden in einer Tages-Änderungsdatei gespeichert. Ein Änderungsindex erlaubt es dem Server, sofort auf alle Änderungen eines Datensatzes in zeitlicher Abfolge zuzugreifen. Diese Änderungsdateien werden niemals verändert, sondern nur fortgeschrieben. Eine Checksumme zu jedem Änderungseintrag dient zur Überprüfung, ob diese korrekt und konsistent ist und um zu entscheiden, ob bei einer Wiederherstellung eines Änderungszeitpunktes diese Daten korrekt sind.
Die eigentliche Datenbank steht in der Datei ctxtli.tli, alle anderen Dateien dienen der Verwaltung und dem Zugriff.
Im Fall einer Reorganisation werden aus der Datei ctxtli.tli alle Verwaltungsinformationen neu generiert. Außerdem wird der Zugriffsindex der Change-History aus den Änderungsdateien neu generiert.
User anlegen
- Sie befinden sich im Remote-Admin
- Legen Sie den User 'PHP' mit der Option 'ctxphp' an (nur 1/1 verfügbar für PHP-User)
Der PHP-User steuert die Kommunikation zwischen den realen Usern und dem Cortex Browser
- Bedeutung der Passwörter:
Passwort: Login für den Cortex Browser (enthält die Rohdataen, Debug-Tool für Entwickler)
Web-Passwort: gültig für die im Browser gestarteten Anwendungen
- Legen Sie weitere User an und erteilen entsprechende Rechte, wobei die Anzahl der Zugriffsberechtigungen von der Lizenzdatei abhängt.
Lizenzverwendungen:
Hier wird zugewiesen, mit welchen Programmen sich Benutzer anmelden dürfen.
Abhängig von der Lizenzierung können hier weitere Programme erscheinen.
hxagm | Agentmanager | |
hxhttpsrv | integrierter WebServer | |
BrowserApp | Cortexbrowser (Debugtool für Entwickler) | |
PhpWebClient | auf den WebClient erteilen | |
Import | Datenimport-Programm |
Konfiguration exportieren / importieren
Benutzen Sie die Import-Funktion, wenn es sich um eine ähnliche DB-Struktur handelt, wie die, die Sie erstellen möchten.
Sie nehmen nur noch die Anpassung vor!
- Öffnen Sie mit dem WebClient die Datenbank, aus der Sie Konfigurationen übernehmen möchten.
Wechseln Sie in den [Admin] und wählen [Export]/[Import Konfig]
Es gibt die Möglichkeit der 1:1 Übernahme oder Sie exportieren über eine Auswahl nur die benötigten Elemente
Eine Export-Datei hat die Endung *.tar.gz (gepackt)
- Die Datenfelder befinden sich in der Datei fldxml.xml (entpacken Sie vorher die *.tar.gz Datei)
- Die Datei 'fldxml.xml' (Datenfelder) importieren Sie über den [Remote Admin]
- Importieren Sie anschließend die gepackte Original-Export-Datei *.tar.gz über den [Admin] im WebClient. Treffen Sie Ihre Auswahl, welche Konfigurationen importiert werden sollen.
- Die Anpassung der Datenfelder nehmen Sie im [RemoteAdmin] vor. Nicht verwendete
Datenfelder können gelöscht werden, ein entsprechender Hinweis wird ausgegeben und neue hinzugefügt werden.