Blog

Schritt 5: Dreamfactory installieren

Installation starten

Zur Installation solltest Du Dich mit ssh mit dem neuen Benutzerkonto beim Server anmelden (z.B. rudi).

Dann ein neues Verzeichnis anlegen, in dem Dreamfactory installiert wird. Ich bin der Empfehlung gefolgt, das Verzeichnis /opt/dreamfactory zu erstellen und für die Installation vorzusehen. Wichtig ist, dass wir dem Nutzer über KeyHelp für php scripts die Berechtigungen für dieses Verzeichnis einräumen und DocumentRoot für den Apache Server neu einstellen. Aber dazu gibt es später noch mehr Details.

sudo mkdir /opt/dreamfactory

legt das Verzeichnis an und trägt aufgrund der Nutzung von sudo root als Besitzer und Gruppe ein. Denn dieses Verzeichnis darf nur ein Administrator hier anlegen. Deshalb als nächstes den Besitzer ändern:

sudo chown -R rudi:www-data /opt/dreamfactory/

Damit wird als neuer Besitzer rudi und als neue Gruppe www-data eingetragen. Kannst Du mit

ls -l /opt

noch einmal bestätigen. Jetzt wird eine Kopie von Dreamfactory von Github geholt und in dem neuen Verzeichnis abgelegt:

cd /opt/dreamfactory
git clone https://github.com/dreamfactorysoftware/dreamfactory.git ./

Dann geht es weiter mit Composer:

composer install --no-dev --ignore-platform-reqs

Als nächstes wird das Environment festgelegt (z.B. welche Datenbankengine die Dreamfactory Tabellen aufnimmt.):

php artisan df:env

Dazu die Option [1] mysql wählen und folgende Einträge machen:

    • mysql host: localhost
    • port: einfach durch Drücken der RETURN Taste die 3306 bestätigen
    • database name: dreamfactory
    • database username: dfadmin
    • database password:

mit

php artisan df:setup

die Datenbank füllen lassen und einen ersten DF first admin anlegen:

Alle Eingaben (einschließlich Telefonnummer) machen, sonst akzeptiert der Installer den Nutzer nicht. Und wie immer das Nutzerpasswort in den Passwortmanager speichern.

Jetzt noch einmal die Rechte anpassen und den Cache clearen:

sudo chown -R www-data:rudi storage/ bootstrap/cache/
sudo chmod -R 2775 storage/ bootstrap/cache/
php artisan cache:clear

Apache einrichten

In KeyHelp auf die Domain gehen und dort unter der Domain (www.rudi-mustermann.de) auf den Stift klicken und unter Apache-Einstellungen folgendes eintragen:

Da ich unter Sicherheit nur den sicheren Zugriff über https zulasse, muss ich auch nur hier unter HTTPS die Einträge für Apache anpassen. Die erste Anweisung legt DocumentRoot in einem Bereich fest, den KeyHelp für den Benutzer nicht vorgesehen hat. Deshalb ist noch folgende Einstellung wichtig: Unter Benutzerverwaltung den Benutzer (rudi) bearbeiten und unter dem Reiter < / > PHP noch den open_basedir Eintrag ergänzen:

##DOCROOT##/www:##DOCROOT##/files:##DOCROOT##/tmp:/opt/dreamfactory/

Zuletzt steht noch ein Neustart des Apache Servers an. Dazu in ssh Terminal noch folgendes eingeben:

sudo service apache2 restart

Wenn alles gut gegangen ist, sollte jetzt unter der Adresse:

rudi-mustermann.de 

die Weiterleitung zu www.rudi-mustermann.de und dann zu https://www.rudi-mustermann.de durchgeführt werden und die Dreamfactory Anmeldung erscheinen.

Weiter zu Schritt 6.

Schritt 4: Dreamfactory Installation vorbereiten

Vorbereitung

Firebird 3 installieren

Da es mir um die Nutzung von Firebird geht, installiere ich zunächst Firebird 3. Dazu muss man sich über ssh mit seinem Server verbinden und dann:

apt install firebird3.0-server

den Server und die abhängigen Pakete installieren. Dabei kann man das SYSDBA Kennwort angeben oder durch Zufall erzeugen lassen.

Über die Kommandozeile kann man sich über

isql-fb

mit dem Firebird 3 Server verbinden. Ich finde es aber bequem, dazu die Hilfe eine Programmes zu nutzen. Ich nutze DBBeaver Community Edition. Dort habe ich mir eine Verbindung eingerichtet, die einen SSH Tunnel nutzt, um sich mit dem Server zu verbinden. Kann ich sehr empfehlen.

PHP Module installieren

Um die aktuelle Konfiguration von PHP anzuzeigen, bietet phpinfo() die bequemste Lösung. Dazu musst du auf dein DocumentRoot Verzeichnis gehen. KeyHelp legt das als /home/users//www/<gewählten Unterverzeichnis> fest, also als Beispiel:

cd /home/users/rudi/www/rmustermann

lege dort eine neue Datei an:

nano pi.php

In diese Datei schreibst Du:

und sicherst die Datei.

Im Browser gibst du dann:

https://www.rmustermann.de/pi.php

ein und solltes dann die PHP Infoseite sehen. Der Anfang sieht dann etwa so aus:

Dann kann man hier nachlesen, wie die „manuelle Installation“ läuft. Der Installer, der die Installation vielleicht bequemer ermöglicht, ist erst für Debian 9 und 10 freigegeben. Debian 11 wird wegen dem Fehlen der MS SQL Treiber noch nicht unterstützt, obwohl Microsoft dafür Treiber zur Verfügung stellt.

PHP Voraussetzungen werden dort angegeben mit:

PHP required extensions: Curl, MBString, MongoDB, SQLite, and Zip. You may need to install other extensions depending upon DreamFactory usage requirements. If you don't plan on using MongoDB, please remove the df-mongodb requirement from composer.json, or include the --ignore-platform-reqs option when running composer install.

Unter PHP Info kann man suchen, ob es eine Überschrift mit den einzelnen Komponenten gibt. Curl z.B ist bei mir schon installiert. Ebenso MBString und Zip.

Es fehlen MongoDB, SQLite:

apt install php-mongodb
apt install php-sqlite3

Als nächstes werden GIT und Composer benötigt:

apt install git-all
apt install composer

MariaDB einrichten

Um die Dreamfactory Datenbank vorzubereiten, kannst du über KeyHelp unter Tools „PhpMyAdmin“ auswählen. Dort „mysqladmin“ als Nutzer und das bei der Einrichtung von KeyHelp vergebene MySQL Passwort eingeben. (Es steht noch immer im /root Verzeichnis des Servers.)

In phpMyAdmin eine neue Datenbank (dazu ggf. unter Einstellungen -Navigationspanel – Start noch „zeige Formular zur Datenbankerstellung“ aktivieren)  mit dem Namen dreamfactory erstellen mit Kollektion utf8mb4_general_ci.

Dann einen neuen Nutzer unter Benutzerkonten anlegen. Ich habe ihn dfadmin genannt und ihm ein sicheres Password generiert. Wie vorher empfehle ich das Passwort im Passwortmanager zu speichern. Diesem Nutzer dann alle Berechtigungen für die eben angelegte Datenbank dreamfactory einräumen.

Damit sind die Vorbereitungen abgeschlossen und es geht mit der Installation von Dreamfactory weiter. Da gibt es eine Beschreibung für Ubuntu, die wir auch für Debian nutzen können.

Weiter zu Schritt 5

DF Schritt 3. Erste Einträge in KeyHelp

KeyHelp Login

Über die E-Mail, die als Bestätigung der KeyHelp Installation zugeschickt wurde, oder einfach über die Servernummer als URL

vXXXXXXXXXXXX.supersrv.de

kommt man zum Login Panel, in dem Du den Benutzernamen „keyadmin“ und das Passwort eingibst.

SSH Login

Wenn Du es nicht oder inkorrekt gespeichert hast, verbinde Dich wieder über ssh mit dem Server. Dort meldet sich der Server jetzt auch mit der Info:

This server is powered by KeyHelp!

und weiteren Details zum Server.

Gib hier folgenden Befehl ein:

nano keyhe[tab Taste]

Die [tab Taste] vervollständigt den Namen und durch RETURN wird der Inhalt angezeigt. Dort stehen die beiden Passwörter für KeyHelp und mysql. (nano wird übrigens über CTRL X verlassen.)

Das mysql Kennwort bitte wieder in den Passwortmanager eintragen und …

Zurück zum KeeHelp Login

das KeyHelp Kennwort in den Dialog:

Dann öffnet der Startbildschirm:

Schau Dich einfach mal im Panel um, in dem du auf der linken Seite die Menüs anschaust.

Benutzerverwaltung

Dann wähle links Benutzerverwaltung:

Wähle dort „Benutzer hinzufügen“ und lege einen neuen Nutzer für Linux an. Man sollte immer einen anderen Nutzer als root haben, mit dem man sich auch anmeldet.

Trage Benutzername (in der Regel ein Vorname in Kleinbuchstaben, z.B. rudi), eine gültige E-Mailadresse und ein Passwort ein.

Setze ein Häkchen bei „System Domain erstellen“ und wähle dann „speichern“.

Weitere Einstellungen über SSH

Logge dich von der ssh aus (exit eingeben) und melde dich neu an. Gib dann an dem Prompt # ein:

id rudi

Das System kennt jetzt den neuen user rudi und zeigt seine id und seine Gruppenzugehörigkeiten an. Füge ihn auch der Gruppe „sudo“ (superuser do) zu:

usermod -aG sudo rudi

und am besten auch noch der Gruppe „www-data“:

usermod -aG www-data rudi

und prüfe mit „id rudi“, ob er jetzt auch der sudo und www-data Gruppe angehört.

Domains

Gehe anschließend wieder zum KeyHelp Startbildschirm und wähle dort „Domains“ aus. Dort gibt es bereits eine Domain für den neuen user, da wir oben das Häkchen gesetzt haben.

Wähle dort „Domain hinzufügen“ und als Besitzer den neu hinzugefügten user und dann „weiter“.

Trage dort eine Hauptdomain von netcup ein:

rudi-mustermann.de

und setzte das Häkchen bei „www Subdomain erstellen“. Wähle ein lokales Verzeichnis als Ziel z.B.:

rmustermann

und wähle durch das Häkchen E-Mail-Domain „ja“. Nach „speichern“ gibt es zwei neue Domains, die von KeyHelp konfiguriert wurden.

Anschließend solltest du den Zugriff von

rudi-mustermann.de

auf

www.rudi-mustermann.de

umleiten. Das geht einfach über KeyHelp. Dort auf „Domains“ gehen und bei der Domain rudi-mustermann auf den Stift auf der rechten Seite klicken. Dort den Punkt „Weiterleitung“ auswählen und als Ziel-URL:

https://www.rudi-mustemann.de auswählen.

Den https Zugang müssen wir jetzt noch einrichten.

Dazu zurück zur Domain Auswahl gehen und den Stift neben www.rudi-mustermann auswählen.

Dann auf den Reiter Sicherheit gehen.

Sicherheit

Auf dieser Seite das „Let’s Encrypt Zertifikat“ aufwählen. Wenn Du willst, dass sich ein User nur über https://www.rudi-mustermann.de anmelden kann (nur dass werden die Daten verschlüsselt übertragen), dann aktiviere  auch noch „Sichere Verbindung erzwingen“. Mit „Speichern“ werden die Einträge dann aktiv.

Benutzerverwaltung weitere Einträge

Gehe in KeyHelp nochmal zur Benutzerverwaltung und dort auf Ressourcen und Berechtigungen. Dort würde ich folgendes empfehlen:

      • Speicherplatz : 1 GB
      • Domains: 2
      • Subdomains: 4
      • Datenbanken: 3
      • FTP Benutzer: 1
      • Berechtigungen:
        • FTP / PHP / Backup Verwaltung / Dateimanager / Control Panel Zugriff

Dann unter dem Reiter mal reinschauen:

es gibt dort einen Eintrag:

open_basedir

den müssen wir später erweitern, damit der Nutzer über PHP auf das Dreamfactory Install Verzeichnis zugreifen darf!

Außerdem gibt es hier einen Eintrag:

disable_functions

in dem einige Funktionen stehen, die für den Benutzer deaktiviert sind. Ich habe in den Versuchen vorher über das Aktivieren und Auswerten der Logfiles festgestellt, dass eine Reihe von deaktivierten Funktionen den Aufruf der Dreamfactory Konsole verhindern. Deshalb habe ich alle Funktionen hier gelöscht und dem Nutzer damit die nötigen Rechte eingeräumt.

Snapshot anlegen

Nachdem jetzt schon einige Arbeit in das Setup geflossen ist, empfehle ich im Netcup SCP (siehe Schritt 1) an der Stelle unter Medien, wo wir das zu installierende Image ausgewählt haben, den Reiter „snapshot“ zu wählen, einen Namen und eine Beschreibung einzugeben und „snapshot erstellen“ anklicken. Der Server wird dann gestoppt, der Snapshot erstellt und der Server wieder gestartet.

Wenn Du später einmal alles „zerschossen“ hast und weder über KeyHelp noch über SSH auf den Server kommst, kannst du z.B. diesen Snapshot zurückspielen und befindest Dich an der Stelle des Setups, an dem wir jetzt angelangt sind.

Weiter zu Schritt 4.

DF Schritt 2: Installation eines Control Panels zur Konfiguration des Servers

Nachdem der Server nun installiert ist, wie geht es jetzt weiter?

Das hängt davon ab, wie gut Deine Linux Administratorfähigkeiten sind. 🙂

Ich habe mich entschlossen KeyHelp zu installieren. Das vereinfacht die Grundinstallation und KeyHelp schreibt wichtige Einträge in verschiedenen Konfigurationsdateien. Das macht die Installation von Dreamfactory nicht einfacher, weil man dazu die Konfigurationsdateien eigentlich anpassen müsste, was aber die Control Panel Software nicht mag und auch wieder überschreibt. Aber darum kümmern wir uns später.

Um etwas auf Deinem neuen Server zu installieren, musst du erst einmal darauf zugreifen. Das funktioniert über das netcup SCP (Eintrag: „Bildschirm“) oder über eine Shell mit ssh (Secure Shell). Ich habe mich für die zweite Version entschieden. Ich arbeite mit einem MacBook und nutze dazu das „Terminal Programm“. Das öffne ich und dann gebe ich folgendes ein (natürlich muss hier die korrekte Servernummer vXXXXXXXX angegeben werden):

ssh root@v12345699999999.supersrv.de

Die Shell fragt dann nach dem Passwort. Dort muss dann das Passwort eingegeben werden, welches im Schritt 1 am Ende angezeigt wurde.

Man erhält dann, wenn die Anmeldung funktioniert hat, einen Eingabeprompt:

#

Jedes Linuxkomando, was Du hier eingibst, wird auf dem neuen V-Server ausgeführt.

Wie bereits erwähnt, möchte ich die KeyHelp Software installieren.

Auf der KeyHelp Seite habe ich oben im Menü „KeyHelp“ „Installation“ ausgewählt, dann landet man hier:

Einfach den Befehl mit dem roten Button in die Zwischenablage kopieren und dann in die Shell kopieren und abschicken.

Es erscheint dann in der Shell folgendes Menü, in dem Du „n“ oder einfach nur RETURN drücken musst:

Im nächsten Menü habe ich „4“ gewählt, um meine E-Mailadresse upzudaten. Dann „5“, um eine Mail nach Fertigstellung zu erhalten. Das Passwort unter 3 wieder kopieren und in den Passwortmanager speichern. Das benötigst du für den Panelzugriff!

Dann mit „s“ RETURN starten und zuschauen, wie alle Module installiert werden. Am Ende erscheint etwa folgende Ausgabe:

Wichtig ist hierbei noch die Info, dass in der Datei: /root/keyhelp_login_data… die Zugangsdaten stehen. Dort findet man das oben unter 3 angezeigte Passwort (was ja schon im Passwortmanager stehen sollte), aber auch das mysql Passwort! KeyHelp nutzt eine eigene mysql Datenbank für die Verwaltung des neuen V-Servers. Auch Dreamfactory wird später die mysql Datenbank nutzen.

Das System wird neu gestartet und man erhält unter der oben unter 5 angegebenen E-Mailadresse eine Bestätigung und einen Link zum KeyHelp Control Panel.

Achtung: Die E-Mail landet öfters im Spam-Ordner.

Weiter zu Schritt 3.

DF Schritt 0: Dreamfactory aufsetzen Schritt für Schritt

Nachdem ich jetzt bereits mehrere Versuche hinter mir habe, bei denen ich immer etwas dazugelernt habe, möchte ich hier einmal eine Schritt für Schritt Anleitung für das Aufsetzen eine V-Servers für die Nutzung von Dreamfactory zur Verfügung stellen.

1. Aufsetzen des Servers

2. Installation eines Control Panels zur Konfiguration des Servers

3. Erste Einträge in KeyHelp

4. Dreamfactory Installation vorbereiten

5. Dreamfactory installieren

6. Dreamfactory starten

DF Schritt 1: Aufsetzen des Servers

Ich habe mich für einen V-Server von netcup.de entschieden. Auf diesem werde ich mit Debian 11 Linux in der Minimalversion installieren. Außerdem habe ich bei netcup eine Domain bestellt, damit ich über eine eigene Domain erreichbar bin (ich nenne sie jetzt als Beispiel mal):

rudi-mustermann.de

Da ich den V-Server schon habe, logge ich mit in das netcup CCP ein.

Nach Eingabe von Kundennummer und Passwort gelangt man in sein CCP. Unter „Produkte“ findet man seinen Server.

Und auch den Link zum Verwaltungspanel unten in der Übersicht.

Über das Verwaltungspanel wählt man oben links seinen Server und dann Medien in der linken Seitenleiste. Oben habe ich „Images“ ausgewählt und dann auf „Debian (11) Bullseye“ geklickt, um Debian 11 zu installieren:

Dann im Schritt 2 auf „Minimal / minimal System with ssh preinstalled“ angeklickt:

Im Schritt 3 habe ich die untere Option „Eine große Partition …“ gewählt:

Im letzten Schritt musste ich nochmal das SCP Passwort eingeben und dann unten „Installieren“ auswählen:

Da im Laufe der weiteren Installation noch viele Passwörter erzeugt werden, empfehle ich Die einen Passwortmanager einzusetzen. Ich nutze KeePassXC.

Nach ein paar Minuten ist der Server installiert und die Infos (die ich hier natürlich nicht zeigen möchte) werden auf dem Bildschirm angezeigt. Das wichtigste ist das root Passwort, welches unten angezeigt wird und im Passwortmanager eingetragen werden sollte.

So, der erste Schritt ist abgeschlossen. 😊

Weiter zu Schritt 2.

Firebird Datenbank in Dreamfactory

Vor einigen Wochen habe ich mich entschlossen das Dreamfactory Framework für eine automatische API Generierung für den Zugriff auf Firebird Datenbanken zu nutzen.

Nach einigen Anlaufschwierigkeiten gelang es über die DF Oberfläche als auch über API Aufrufe aus meine iOS Anwendung auf Tabellen der Datenbank zuzugreifen.

Dann habe ich versucht auf Stored Procedures zuzugreifen, was jedoch nicht funktionierte.

Willkommen

Willkommen auf der Homepage von Albert Zuzej.

Ich habe gerade einen Blog hinzugefügt, in dem ich eine Schritt für Schritt Anleitung für die Installation eines Dreamfactory Frameworks vorstelle. Die Beiträge sind der neuen Kategorie „DF Schritt für Schritt“ zugeordnet. Wenn Dich das Thema interessiert, starte einfach hier.