Projekt einrichten

Systemanforderungen

Der Server muss folgende Anforderungen erfüllen:

  • Apache 2 Webserver
  • PHP 8.0+ mit pdo, pdo_mysql, mbstring, pcre, json, zlib, xml, xml-writer, xml-reader, libxml, zip, dom
  • mysql 5.6+ oder mariadb (der Datenbankbenutzer benötigt Zugriff auf alle DDL und DML Befehle)

Installation

 In dem Projektordner muss eine composer.json-Datei angelegt werden. Wichtig sind hierbei die Einträge in "require", "require-dev" und "repositories". 

{
    "type": "project",
    "minimum-stability": "stable",
    "license": "proprietary",
    "authors": [
        {
            "name": "Setasign",
            "email": "support@setasign.com"
        }
    ],

    "require": {
        "setasign/setaframework": "^6.0",
        "setasign/setasite": "^2.2",
        "setasign/konquadrat": "^2.5"
    },

    "require-dev": {
        "setasign/setasign-installer": "^1.1"
    },

    "config": {
        "process-timeout": 600,
        "secure-http": false,

        "preferred-install": {
            "*": "dist"
        }
    },

    "extra": {
        "setasignInstallLocation": {
            "setasign/konquadrat-gui": "public/konquadrat/",
            "setasign/setasite-gui": "public/_resource/"
        }
    },
    
    "repositories": [
        {
            "type": "composer",
            "url": "http://satis.prod1.setasign.local/"
        }
    ]
}

Anschließend muss "composer install" ausgeführt werden und die Logindaten für das SVN eingegeben werden.

Das composer-Modul "setasign-installer" wird hierbei automatisch die Ordnerstruktur erstellen. (siehe 2. Projektstruktur)

Konfiguration

Nachdem die Ordner-Struktur eingerichtet ist, muss das Projekt noch entsprechend konfiguriert werden. Alle Konfigurationsdateien befinden sich im "config"-Ordner.

Die bootstrap.inicacheHandlers.inilogHandlers.ini werden in der SetaFramework-Dokumentation näher erläutert. Die Konquadrat Konfiguration ist in der "konquadrat.ini" zu finden. Die Gruppen "logger" und "cache" sind auch in der SetaFramework Dokumentation näher erklärt.

Standardmäßig sind die Konfigurationen in ini-Segmente unterteilt (global, development und productive). In der public/index.php wird entschieden, welches Segment verwendet wird. Falls der Entwicklungsserver nicht der DEV1 von Setasign ist muss diese Logik wahrscheinlich angepasst werden!

Für üblich müssen nur 3 Dinge in der Konfigurationsdatei angepasst werden:

Datenbank

db.driver = mysql
db.username = mydbuser
db.password = mydbpassword
db.dsn.host = 127.0.0.1
db.dsn.port = 3306
db.dsn.dbname = my-konquadrat-project

Falls Konquadrat mit SetaSite verwendet wird, kann alternativ folgender Eintrag verwendet werden (die restlichen db-Einträge müssen auskommentiert werden). In dem Fall muss die Datenbank Konfiguration nur in der setasite.ini hinterlegt werden:

db.useSetaSite = 1

Projektsprachen

Konquadrat besitzt 2 verschiedene Arten von Sprachen. 

Zum einen die Systemsprache, das ist die Sprache von der Backend-GUI. Diese Sprachen sind fest in Konquadrat integriert und können nicht verändert werden. Momentan sind die mögliche Systemsprachen deutsch und englisch.

Desweiteren gibt es die Projektsprache. Das sind die Sprachen die im Workflow möglich sind und von Projekt zu Projekt unterschiedlich sind. Die Konfiguration sieht wie folgt aus:

language.languages[] = de
language.languages[] = en
language.default = de
; Intl locale map
language.locales.de = de-DE
language.locales.en = en-GB

Jede konfigurierte Sprache muss aus einem Identifier mit 2 Buchstaben bestehen!

Emailserver

Konquadrat verwendet SwiftMailer um Emails verschicken zu können. Konquadrat verschickt Emails beim Einladen von neuen Benutzer, bei der "Passwort vergessen"-Funktion und bei Fehlerberichten der GUI. Es muss ein SMTP-Server konfiguriert werden, damit diese Emails verschickt werden können. Diese Konfiguration kann auch für projektspezifische Emails verwendet werden.

; email configuration
email.host = 127.0.0.1
email.port = 25
; possible values: '', 'tls', 'ssl'
email.encryption =
email.username =
email.password =

email.systemEmail = my-project@konquadrat.de
email.contactEmail = my-project@konquadrat.de
email.crashReportEmail = maximilian.kresse@setasign.com
email.returnPath = my-project@konquadrat.de
email.bccDefault = my-project@konquadrat.de

Apache VHost einrichten

Nach dem die Ordnerstruktur eingerichtet ist kann der VHost eingerichtet werden. Die Konfiguration kann hierbei je nach Server unterschiedlich sein:

<VirtualHost 192.168.178.152:80>
  ErrorLog /var/www/webs/my-konquadrat-project/logs/apache_error.log
  ServerName 2017.my-konquadrat-project.dev1.setasign.local
  ServerAlias 2017.my-konquadrat-project.setasign.ath.cx
  DocumentRoot /var/www/my-konquadrat-project/html/public

  SuexecUserGroup web setasign
  FCGIWrapper /var/www/webs/web71/cgi-bin/php-starter .php

  <Directory /var/www/webs/my-konquadrat-project/html/public>
    AllowOverride all 
    Options ExecCGI -Indexes FollowSymLinks
    Require all granted
  </Directory>

  <Directory /var/www/webs/web71/cgi-bin>
    AllowOverride none
    Options ExecCGI MultiViews -Indexes
    Require all granted
  </Directory>
</VirtualHost>

Wichtig ist hierbei der Eintrag "AllowOverride all", damit die .htaccess Datei im Projektordner gezogen wird. Alternativ kann aber auch der Inhalt der .htaccess Datei mit in die vHost Konfiguration übernommen werden.

Wenn die Installation erfolgreich war, sollte die Seite nun über den Apache verfügbar sein (nach einem Neustart "/etc/init.d/apache2 restart").

Falls SetaSite nicht verwendet wird, sollte nun eine Fehlerseite auftauchen mit dem Fehler "Something wrong with the routing. Doesn't have an application.". Das passiert weil Konquadrat keine "catchAll" Route besitzt. Dies könnte mit einem ProjectController behoben werden und dazu in der bootstrap.ini folgender Eintrag: 

bootstrap.defaultRouterValues.application = Konquadrat
bootstrap.defaultRouterValues.controller = Index
bootstrap.defaultRouterValues.action = index
bootstrap.defaultRouterValues.projectController = 1

Falls SetaSite verwendet wird, sollte stattdessen ein Fehler erscheinen, dass einige Tabellen nicht gefunden wurden.

Installation der Datenbank

Nachdem der vHost eingerichtet ist und das Projekt über den Browser erreichbar ist, kann das Install-Skript gestartet werden für Konquadrat. Das Install-Skript ist unter folgender Adresse zu erreichen: /konquadrat_backend/admin/install (falls der BackendPrefix nicht konquadrat ist, muss stattdessen der konfigurierte BackendPrefix verwendet werden)

Falls SetaSite verwendet wird, kann das Install-Skript für SetaSite unter /setasite/admin/install erreicht werden.

Beide Install-Skripte erstellen die benötigen Tabellen in der Datenbank und für beide Backends einen entsprechenden User.

Fertig!

Das Konquadrat-Backend ist unter "/konquadrat" erreichbar. (User: "user", Passwort: "user")

Das SetaSite-Backend ist unter "/setasite" erreichbar. (User: "User", Passwort: "egal")

Das Install-Skript von Konquadrat ist nur einmalig ausführbar, danach muss die Datenbankstruktur über das Konquadrat-Backend mit einen Config-Reload aktualisiert werden.

Das Install-Skript von SetaSite ist beliebig oft ausführbar, jedoch nur wenn in der setasite.ini "install.enabled" auf 1 steht. In der Standardkonfiguration ist das nur im Testsystem möglich.