Zum Inhalt springen
FlinkISO

FlinkISO · Kostenloses Open-Source-QMS

Manuelle Installation

Installieren Sie FlinkISO in einer vorhandenen LAMP-Umgebung oder behalten Sie FlinkISO und ONLYOFFICE auf separaten Servern.

Verwenden Sie die manuelle Installation, wenn Sie bereits den Webstack verwalten, separate FlinkISO- und ONLYOFFICE-Hosts benötigen oder das Single-Server-Installationsprogramm nicht verwenden können.

Anwendungsbibliotheken: FlinkISO verwendet eine CakePHP 2-Anwendungsgrundlage mit Kompatibilitätsupdates für aktuelle PHP-Veröffentlichungen. lib und lib-older Verzeichnisse, die mit Ihrem Download geliefert werden, ersetzen Sie sie nicht direkt aus einem anderen CakePHP-Kompatibilitäts-Repository. lib Das Verzeichnis ist für PHP 8+ gedacht, während lib-older wird für ältere PHP-Umgebungen beibehalten.

Server- und Softwarevoraussetzungen

FlinkISO läuft auf einem Linux/Apache/MySQL/PHP-Stack und kann auch auf einem Windows-Server mit Apache oder IIS konfiguriert werden.

  • Linux oder Windows Server
  • Apache oder IIS mit aktiviertem URL-Rewriting
  • MySQL
  • Eine unterstützte PHP-FPM Version mit cURL, mbstring, MySQL, XML, Intl, GD und ZIP Erweiterungen
  • pdftk-java und eine Headless Java Runtime für PDF Merging, Passwörter und Berechtigungen
  • ONLYOFFICE Gemeinschaftsdokumentenserver
  • Eine statische IP-Adresse oder qualifizierte Domain für einen separaten ONLYOFFICE-Host
  • HTTPS für die Produktion

Wenn Sie eine verpackte lokale Apache-Umgebung benötigen, können MAMP oder XAMPP zum Testen verwendet werden.

Installieren Sie PDF-Tools auf Ubuntu

sudo apt install pdftk-java default-jre-headless
sudo -u www-data /usr/bin/pdftk.pdftk-java --version
Verwenden Sie pdftk-java, nicht die veraltete GCJ ausführbar. FlinkISO verwendet ONLYOFFICE zum Erstellen von PDF-Inhalten. Der kompatible pdftk-java-Befehl wird beibehalten, um PDFs zu kombinieren und die endgültige Passwort- und Berechtigungssicherheit anzuwenden.
ONLYOFFICE-Netzwerkadresse: Wenn FlinkISO und ONLYOFFICE unterschiedliche Server verwenden, muss der Document Server von FlinkISO und von den Browsern der Benutzer über eine statische IP-Adresse oder eine qualifizierte Domäne erreichbar sein. localhost für eine Zwei-Server-Verbindung.

Registrieren und kopieren Sie den Antrag

  1. Registrieren Sie sich zum Download. Verwenden Sie die Kostenlose On-Premise Download-Seite und behalten Sie die Zugangsdaten, die an Ihre registrierte E-Mail-Adresse gesendet werden.
  2. Laden Sie das gelieferte Paket herunter. Behalten Sie die enthaltenen Anwendungsbibliotheken und das Schema unverändert.
  3. Kopieren Sie FlinkISO in den Webroot. Verwendung /var/www/html/flinkiso, das Dokumentverzeichnis Ihres virtuellen Hosts oder das in Apache oder IIS konfigurierte Site-Verzeichnis.
  4. Installieren Sie ONLYOFFICE. Beachten Sie die Browser-API-URL, die Conversion-API-URL und das JWT-Geheimnis, bevor Sie die FlinkISO-Konfiguration bearbeiten.

Konfigurieren von ONLYOFFICE

Offen /etc/onlyoffice/documentserver/local.json. Lassen Sie JWT aktiviert und verwenden Sie dasselbe Geheimnis für Browser, Posteingang, Postausgang und Sitzung. Tragen Sie dasselbe Geheimnis auch in FlinkISOs app/Config/core.php.

Wenn der Document Server in einem privaten Netzwerk auf FlinkISO zugreifen muss, fügen Sie den Anforderungsfilteragenten in services.CoAuthoring, vor dem sql Abschnitt:

"request-filtering-agent": {
  "allowPrivateIPAddress": true,
  "allowMetaIPAddress": true
}

Starten Sie die ONLYOFFICE-Dienste nach dem Wechsel neu local.jsonEine Diskrepanz zwischen den ONLYOFFICE- und FlinkISO-Geheimnissen führt dazu, dass der Fehler "Dokumentensicherheitstoken ist nicht korrekt gebildet" auftritt.

Update Core.php und Database.php

Anwendungskonfiguration

Offen your_directory/flinkiso/app/Config/core.php und überprüfen Sie jeden umweltspezifischen Wert:

  • Nicht ändern ApiPath.
  • Setz OnlyofficePath zum ONLYOFFICE Browser API-Standort.
  • Setz onlyofficesecret Das Geheimnis kopiert von local.json.
  • Setz OnlyofficeConversionApi zur Document Server Conversion API.
  • Setz PDFTkPath bis /usr/bin/pdftk.pdftk-java Unterstützte Ubuntu Releases.
  • Ersetzen Sie die Zeitzone in date_default_timezone_set(...) mit der benötigten Zeitzone des Servers.
  • Ersetzen Security.salt mit einem eindeutigen Wert der gleichen Länge vor der Registrierung der Instanz.
  • Ersetzen Security.cipherSeed mit einem eindeutigen numerischen Wert der gleichen Länge vor der Registrierung der Instanz.
  • Setz dateFormat in dem Format, das in exportierten PDFs erforderlich ist.
Setzen Sie das Salz und Chiffre Samen vor der Registrierung. Das Ändern der Verschlüsselungskonfiguration nach dem Vorhandensein von Produktionsdaten kann verhindern, dass gespeicherte verschlüsselte Werte gelesen werden.
Configure::write('PDFTkPath', '/usr/bin/pdftk.pdftk-java');

Datenbankkonfiguration

Offen your_directory/flinkiso/app/Config/database.php Geben Sie die MySQL-Verbindungsdetails ein:

public $default = array(
    "datasource" => "Database/Mysql",
    "persistent" => false,
    "host"       => "localhost",
    "login"      => "your_database_user",
    "password"   => "your_database_password",
    "database"   => "flinkiso",
    "prefix"     => "",
    "encoding"   => "utf8",
);

Erstellen und Importieren der Datenbank

  1. Erstellen Sie eine leere MySQL-Datenbank namens flinkisooder verwenden Sie den eingegebenen Datenbanknamen database.php.
  2. Erstellen Sie einen dedizierten Datenbankbenutzer und gewähren Sie ihm die erforderlichen Privilegien in dieser Datenbank.
  3. Standort app/webroot/schema/flinkiso-on-premise.sql im heruntergeladenen Paket.
  4. Importieren Sie die SQL-Datei mit phpMyAdmin oder dem MySQL-Kommandozeilenclient.
  5. Öffnen Sie die Anwendungs-URL und überprüfen Sie die CakePHP-Protokolle, wenn eine Datenbankverbindung oder ein Fehler in der fehlenden Tabelle angezeigt wird.

Beispiel Befehlszeilenimport:

mysql -u your_database_user -p flinkiso < app/webroot/schema/flinkiso-on-premise.sql

Konfigurieren ausgehender E-Mails

Offen your_directory/flinkiso/app/Config/Email.php. Konfigurieren Sie die $default, $smtp und $fast Profile mit dem Absender und den SMTP-Anmeldeinformationen Ihrer Organisation: Diese Profile unterstützen Passwort-Resets, Genehmigungsnachrichten, Benachrichtigungen und andere Anwendungs-E-Mails.

class EmailConfig {
    public $default = array(
        "transport" => "Mail",
        "from" => array("[email protected]" => "FlinkISO")
    );

    public $smtp = array(
        "transport" => "Smtp",
        "from" => array("[email protected]" => "FlinkISO"),
        "host" => "your_smtp_host",
        "port" => 465,
        "timeout" => 30,
        "username" => "your_smtp_username",
        "password" => "your_smtp_password",
        "client" => null,
        "log" => false
    );

    public $fast = array(
        "from" => "[email protected]",
        "sender" => null,
        "to" => null,
        "cc" => null,
        "bcc" => null,
        "replyTo" => null,
        "readReceipt" => null,
        "returnPath" => null,
        "messageId" => true,
        "subject" => null,
        "message" => null,
        "headers" => null,
        "viewRender" => null,
        "template" => false,
        "layout" => false,
        "viewVars" => null,
        "attachments" => null,
        "emailFormat" => null,
        "transport" => "Smtp",
        "host" => "your_smtp_host",
        "port" => 465,
        "timeout" => 30,
        "username" => "your_smtp_username",
        "password" => "your_smtp_password",
        "client" => null,
        "log" => true
    );
}
SMTP-Ports variieren. Verwenden Sie den Verschlüsselungsmodus und den Port, den Ihr Mailanbieter benötigt. Testen Sie das Zurücksetzen des Passworts und eine Genehmigungsbenachrichtigung nach der Registrierung.

Verzeichnisberechtigungen festlegen

Das Webserver-Konto muss in der Lage sein, die Laufzeit, den generierten Code und die hochgeladenen Dateien der Anwendung zu schreiben. Das veröffentlichte Paket identifiziert diese Pfade:

WegstreckeAnforderungen
app/tmpRekursiver Schreibzugriff, einschließlich logs, sessions, tests und cache.
app/tmp/cache/viewsSchreibzugriff für den generierten View-Cache.
app/tmp/cache/modelsSchreibzugriff für den Modell-Cache.
app/tmp/cache/persistentSchreibzugriff für persistenten Cache.
app/Controller, app/Model, app/ViewSchreibzugriff, bei dem die Formularerstellungs-API Modulcode generiert.
app/webrootSchreibzugriff für generierte Assets, Uploads und Anwendungsdateien nach Bedarf.
lib/Cake/CacheRekursiver Schreibzugriff, wenn dies für das gelieferte Paket erforderlich ist.

Legen Sie dem Webserver-Benutzer das Eigentumsrecht zu und gewähren Sie nur die Berechtigungen, die für Ihre Bereitstellung erforderlich sind. Vermeiden Sie uneingeschränkte, weltweit beschreibbare Berechtigungen auf einem Produktionsserver.

Apache, MySQL und PHP Einstellungen

Installieren Sie PHP-FPM und aktivieren Sie die erforderlichen Apache-Module

Verwenden Sie PHP 8.2 auf Ubuntu 22.04/24.04 oder PHP 8.5 auf Ubuntu 26.04. Stellen Sie die Version einmal fest, bevor Sie die verbleibenden Befehle ausführen:

# Ubuntu 22.04 or 24.04
FLINKISO_PHP_VERSION=8.2

# Ubuntu 26.04
# FLINKISO_PHP_VERSION=8.5

sudo apt install "php${FLINKISO_PHP_VERSION}-fpm" "php${FLINKISO_PHP_VERSION}-cli" \
  "php${FLINKISO_PHP_VERSION}-curl" "php${FLINKISO_PHP_VERSION}-mbstring" \
  "php${FLINKISO_PHP_VERSION}-mysql" "php${FLINKISO_PHP_VERSION}-xml" \
  "php${FLINKISO_PHP_VERSION}-intl" "php${FLINKISO_PHP_VERSION}-gd" \
  "php${FLINKISO_PHP_VERSION}-zip"

sudo a2dismod "php${FLINKISO_PHP_VERSION}" 2>/dev/null || true
sudo a2dismod mpm_prefork 2>/dev/null || true
sudo a2enmod mpm_event proxy proxy_fcgi setenvif rewrite headers
sudo a2enconf "php${FLINKISO_PHP_VERSION}-fpm"
sudo systemctl enable --now "php${FLINKISO_PHP_VERSION}-fpm"
sudo systemctl restart apache2
Führen Sie FlinkISO nicht über Apache mod_php. Ubuntu 26.04 gilt MemoryDenyWriteExecute=yes Java-basiertes pdftk erbt diese Einschränkung unter mod_php und schlägt während der VM-Initialisierung fehl. PHP-FPM läuft außerhalb der Apache-Service-Sandbox und bewahrt die Sicherheitshärtung von Apache.

Regeln für das Umschreiben von Anwendungen zulassen

In /etc/apache2/apache2.conf, httpd.conf oder in der Virtual-Host-Konfiguration der Website die Verwendung von Overrides für das FlinkISO-Webverzeichnis. Für Apache 2.4 und höher:

<Directory /var/www/>
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Wenn phpMyAdmin auch Overrides benötigt, fügen Sie die entsprechende Verzeichnisregel für /usr/share/phpmyadmin:

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php
    AllowOverride All
</Directory>

Überprüfen Sie PHP-FPM und pdftk-java

sudo systemctl status "php${FLINKISO_PHP_VERSION}-fpm"
sudo systemctl show "php${FLINKISO_PHP_VERSION}-fpm" -p MemoryDenyWriteExecute
sudo apache2ctl -M | grep -E 'mpm_event|proxy_fcgi'
sudo -u www-data /usr/bin/pdftk.pdftk-java --version

Überprüfen Sie den MySQL SQL-Modus

Wenn das bereitgestellte Schema oder Anwendungsverhalten den Kompatibilitätsmodus erfordert, der von der veröffentlichten Installationsanleitung verwendet wird, überprüfen Sie /etc/mysql/mysql.conf.d/mysqld.cnf und Satz:

sql_mode = "STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION"

Verfügbare SQL-Modi variieren zwischen MySQL-Versionen. Entfernen Sie einen Modus nur, wenn der Server meldet, dass er nicht unterstützt wird, starten Sie dann MySQL neu und testen Sie die Anwendung erneut.

PHP-Grenzwerte überprüfen

Offen /etc/php/<your-php-version>/fpm/php.ini und setzen Sie Grenzen, die für kontrollierte Dokumente und generierte Formulare geeignet sind:

max_execution_time = 300
max_input_time = 600
post_max_size = 80M
upload_max_filesize = 200M
pcre.jit = 0

Passen Sie diese Werte an die Einschränkungen Ihrer Organisation an und starten Sie dann PHP-FPM und Apache neu.

sudo systemctl restart "php${FLINKISO_PHP_VERSION}-fpm" apache2

Registrieren und Verifizieren der Instanz

  1. Offen https://your-server/flinkiso/users/register, angepasst für Ihren tatsächlichen Host und Ihr Anwendungsverzeichnis.
  2. Geben Sie die gleiche registrierte E-Mail-Adresse ein, die für den Download verwendet wurde, und fahren Sie mit der Instanzregistrierung fort.
  3. Melden Sie sich mit den für die registrierte Installation bereitgestellten Anmeldeinformationen an und ändern Sie sofort ein temporäres Passwort.
  4. Fügen Sie einen Standort-, Abteilungs- und Mitarbeiterdatensatz hinzu, um Datenbankschreiben zu überprüfen.
  5. Öffnen Sie ein Bürodokument, um die ONLYOFFICE-URL und das JWT-Geheimnis zu überprüfen.
  6. Generieren Sie einzelne, ausgewählte und kombinierte passwortgeschützte PDFs, um die ONLYOFFICE-Konvertierung und die Sicherheit von pdftk-java zu überprüfen.
  7. Senden Sie eine Passwort-Reset- oder Testgenehmigungsbenachrichtigung, um SMTP zu überprüfen.
  8. Erstellen oder Wiederherstellen eines Testformulars und Bestätigen von generiertem Code, Cache und Webroot-Berechtigungen.
Die Installation ist abgeschlossen, wenn alle vier Pfade funktionieren: Datenbankdatensätze speichern, ONLYOFFICE lädt ein Dokument, die PDF-Ausgabe wird generiert und die Anwendungs-E-Mail wird zugestellt.
  • In der Cloud

    Testen Sie das Cloud-QMS 15 Tage lang. Keine Zahlung erforderlich. Eine kostenlose Schulung ist enthalten. Support per Live-Chat und E-Mail.

    Registrieren
  • Auf eigenem Server

    Laden Sie die kostenlose On-Premises-Edition der Qualitätsmanagementsoftware herunter. Installation, Schulung und Support sind bei Bedarf verfügbar.

    Kostenlos herunterladen