Bitte beachten Sie die Systemvoraussetzungen, bevor Sie mit der Installation beginnen!
Die Linux installation kann klassisch durchgeführt werden oder über ein Docker Image. Das Docker Image kann bei uns auf Anfrage bezogen werden.
(Anpassen wie benötigt)
docker run -d --name biso-prod \
-v /PATH_TO_BISO_DATA/data:/var/www/html/data \
-e GAIA_CONFIG=/PATH_TO_BISO_CONFIGURATION/config.php \
-p 80:80 \
biso:3.0.0
Den PostgreSQL Server über den Paketmanager installieren und konfigurieren.
DB-Benutzer für BISO erstellen
CREATE ROLE biso WITH
LOGIN
INHERIT
CREATEDB
CREATEROLE
NOREPLICATION
ENCRYPTED PASSWORD 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx';
Datenbank erstellen mit den frisch erstellten Benutzer als Besitzer.
CREATE DATABASE biso
WITH
OWNER = biso
ENCODING = 'UTF8'
LC_COLLATE = 'de_CH.utf8'
LC_CTYPE = 'de_CH.utf8';
Nun kann der mitgelieferte DB-Dump in diese DB eingespielt werden.
PostgreSQL wird defaultmässig mit Werten ausgeliefert, welche mehr der Kompatibilität denn der Performance dienen. Deshalb ist es wichtig, dass gewisse Konfigurationsparameter nach der Installation noch etwas angepasst werden. Diese Konfigurationsparameter sind in /etc/postgresql/postgresql.conf zu finden
shared_buffers: sollte auf ca. 1/4 des Memorys des Servers eingestellt werden, auf Windows max. 512M, also z.B.:
shared_buffers = 512MB
effective_cache_size: Dies ist mehr eine Planungs-Entscheidung für Postgresql, was er im Memory macht, und was er auf Disk schreibt. Der Wert sollte ca. 1/2 des verfügbaren freien Memory sein. Dies sollte via TaskManager ermittelt werden. Bei 4GB total kann dies gut 1 GB sein, also etwa:
effective_cache_size = 1GB
autovacuum: Dies sollte unbedingt eingeschaltet werden, und führt von Zeit zu Zeit den Vacuum-Prozess von Postgres aus (re-indizieren, Neu-anordnen von Daten etc).
autovacuum = on
work_mem: Vor allem benötigt für jegliche Sortieroptionen. Dieser Wert wird pro Query und Verbindung gebraucht, also vorsicht mit erhöhen. Ich würde ca. so rechnen: (verfügbares RAM / max. Anzahl Verbindungen) runden auf 2^x. Bei ca 2GB freiem RAm und 100 Verbindungen wären dies: 2GB / 100 = 16MB
work_mem = 16M
Ev. wäre es gut, diese Settings mal zu prüfen und ev. anzupassen. Dies kann der DB noch etliches an Performance bringen. Es ist allerdings ein PG-Server-restart notwendig, also eher an einer Randstunde probieren.
Die folgende Einstellung ist vor allem auf Windows-Systemen ein grosser Performance-Boost:
update_process_title = off
Die nötigen Packete für PHP sowie einem Webserver installieren. Das DocumentRoot des Webservers muss auf [WEBROOT]/public zeigen.
Beispiel Apache-Config:
<VirtualHost *:80>
ServerName biso.example.com
DocumentRoot /var/www/html/public
# .....
</VirtualHost>
Die Datei php.ini ist je nach System an anderer stelle abgelegt. Mit php -i lässt sich die Datei finden.
; Note: Enable the required PHP extensions, as per your distribution:
; Normally, extensions are enabled via the system's package manager, not in php.ini directly:
; fileinfo
; ftp
; gd
; intl
; json
; mb_string
; soap
; pdo
; pdo-pgsql
; opcache
; openssl
; xml
; zip
; e.g.:
; extension=fileinfo
memory_limit = 256M
date.timezone = "Europe/Zurich"
post_max_size = 12M
upload_max_filesize = 10M
memory_limit = 256M
date.timezone = "Europe/Zurich"
post_max_size = 12M
upload_max_filesize = 10M
Das BISO Installations Packet kann entpackt sowie in das WEBROOT verschoben werden.
Der Webserver Benutzer muss Schreib- und Lesezugriff auf das konfigurierte datadir (siehe config.php) haben.
FOP ist das Java-Tool, um PDFs zu erstellen. Es benötigt eine fop.xconf-Datei, welches die verwendeten Schriften konfiguriert.
config.phpBISO wird über die Datei config.php im webroot konfiguriert.
config.orig.php) nach webroot/config.phpDB-Benutzer für BISO erstellen
CREATE ROLE biso WITH
LOGIN
NOSUPERUSER
INHERIT
CREATEDB
CREATEROLE
NOREPLICATION
ENCRYPTED PASSWORD 'md5fbe75a7d98e04014c631dab39c6f85c0';
Datenbank erstellen mit den frisch erstellten Benutzer als Besitzer.
CREATE DATABASE biso
WITH
OWNER = biso
ENCODING = 'UTF8'
LC_COLLATE = 'German_Germany.1252'
LC_CTYPE = 'German_Germany.1252'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
TEMPLATE = template0;
Nun kann der mitgelieferte DB-Dump in diese DB eingespielt werden.
PostgreSQL wird defaultmässig mit Werten ausgeliefert, welche mehr der Kompatibilität denn der Performance dienen. Deshalb ist es wichtig, dass gewisse Konfigurationsparameter nach der Installation noch etwas angepasst werden. Diese Konfigurationsparameter sind in C:\BISO\PostgreSQL\data\postgresql.conf zu finden
shared_buffers: sollte auf ca. 1/4 des Memorys des Servers eingestellt werden, auf Windows max. 512M, also z.B.:
shared_buffers = 512MB
effective_cache_size: Dies ist mehr eine Planungs-Entscheidung für Postgresql, was er im Memory macht, und was er auf Disk schreibt. Der Wert sollte ca. 1/2 des verfügbaren freien Memory sein. Dies sollte via TaskManager ermittelt werden. Bei 4GB total kann dies gut 1 GB sein, also etwa:
effective_cache_size = 1GB
autovacuum: Dies sollte unbedingt eingeschaltet werden, und führt von Zeit zu Zeit den Vacuum-Prozess von Postgres aus (re-indizieren, Neu-anordnen von Daten etc).
autovacuum = on
work_mem: Vor allem benötigt für jegliche Sortieroptionen. Dieser Wert wird pro Query und Verbindung gebraucht, also vorsicht mit erhöhen. Ich würde ca. so rechnen: (verfügbares RAM / max. Anzahl Verbindungen) runden auf 2^x. Bei ca 2GB freiem RAm und 100 Verbindungen wären dies: 2GB / 100 = 16MB
work_mem = 16M
Ev. wäre es gut, diese Settings mal zu prüfen und ev. anzupassen. Dies kann der DB noch etliches an Performance bringen. Es ist allerdings ein PG-Server-restart notwendig, also eher an einer Randstunde probieren.
Die folgende Einstellung ist vor allem auf Windows-Systemen ein grosser Performance-Boost:
update_process_title = off
Auf folgender Homepage kann PHP Heruntergeladen werden (VC15 x64 Non Thread Safe): https://windows.php.net/download
Das heruntergeladene ZIP-File wird nach C:\BISO\php entpackt.
Die Datei „php.ini-production“ wird zu „php.ini“ umbenannt und bearbeitet:
// Definiert Fileberechtigungen innerhalb von IIS
fastcgi.impersonate = 0
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0
extension_dir = "C:\BISO\php\ext"
extension=ftp
extension=fileinfo
extension=gd2
extension=mbstring
extension=openssl
extension=pdo_pgsql
extension=soap
memory_limit = 256M
date.timezone = "Europe/Zurich"
post_max_size = 12M
upload_max_filesize = 10M
Semikolon entfernen (und Pfad setzten). Einige können schon eingeschaltet sein, oder gar nicht vorhanden:
IIS 8 kann über den Servermanger als Rolle hinzugefügt werden.
Die rot markierten Felder müssen noch manuell ausgewählt werden:


Zusätzlich muss die Extention URL Rewrite 2.1 installiert werden die unter https://www.iis.net/downloads/microsoft/url-rewrite heruntergeladen werden kann:

Im Internetinformationsdienste (IIS)-Manager unter Server -> Handlerzuordnungen kann nun eine Modulzuordnung hinzugefügt werden. Das geöffnete Fenster kann wie folgt ausgefüllt werden:

Die Default Site kann nun umbenannt werden (z.B. BISO). Mit Rechtsklick auf die Site kann des weiteren der Pfad zum BISO root-Directory angepasst werden:

Das BISO Installations Packet kann entpackt sowie in das WEBROOT verschoben werden.
Der Benutzer „IIS APPOOOL\DefaultAppPool“ oder IISUSER muss eventuell Schreib & Lese rechte auf das Temp sowie Data Verzeichnis haben, wenn kein andere Bentuzer in IIS Definiert wurde.
Unter Sites -> Default -> Authentifzierung muss folgendes eingestellt sein.
Windows Authentication -> Enable Anonymous Authentification -> Disabled Alle anderen -> Disabled

Des weiteren muss in der BISO Konfigurations (C:\BISO\webroot\config.php) folgendes angepasst werden.
if (php_sapi_name() !== 'cli') {
Config::set('remote_user', preg_replace('/^.*\\\\/', '', $_SERVER['REMOTE_USER']));
Config::set('remote_user_auth', true);
}

Vor dem Update sollte ein DB-/Dateibackup von BISO erstellt werden.
Update Packet entpacken sowie die Dateien mit rsync abgeleichen.
rsync -a -b \
--backup-dir=/tmp/BISO_UPDATE/deleted \
--delete \
--progress \
--exclude=config.php \
--exclude=fonts \
--exclude=data \
--exclude=components/phpdocx/config/phpdocxconfig.ini \
/tmp/BISO_UPDATE/WEBROOT/ /PATH/TO/WEBROOT
cd /PATH/TO/WEBROOT
php ./biso-cli migration exec
Vor dem Update sollte ein DB-/Dateibackup von BISO erstellt werden.
Update Packet entpacken und in die Dateien im Ordner BISO kopieren (bestehende Dateien ersetzten)
C:\BISO\webroot
C:\BISO\php\php.exe biso-cli migration exec
Die Konfiguration eines neuen Kunden in BISO wird basierend auf einer bestehenden Installation gemacht. Dies erleichtert die Konfiguration massiv, bedingt aber ein paar gezielte Daten-Löschungen auf der Datenbank.
In der Tabelle params wird die Spalte kunde auf den gewünschten Wert gesetzt.
KP.param.FormIm Parameter-Panel (ExtJS-Datei KP.param.Form) muss der Kunde in der Auswahlliste ergänzt werden.
Im Verzeichnis webroot/public/resources/images/wappen/ eine Datei {params.kunde}.svg platzieren
Kopieren folgender Vorlagen-Ordner:
webroot/templates/default/ --> webroot/templates/[kunde]/webroot/public/app/src/kunden_spec/[vorhandener Kunde] --> webroot/public/app/src/kunden_spec/[kunde]/beilage beratungsfall bf_bericht bf_dokument bf_link_typ bf_log bf_notiz bf_termin bf_termin_protokoll bf_workshop_link bf_workshop_termin brief_abschnitt hilfe_themen import_inbox information information_institution inst_schulstufe_link involvierte_institution involvierte_person job job_step leistung login_log modul passwort_log person_funktions_spezialisierungen prod_in_modul qm_abschlussmodalitaet qm_beratungergebnis qm_beratungverlauf qm_beschaeftigungssituation qm_eigenaktivitaetklient qm_fragestellunganlass qm_katalog qm_laufendeausbildung qm_letzterausbildungabschluss qm_messages qm_selbstproblemloesungbefaehigung qm_zielerreichung qm_zuweisendestelle raumsituation rechnung search_settings settings teilsummen_gruppen_rechnungen termin_publikations_mailboxen textbausteine uebermittlungslauf value_map veranstalt_leistung veranstalt_termin veranstalter veranstaltung workshop workshop_block_in_workshop workshop_plan
anschlussloesung ausbildung ausbildung_richtung ausweis_kat begruendung_kostenbefreiung benutzer benutzer_gruppe beratung_erfahren_durch beratungsfall_ergebnis beratungsfall_fragestellung bezirk bf_archiv_status bf_bericht_vorlage bf_ergebnis bf_fragestellung bf_termin_absage_grund bf_termin_besprechungsart bf_termin_thema bf_typ bf_typ_kategorie bf_uebergang brief_vorlage brief_abschnitt brueckenangebot deutsch_niveau dokument_vorlagen empfaenger_vorlage ergebnis_arbeitsmarktfaehigkeitscheck fakultaet fakultaet_ausbildungs_richtung feiertag funkt_kategorie funktion funktions_spezialisierungen gemeinde gruppe inst_typ_kategorie institution_typ kanton login mehrfachbelastung muttersprache nationalitaet param plz plz_in_bezirk prod_typ reporting_tables resultat schul_funktion schul_klasse schul_stufe situation sozialhilfe sprache sr_gruppe stunden titel treffpunkt veranstalt_typ zeit_dauer zielgruppe funkt_pers_link person institution memo_texte mitarbeiter produkt
bl_mentoring_import_personen