Wie stellt man eine PHP-Anwendung bereit?

Back4app PHP Abdeckung

Dieser Artikel befasst sich mit PHP, einer der beliebtesten Skriptsprachen, die das World Wide Web betreiben. Wir werden seine Vor- und Nachteile sowie seine Einsatzmöglichkeiten untersuchen.

Am Ende dieses Artikels werden Sie in der Lage sein, eine einfache PHP-Anwendung zu booten, sie zu docken und in Back4app Containern bereitzustellen.

PHP-Übersicht

PHP (kurz für “PHP: HyperText Processor”) ist eine populäre freie Allzweck-Skriptsprache. Sie wurde 1993 von Rasmus Lerdorf entwickelt und später im Jahr 1995 veröffentlicht.

PHP wurde ursprünglich für die Webentwicklung entwickelt, wird aber inzwischen auch für serverseitige Skripte, Befehlszeilenskripte und die Erstellung von Desktop-Anwendungen verwendet.

Das Tolle an PHP ist, dass es direkt in HTML eingebettet werden kann. Es ist nicht nötig, lange Befehle zu verwenden, um HTML auszugeben (wie es in C oder Perl der Fall ist). Hier ist ein kurzes Beispiel:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>My first PHP website</title>
    </head>
    <body>
        <?php
            $cool_scripting_language = "PHP";
            echo "$cool_scripting_language is a cool scripting language!";
        ?>
    </body>
</html>

PHP wird ausgeführt, wenn ein Benutzer diese Website aufruft, und es wird nur die verarbeitete HTML-Ausgabe zurückgegeben. In unserem Fall eine Meldung, die besagt: “PHP ist eine coole Skriptsprache”. Das PHP wird serverseitig und nicht im Browser (wie JavaScript) ausgeführt.

Es ist umstritten, ob PHP eine vollständig objektorientierte Sprache ist. Es unterstützt jedoch objektorientierte Standardmerkmale wie Namespaces, Klassen und Objekte.

Zum Zeitpunkt der Erstellung dieses Dokuments ist die neueste stabile Version von PHP 8.2, aber viele PHP-Anwendungen arbeiten noch mit älteren Versionen.

Einige Entwickler behaupten, dass PHP im Sterben liegt, aber das ist nicht der Fall. Laut einer Umfrage von W3Techs werden derzeit 77,4 % aller Websites, deren serverseitige Programmiersprache bekannt ist, mit PHP betrieben.

Die Skriptsprache wird auch von stark frequentierten Websites wie Facebook, Wikipedia, Mailchimp und verschiedenen CMS-Programmen verwendet und wurde in der Vergangenheit sogar von YouTube eingesetzt.

Vorteile von PHP

Gute Leistung

PHP ist leistungsfähiger als andere serverseitige Skriptsprachen wie ASP.NET, JSP und Python. Einige Benchmarks zeigen, dass PHP bis zu dreimal schneller als Python ist.

PHP eignet sich am besten für webbezogene Aufgaben, wie die Erstellung von HTML-Seiten, die Bearbeitung von Formularen und die Interaktion mit der Datenbank.

Im Gegenteil, für schwere Rechenaufgaben oder komplexe Algorithmen gibt es mehr optimale Möglichkeiten als PHP.

Plattformübergreifend

PHP ist plattformunabhängig. Es läuft auf verschiedenen Plattformen, darunter Windows, Linux, Unix und Mac. Außerdem ist es mit fast allen gängigen Webservern wie Apache HTTP, Caddy, Nginx, LiteSpeed und so weiter kompatibel.

Die beliebte Skriptsprache kann dank phpdesktop von Czarek Tomczak auch für die Entwicklung von Desktop-Anwendungen verwendet werden. Man kann sich diese Bibliothek wie Electron vorstellen, nur für PHP. Phpdesktop-Anwendungen können unter Windows und Linux ausgeführt werden, aber (noch) nicht unter Mac OS X.

Datenbank-Unterstützung

Die Skriptsprache unterstützt eine Vielzahl von Datenbanken, darunter SQL- und NoSQL-Datenbanken. Die beliebteste Datenbank, die mit PHP verwendet wird, ist MySQL(LAMP-Stack), aber nichts hindert Sie daran, PostgreSQL oder jede andere Art von Datenbank zu verwenden.

Sie können alle PHP-Abstraktionsschichten und herstellerspezifischen Datenbankerweiterungen auf der offiziellen Website einsehen.

Lebendiges Ökosystem

PHP ist so beliebt wie es ist, dank seines lebendigen Ökosystems. Viele großartige PHP-Frameworks beschleunigen den Entwicklungsprozess erheblich, vereinfachen die Codebasis und helfen Ihnen, saubereren/standardisierteren Code zu schreiben.

Die beliebtesten PHP-Frameworks zum Zeitpunkt der Erstellung dieses Artikels sind:

Weitere großartige Frameworks und Ressourcen finden Sie unter awesome-php auf GitHub.

Es gibt auch viele CMS, die PHP verwenden, wie WordPress, Joomla, Drupal und Magento.

Leicht zu lernen

PHP ist eine anfängerfreundliche Sprache mit einer einfachen Syntax. Sie ist relativ leicht zu erlernen, wenn Sie mit den Grundlagen des World Wide Web (WWW), HTML, CSS und JavaScript vertraut sind. Viele Entwickler können PHP schreiben, aber nur wenige können ein wartbares PHP schreiben, das sauberen Codekonventionen folgt.

Beschränkungen von PHP

Begrenzte Debugging-Tools

PHP ist schlecht im Umgang mit Fehlern und verfügt im Vergleich zu anderen beliebten Programmiersprachen über keine Debugging-Tools. Wenn Ihr Projekt fortgeschrittenes Debugging erfordert, müssen Sie höchstwahrscheinlich Software von Drittanbietern wie Xdebug, Krumo oder Kint verwenden.

Einige gängige IDEs wie PhpStorm und Visual Studio haben auch integrierte PHP-Debugging-Tools.

Lose getippt

Wie bereits erwähnt, ist PHP eine Skriptsprache und keine Programmiersprache. Eine der häufigsten Eigenschaften von Skriptsprachen ist, dass sie locker typisiert sind.

Das bedeutet, dass der Variablentyp nicht explizit deklariert werden muss, bevor er verwendet werden kann. Darüber hinaus kann er sich auch während der Laufzeit jederzeit ändern.

Dies führt dazu, dass PHP-Anwendungen fehleranfälliger und schwieriger zu debuggen sind.

Sicherheitsmängel

Im Laufe der Jahre waren PHP-Anwendungen immer wieder Ziel von Hackerangriffen. Das liegt vor allem daran, dass PHP ein Open-Source-Programm ist und neue Entwickler nur geringe Einstiegskosten haben.

Zu den bekanntesten PHP-Schwachstellen gehören SQL-Injektionen, Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF) und Remote Code Execution (RCE).

Denken Sie daran, dass diese Schwachstellen durch die Einhaltung sicherer Programmierpraktiken verhindert werden können. Achten Sie darauf, Eingaben immer zu bereinigen und niemals vom Benutzer bereitgestellte Eingaben auszuführen.

Vanilla PHP ist veraltet

Vanilla PHP (d. h. PHP ohne Bibliotheken oder Frameworks) kann für die Entwicklung moderner Anwendungen ziemlich veraltet sein. Um sichere Anwendungen schnell zu erstellen, müssen Sie ein Framework verwenden.

Optionen für die PHP-Bereitstellung

PHP-Anwendungen können auf verschiedenen Plattformen bereitgestellt werden. Die gängigsten Cloud-Modelle für die Bereitstellung von PHP-Anwendungen sind:

  1. Infrastruktur als Dienstleistung (IaaS),
  2. Plattform-as-a-Service (PaaS),
  3. Container als Dienstleistung (CaaS).

Das beste Cloud-Modell für die Bereitstellung von PHP-Anwendungen gibt es nicht. Letztlich hängt die Wahl von Ihren Projektanforderungen, Ihrem Budget und dem gewünschten Abstraktionsgrad ab.

In der Regel entscheiden sich Entwicklerteams für PaaS oder CaaS, da diese einfacher zu verwalten und nicht viel teurer als IaaS sind. Werfen wir einen Blick auf einige der besten PHP-Hosting-Anbieter.

Back4app-Behälter

Back4app Containers ist ein hervorragendes Containers as a Service (CaaS) Angebot von Back4app. Die Plattform ermöglicht Entwicklern die Erstellung, Skalierung und schnelle Bereitstellung von Docker-Anwendungen.

Das Deployment einer Anwendung auf Back4app Containers ist so einfach wie das Importieren Ihres GitHub-Repositorys und das Klicken auf eine Schaltfläche. Die Plattform verfügt über ein großartiges System für kontinuierliche Integration und Bereitstellung, unterstützt Bereitstellungen ohne Ausfallzeiten, Verfolgung der Bereitstellung in Echtzeit und vieles mehr!

Ein weiterer Vorteil von Back4app Containers ist die kostenlose Variante, die sich hervorragend für das Hosting kleiner Anwendungen eignet. Wenn Ihre Anwendung skaliert, können Sie nach einem einfachen und vorhersehbaren Preisplan auf Premium-Tiers aufsteigen.

Google Cloud Run

Google Cloud Run ist eine vollautomatische Containers-as-a-Service-Plattform (CaaS) für die Bereitstellung und Skalierung von containerisierten Anwendungen. Sie ist seit 2019 öffentlich verfügbar und hat seitdem stark an Popularität gewonnen.

Cloud Run ist relativ einfach zu bedienen, insbesondere wenn Sie mit anderen GCP-Produkten vertraut sind. Zu den Vorteilen von Cloud Run gehören kostenlose SSL-Zertifikate, gute Integration mit anderen GCP-Lösungen und Skalierung auf Null.

Zum Zeitpunkt der Erstellung dieses Artikels bietet Google 300 $ kostenloses Guthaben für neue Nutzer.

Heroku

Heroku ist eine der bahnbrechenden Platform-as-a-Service-Lösungen (PaaS). Sie wurde 2007 gegründet und ist auch heute noch sehr beliebt.

Sie bietet umfassende Unterstützung für verschiedene Programmiersprachen, darunter PHP, Java, Node.js, Go, Scala und Python. Die Plattform verfügt über eine elegante und benutzerfreundliche Benutzeroberfläche, ermöglicht eine hohe Skalierbarkeit und bietet eine große Auswahl an Add-ons.

Heroku bot früher einen kostenlosen Plan und kostenlose PostgreSQL- und Redis-Instanzen an, hat aber beschlossen, diese im Jahr 2022 aufgrund von Bedenken in Bezug auf Betrug und Bots zu streichen. Nichtsdestotrotz bleibt Heroku eine hervorragende Plattform für die Bereitstellung von Apps.

AWS Elastic Beanstalk

AWS Elastic Beanstalk (EB) ist eine großartige Platform-as-a-Service-Lösung (PaaS). Es handelt sich um eine ausgereifte und gut getestete Plattform, die bereits 2011 eingeführt wurde. EB unterstützt von Haus aus Go, Java, Node.js, PHP, Python und Ruby und ermöglicht die Bereitstellung von Docker-Anwendungen.

Das Beste an Elastic Beanstalk ist, dass Sie es mit anderen AWS-Lösungen kombinieren können, z. B. AWS S3, AWS RDS, AWS CloudFront und so weiter. AWS bietet eine kostenlose Stufe für neue Kunden.

PHP-Bereitstellungsprozess

In diesem Abschnitt sehen wir uns an, wie man eine einfache Laravel-Webanwendung auf Back4app Containern bootet und bereitstellt.

Voraussetzungen

  • Grundlegende Kenntnisse in PHP.
  • Grundlegendes Verständnis von Docker und Containertechnologie.
  • Composer zusammen mit Node.js und Docker auf Ihrem lokalen Rechner installiert.

Wenn Sie mit der Technologie der Containerisierung nicht vertraut sind, lesen Sie bitte Was sind Container?

Was ist Laravel?

Laravel-Logo

Laravel ist ein großartiges PHP-Framework, mit dem Sie schnell Anwendungen mit einer ausdrucksstarken und eleganten Syntax erstellen können. Das Ergebnis ist ein sauberer und prägnanter Code.

Das Framework basiert auf dem Model-View-Controller (MVC) Architekturmuster. Das Beste von allem ist, dass Laravel völlig kostenlos und Open-Source ist.

Es wurde ursprünglich im Jahr 2011 veröffentlicht und ist derzeit eines der beliebtesten PHP-Frameworks. Aufgrund seiner Flexibilität kann es für die Erstellung jeder Art von Webanwendung verwendet werden.

Laravel Vorteile

  • Leistungsstark und flexibel.
  • Vereinfacht die Arbeit mit der Datenbank (über Eloquent ORM).
  • Integrierte Authentifizierung und Autorisierung.
  • Integrierte Sicherheitsmaßnahmen (CSRF, XSS).

Einige Laravel-Alternativen sind Symfony, CodeIgniter, CakePHP und Laminas Project.

App erstellen

Die folgenden Schritte setzen voraus, dass Sie Composer installiert haben. Wenn Sie ihn nicht haben, laden Sie ihn von der offiziellen Website herunter.

Beginnen Sie mit der Erstellung eines neuen Laravel-Projekts über die Composer-Befehlszeilenschnittstelle:

$ composer create-project laravel/laravel sample-app

Sie können sample-app auch durch einen eigenen Namen ersetzen.

Dieser Befehl erstellt ein neues Laravel-Projekt und die Standard-Verzeichnisstruktur. Darüber hinaus werden alle Abhängigkeiten über composer install installiert. Der Befehl sollte höchstens drei Minuten dauern.

Sobald dies geschehen ist, werden Sie die folgende Verzeichnisstruktur sehen:

sample-app/
├── app/                   contains the core code of your application
│   ├── Console
│   ├── Exceptions
│   ├── Http
│   ├── Models
│   └── Providers
├── bootstrap              is used to bootstrap the framework
├── config                 contains all your configuration files
├── database               contains database factories, migrations, seeders
├── public                 contains your index.php and static assets (JS, images, CSS)
├── resources              contains all your views and templates (along with raw assets)
├── routes                 is used to define all your application endpoints
├── storage                contains logs and other auto-generated stuff
├── tests                  can be utilized for automatic testing
└── vendor                 contains your Composer dependencies

Starten Sie anschließend den Entwicklungsserver mit dem folgenden Befehl:

$ php artisan serve

INFO  Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the server.

Öffnen Sie abschließend Ihren bevorzugten Webbrowser und navigieren Sie zu http://localhost:8000/. Sie sollten die Standard-Laravel-Indexseite sehen.

Laravel-Index-Seite

App modifizieren

In diesem Abschnitt werden wir die Anwendung leicht modifizieren, indem wir einen neuen API-Endpunkt registrieren.

Wie bereits im vorherigen Abschnitt erwähnt, werden alle Routen im Ordner routes definiert. Der Ordner ” routes” enthält die folgenden Dateien:

routes/
├── api
├── channels
├── console
└── web

Das Web-Verzeichnis definiert Endbenutzer-Routen, api für API-Routen, console für die Definition von Konsolenbefehlen und schließlich channels für Ereignisübertragungskanäle.

Vor Laravel 5.3 gab es nur eine einzige Routes-Datei, die sich unter app/Http/routes.php befand.

Navigieren Sie zu routes/api.php und registrieren Sie einen neuen API-Endpunkt wie folgt:

<?php

// routes/api.php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

// new endpoint
Route::get('/', function () {
    return response()->json([
        'detail' => 'Back4app Containers rocks!',
    ]);
});

Gut, das war’s.

Starten Sie den Entwicklungsserver erneut (falls er noch nicht läuft) und navigieren Sie zu http://localhost:8000/. Sie sollten immer noch in der Lage sein, die Standard-Laravel-Seite zu sehen, aber wenn Sie zu /api/ navigieren, sollten Sie die folgende Meldung sehen:

{
    "detail": "Back4app Containers rocks!"
}

Dockerize-App

In diesem Abschnitt werden wir unsere Laravel-App mithilfe eines Dockerfiles andocken.

Dockerdatei

Ein Dockerfile ist eine reine Textdatei, die alle Anweisungen enthält, die die Docker-Engine ausführen muss, um ein Docker-Image zu erstellen und auszuführen. Die Anweisungen sind in der Regel in Großbuchstaben geschrieben und werden von einer bestimmten Anzahl von Argumenten gefolgt. Beispiel:

INSTRUCTION arg1 arg2 ... argn

Erstellen Sie eine Dockerdatei im Stammverzeichnis des Projekts mit folgendem Inhalt:

FROM php:8.1-apache

# Set the working directory
WORKDIR /var/www/html

# Install the necessary libraries
RUN apt-get update && apt-get install -y \
    libonig-dev \
    libzip-dev

# Install PHP extensions
RUN docker-php-ext-install \
    mbstring \
    zip

# Copy over the Laravel project
COPY . .

# Install Composer along with the dependencies
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
RUN composer install

# Change ownership of our applications
RUN chown -R www-data:www-data /var/www/html

# Copy over the .env file and generate the app key
COPY .env .env
RUN php artisan key:generate

# Expose port 80
EXPOSE 80

# Adjusting Apache configurations
RUN a2enmod rewrite
COPY apache/apache-config.conf /etc/apache2/sites-available/000-default.conf

Dieses Dockerfile verwendet php:8.1-apache als Basis-Image, installiert die erforderlichen Betriebssystem-Abhängigkeiten und kopiert das Projekt. Anschließend werden die PHP-Abhängigkeiten über Composer installiert, ein Laravel-Schlüssel erzeugt, Port 80 freigegeben und schließlich die Apache-Konfiguration kopiert.

Wenn Sie mehr über Dockerfiles erfahren möchten, lesen Sie die Dockerfile-Referenz.

.dockerignore

Wir können eine .dockerignore-Datei verwenden, um die Bildgröße zu verringern. Diese Datei funktioniert ähnlich wie eine .gitignore-Datei. Sie ermöglicht es uns, bestimmte Dateien und Verzeichnisse auszulassen, die nicht in das Abbild aufgenommen werden sollen.

Erstellen Sie eine .dockerignore-Datei im Stammverzeichnis des Projekts mit folgendem Inhalt:

/.phpunit.cache
/node_modules
/public/build
/public/hot
/public/storage
/storage/*.key
/vendor
.phpunit.result.cache
auth.json
npm-debug.log
yarn-error.log
/.fleet
/.idea
/.vscode

Sie können die .dockerignore-Datei nach Ihren Bedürfnissen anpassen.

Erstellen, Ausführen und Testen

Bevor Sie versuchen, ein Image zu erstellen, sollten Sie sicherstellen, dass Sie Docker installiert haben:

$ docker --version

Docker version 20.10.22, build 3a2c30b

Sobald Sie das überprüft haben, können Sie das Bild erstellen:

$ docker build -t laravel-sample:1.0 .

Befehlsübersicht:

  1. docker build wird verwendet, um das Image zu erstellen.
  2. -t laravel-sample:1.0 markiert das Bild (Bildnamen haben normalerweise die Struktur name:version ).
  3. . gibt den Build-Kontext an. Das ist in unserem Fall die Projektwurzel.

Verwenden Sie anschließend das neu erstellte Image, um einen Container zu starten:

$ docker run -p 80:80 --name laravel-sample-container -d laravel-sample:1.0

Befehlsübersicht:

  1. docker run wird verwendet, um einen Container zu starten.
  2. -p 80:80 bindet den Port 80 auf dem Host an 80 im Container.
  3. --name laravel-sample-container gibt den Containernamen an.
  4. -d führt das Bild im losgelösten Modus aus, d.h. ohne den Terminal zu belegen.
  5. laravel-sample:1.0 teilt der Docker-Engine mit, welches Image verwendet werden soll.

Wenn Sie nun die laufenden Container überprüfen, sollten Sie laravel-sample-container sehen:

$ docker ps

CONTAINER  IMAGE               COMMAND          CREATED  PORTS              
b0bfbd     laravel-sample:1.0  "docker-php..."  2s ago   0.0.0.0:80->80/tcp  laravel

Prüfen Sie abschließend, ob Sie die App sehen können, indem Sie http://localhost/ in Ihrem bevorzugten Webbrowser aufrufen.

Auf GitHub verschieben

Um Ihre Anwendung auf Back4app Containers bereitzustellen, müssen Sie zunächst Ihren Quellcode auf GitHub hochladen. Back4app Containers verwendet ein CI/CD-System, das automatisch deployt, wenn Sie Ihren Code in einen bestimmten Zweig übertragen.

Für die folgenden Schritte benötigen Sie ein GitHub-Konto (und ein installiertes Git ).

Beginnen Sie damit, zu https://github.com zu navigieren und ein neues Repository zu erstellen:

GitHub Repository erstellen

Wählen Sie dann einen passenden Namen und lassen Sie alles andere als Standard. Klicken Sie dann auf die Schaltfläche “Repository erstellen”, um das Repository zu erstellen:

GitHub Dialog Repository erstellen

Sobald Ihr Repository erstellt ist, holen Sie sich die Remote-URL:

GitHub Remote-URL

Navigieren Sie nun zurück zu Ihrem lokalen Projekt und öffnen Sie die Befehlszeile. Um den Code auf GitHub zu pushen, müssen Sie zunächst ein lokales Git-Repository wie folgt initialisieren:

$ git init

Als Nächstes erstellen Sie ein VCS für alle Dateien und einen neuen Commit:

$ git add .
$ git commit -m "init"

Zum Schluss geben Sie den Code in die Fernbedienung ein:

$ git push origin master

Das war’s! Wenn Sie die Seite des GitHub-Repositorys aktualisieren, sollten Sie sehen, dass alle Dateien erfolgreich in das entfernte Git-Repository übertragen worden sind.

App bereitstellen

Um eine App in Back4app Containers bereitzustellen, müssen Sie sich zunächst anmelden (oder registrieren, wenn Sie noch kein Konto haben). Wenn Sie sich anmelden, werden Sie zur Dashboard-Seite der App weitergeleitet.

Verwenden Sie dann die Schaltfläche “Neue App erstellen”, um den Prozess der App-Erstellung zu starten:

Back4app App erstellen

Wählen Sie “Containers as a Service”, da wir eine containerisierte Anwendung bereitstellen wollen:

Back4app App-Typ erstellen

Als nächstes verbinden Sie Ihr GitHub mit Ihrem Back4app-Konto und importieren das Repository, das wir im vorherigen Schritt erstellt haben.

Back4app Containers Import Repository

Geben Sie Ihrer Anwendung einen eigenen Namen und lassen Sie alles andere als Standard.

Um eine App zu erstellen, klicken Sie auf “App erstellen”. Back4app zieht automatisch den Quellcode von GitHub und startet den Prozess zur Erstellung des Docker-Images, sobald Sie darauf klicken. Nach ein paar Minuten ändert sich der Status der App auf “Ready”.

Sobald dies geschehen ist, verwenden Sie den Link auf der linken Seite, um die Seite in Ihrem Browser zu öffnen.

Erfolgreicher Einsatz von Back4app Containern

Das war’s!

Schlussfolgerung

Abschließend haben Sie etwas über PHP, seine Vor- und Nachteile und seine Einsatzmöglichkeiten gelernt. Sie wissen nun, wie Sie eine Laravel-Anwendung booten und auf Back4app bereitstellen können.

Die Themen, die wir in diesem Tutorial behandelt haben, kratzten kaum an der Oberfläche des Laravel-Frameworks. Sie können jederzeit mehr erfahren, indem Sie die Laravel-Dokumentation lesen.

Der Quellcode ist auf dem back4app-containers-php GitHub-Repository verfügbar.

Künftige Schritte

FAQ

Was ist PHP?

PHP ist eine beliebte, kostenlose Skriptsprache für allgemeine Zwecke. Sie wurde für das Web entwickelt, kann aber auch für serverseitige Skripterstellung, Befehle in der Befehlszeile und Desktop-Anwendungen verwendet werden. PHP betreibt derzeit etwa 80 % des Webs und wird von vielen stark frequentierten Websites wie Facebook, Wikipedia, Slack usw. verwendet.

Was sind die Vorteile von PHP?

– Gute Leistung
– Plattformübergreifend
– Datenbankunterstützung
– Lebendiges Ökosystem
– Einfach zu lernen

Was sind die Nachteile von PHP?

– Begrenzte Debugging-Tools
– Schwache Typisierung
– Sicherheitslücken
– Reines PHP ist veraltet

Wie wird eine PHP-App bereitgestellt?

1. Erstelle deine PHP-Anwendung.
2. Dockerisiere deine App und teste sie lokal.
3. Lade den Quellcode auf GitHub hoch.
4. Erstelle ein Konto bei Back4app Containers.
5. Importiere dein GitHub-Repository und klicke auf „Deploy“!


Leave a reply

Your email address will not be published.