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.
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
localhost für eine Zwei-Server-Verbindung.Registrieren und kopieren Sie den Antrag
- 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.
- Laden Sie das gelieferte Paket herunter. Behalten Sie die enthaltenen Anwendungsbibliotheken und das Schema unverändert.
- 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. - 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
OnlyofficePathzum ONLYOFFICE Browser API-Standort. - Setz
onlyofficesecretDas Geheimnis kopiert vonlocal.json. - Setz
OnlyofficeConversionApizur Document Server Conversion API. - Setz
PDFTkPathbis/usr/bin/pdftk.pdftk-javaUnterstützte Ubuntu Releases. - Ersetzen Sie die Zeitzone in
date_default_timezone_set(...)mit der benötigten Zeitzone des Servers. - Ersetzen
Security.saltmit einem eindeutigen Wert der gleichen Länge vor der Registrierung der Instanz. - Ersetzen
Security.cipherSeedmit einem eindeutigen numerischen Wert der gleichen Länge vor der Registrierung der Instanz. - Setz
dateFormatin dem Format, das in exportierten PDFs erforderlich ist.
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
- Erstellen Sie eine leere MySQL-Datenbank namens
flinkisooder verwenden Sie den eingegebenen Datenbanknamendatabase.php. - Erstellen Sie einen dedizierten Datenbankbenutzer und gewähren Sie ihm die erforderlichen Privilegien in dieser Datenbank.
- Standort
app/webroot/schema/flinkiso-on-premise.sqlim heruntergeladenen Paket. - Importieren Sie die SQL-Datei mit phpMyAdmin oder dem MySQL-Kommandozeilenclient.
- Ö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
);
}
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:
| Wegstrecke | Anforderungen |
|---|---|
app/tmp | Rekursiver Schreibzugriff, einschließlich logs, sessions, tests und cache. |
app/tmp/cache/views | Schreibzugriff für den generierten View-Cache. |
app/tmp/cache/models | Schreibzugriff für den Modell-Cache. |
app/tmp/cache/persistent | Schreibzugriff für persistenten Cache. |
app/Controller, app/Model, app/View | Schreibzugriff, bei dem die Formularerstellungs-API Modulcode generiert. |
app/webroot | Schreibzugriff für generierte Assets, Uploads und Anwendungsdateien nach Bedarf. |
lib/Cake/Cache | Rekursiver 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
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
- Offen
https://your-server/flinkiso/users/register, angepasst für Ihren tatsächlichen Host und Ihr Anwendungsverzeichnis. - Geben Sie die gleiche registrierte E-Mail-Adresse ein, die für den Download verwendet wurde, und fahren Sie mit der Instanzregistrierung fort.
- Melden Sie sich mit den für die registrierte Installation bereitgestellten Anmeldeinformationen an und ändern Sie sofort ein temporäres Passwort.
- Fügen Sie einen Standort-, Abteilungs- und Mitarbeiterdatensatz hinzu, um Datenbankschreiben zu überprüfen.
- Öffnen Sie ein Bürodokument, um die ONLYOFFICE-URL und das JWT-Geheimnis zu überprüfen.
- Generieren Sie einzelne, ausgewählte und kombinierte passwortgeschützte PDFs, um die ONLYOFFICE-Konvertierung und die Sicherheit von pdftk-java zu überprüfen.
- Senden Sie eine Passwort-Reset- oder Testgenehmigungsbenachrichtigung, um SMTP zu überprüfen.
- Erstellen oder Wiederherstellen eines Testformulars und Bestätigen von generiertem Code, Cache und Webroot-Berechtigungen.