{"id":69739,"date":"2024-04-16T15:13:44","date_gmt":"2024-04-16T14:13:44","guid":{"rendered":"https:\/\/kinsta.com\/de\/?p=69739&#038;preview=true&#038;preview_id=69739"},"modified":"2024-04-19T09:22:31","modified_gmt":"2024-04-19T08:22:31","slug":"docker-php-erweiterungen-installieren","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/","title":{"rendered":"Wie man PHP-Abh\u00e4ngigkeiten und -Erweiterungen mit Docker installiert"},"content":{"rendered":"<p><a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-docker\/\">Docker<\/a> ist eine beliebte <a href=\"https:\/\/kinsta.com\/de\/blog\/open-source-vs-closed-source\/\">Open-Source-Plattform<\/a> f\u00fcr die Entwicklung, den Versand und den Betrieb von Anwendungen. Sie kapselt Anwendungen und ihre Abh\u00e4ngigkeiten in Containern, um die Konsistenz zwischen verschiedenen Umgebungen zu f\u00f6rdern. Diese Konsistenz hilft, Probleme im Zusammenhang mit Abh\u00e4ngigkeitskonflikten und Unstimmigkeiten nach dem Motto &#8222;Das funktioniert auf meinem Rechner&#8220; zu vermeiden.<\/p>\n<p>Mit Docker kannst du die notwendigen Abh\u00e4ngigkeiten und Erweiterungen mithilfe von <a href=\"https:\/\/kinsta.com\/de\/blog\/dockerfile-entrypoint\/\">Dockerdateien<\/a> definieren. Das bedeutet, dass deine Anwendungen \u00fcber alle erforderlichen Bibliotheken und Werkzeuge in einer reproduzierbaren, isolierten Umgebung verf\u00fcgen.<\/p>\n<p>Kinstas <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Anwendungs-Hosting<\/a> bietet dynamische Unterst\u00fctzung f\u00fcr benutzerdefinierte <a href=\"https:\/\/docs.sevalla.com\/applications\/build-options\/dockerfile\">Dockerfiles<\/a>, mit denen du eine gr\u00f6\u00dfere Kontrolle \u00fcber die Umgebung deiner Anwendung hast. Mit einem Dockerfile kannst du fast jede Sprache verwenden &#8211; du bist nicht auf die Sprachen beschr\u00e4nkt, die von <a href=\"https:\/\/docs.sevalla.com\/applications\/build-options\/nixpacks\">Nixpacks<\/a> oder <a href=\"https:\/\/docs.sevalla.com\/applications\/build-options\/buildpacks\">Buildpacks<\/a> unterst\u00fctzt werden.<\/p>\n<p>In diesem praktischen Artikel erf\u00e4hrst du, wie du <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-php\/\">PHP-Abh\u00e4ngigkeiten<\/a> und -Erweiterungen in Docker installieren und nutzen kannst.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Warum Docker f\u00fcr die Installation von Abh\u00e4ngigkeiten verwenden?<\/h2>\n<p>Die Verwendung von Docker f\u00fcr die Installation von Abh\u00e4ngigkeiten hat mehrere Vorteile:<\/p>\n<ul>\n<li><strong>Konsistenz der Umgebung<\/strong> &#8211; Mit Docker kannst du deine Anwendung, ihre Abh\u00e4ngigkeiten und ihre Konfigurationen in einen Container packen. Dieser Ansatz stellt sicher, dass die Umgebung, in der deine Anwendung l\u00e4uft, \u00fcber verschiedene Konfigurationen und Systeme hinweg konsistent bleibt, einschlie\u00dflich Entwicklungs-, Test- und Produktionsumgebungen.<\/li>\n<li><strong>Einfaches Einrichten und Aufl\u00f6sen von Abh\u00e4ngigkeiten<\/strong> &#8211; Mit Docker kannst du die Umgebung deiner Anwendung auf jedem Rechner einrichten, der sie unterst\u00fctzt, indem du alle erforderlichen Abh\u00e4ngigkeiten und Konfigurationen angibst. Auf diese Weise vermeidest du Kompatibilit\u00e4tsprobleme und den Aufwand, Abh\u00e4ngigkeiten manuell zu installieren.<\/li>\n<li><strong>Versionskontrolle und Isolierung<\/strong> &#8211; Docker-Container kapseln alle Abh\u00e4ngigkeiten, einschlie\u00dflich ihrer spezifischen Versionen, im Container. Das bedeutet, dass du deine Anwendung und ihre Abh\u00e4ngigkeiten versionskontrollieren kannst, was die Reproduzierbarkeit f\u00f6rdert und Konflikte zwischen verschiedenen Abh\u00e4ngigkeitsversionen vermeidet.<\/li>\n<\/ul>\n<p>Au\u00dferdem bieten Docker-Container eine Isolierung, die Konflikte zwischen den Abh\u00e4ngigkeiten verschiedener Anwendungen, die auf demselben System laufen, verhindert.<\/p>\n<h2>Einrichten deiner Anwendung auf Kinsta<\/h2>\n<p>Das Einrichten deiner Anwendung auf Kinsta ist ganz einfach. Besuche MyKinsta und folge dem <a href=\"https:\/\/kinsta.com\/de\/anmelden\/\" target=\"_blank\" rel=\"noopener noreferrer\">Anmeldeprozess<\/a>. Nach der Registrierung hast du Zugriff auf ein leistungsstarkes Hosting-Dashboard und eine Reihe von Funktionen zur Optimierung von Leistung und Sicherheit.<\/p>\n<p>Das Anwendungs-Hosting von Kinsta <a href=\"https:\/\/docs.sevalla.com\/applications\/overviewapplication-getting-started#main\">unterst\u00fctzt eine Reihe von Programmiersprachen<\/a>, darunter PHP, Python, Node.js und Ruby. Diese umfangreiche Sprachunterst\u00fctzung gew\u00e4hrleistet die Kompatibilit\u00e4t mit verschiedenen Anwendungen und gibt dir die M\u00f6glichkeit, die Sprache zu w\u00e4hlen, die am besten zu deinen Projektanforderungen passt.<\/p>\n<p>Wenn du zum Beispiel eine dynamische Webanwendung mit PHP entwickelst, sorgt die optimierte Hosting-Umgebung von Kinsta f\u00fcr hohe Leistung und Zuverl\u00e4ssigkeit deiner PHP-basierten Projekte. Wenn du eine RESTful API mit <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-node-js\/\">Node.js<\/a> oder eine datengesteuerte Webanwendung mit Python entwickelst, bietet Kinsta die n\u00f6tige Infrastruktur und Unterst\u00fctzung f\u00fcr deine Anwendung.<\/p>\n<p>Um zu erfahren, wie du eine Anwendung mit einem Dockerfile auf Kinsta bereitstellst, verwende diese Anwendung, ein einfaches PHP-basiertes Authentifizierungssystem, das MariaDB zum Speichern von Daten verwendet. Diese Anwendung nutzt auch einige Composer-Pakete, darunter <a href=\"https:\/\/github.com\/Respect\/Validation\" target=\"_blank\" rel=\"noopener noreferrer\">respect\/validation<\/a> f\u00fcr die Eingabevalidierung und <a href=\"https:\/\/github.com\/ircmaxell\/password_compat\" target=\"_blank\" rel=\"noopener noreferrer\">ircmaxell\/password-compat<\/a> f\u00fcr die Passwortverschl\u00fcsselung.<\/p>\n<h2>Bereite deine Docker-Umgebung vor<\/h2>\n<p>Ein Dockerfile ist eine Textdatei, die alle Befehle in der erforderlichen Reihenfolge enth\u00e4lt, die du brauchst, um das gew\u00fcnschte Image zu erstellen. Ein einfaches Dockerfile f\u00fcr eine PHP-Anwendung sieht wie folgt aus:<\/p>\n<pre><code class=\"language-yaml\">FROM php:8.3-cli\nCOPY . \/usr\/src\/myapp\nWORKDIR \/usr\/src\/myapp\nCMD [ \"php\", \".\/your-script.php\" ]<\/code><\/pre>\n<p>Dieses Dockerfile erstellt eine Containerumgebung, in der ein PHP-Skript \u00fcber eine Befehlszeilenschnittstelle (CLI) ausgef\u00fchrt wird. Es beginnt mit der Verwendung des offiziellen PHP-Images mit der CLI-Variante und stellt sicher, dass nur die PHP-Laufzeit in den Container aufgenommen wird.<\/p>\n<p>Anschlie\u00dfend wird der Inhalt des lokalen Verzeichnisses &#8211; das die Dockerdatei enth\u00e4lt &#8211; in das Verzeichnis <strong>\/usr\/src\/myapp<\/strong> im Container kopiert. Nachdem er das Arbeitsverzeichnis auf <strong>\/usr\/src\/myapp<\/strong> gesetzt hat, gibt er das auszuf\u00fchrende PHP-Skript, <strong>your-script.php<\/strong>, mit dem Befehl <code>php<\/code> an.<\/p>\n<p>Das Image enth\u00e4lt viele vorkompilierte PHP-Erweiterungen. \u00dcberpr\u00fcfe also zun\u00e4chst, ob die von dir ben\u00f6tigte Erweiterung installiert ist, indem du den Befehl <code>php -m<\/code> ausf\u00fchrst.<\/p>\n<p>Wenn die von dir ben\u00f6tigte Erweiterung nicht im Basis-Image enthalten ist, stellt Docker die folgenden Hilfsskripte zur Verf\u00fcgung, mit denen du zus\u00e4tzliche Erweiterungen leichter installieren kannst:<\/p>\n<ul>\n<li><code>docker-php-ext-configure<\/code><\/li>\n<li><code>docker-php-ext-install<\/code><\/li>\n<li><code>docker-php-ext-enable<\/code><\/li>\n<\/ul>\n<p>Die Demoanwendung f\u00fcr diesen Lehrgang verwendet zum Beispiel die <a href=\"https:\/\/www.php.net\/manual\/en\/book.mysqli.php\" target=\"_blank\" rel=\"noopener noreferrer\">MySQLi-Erweiterung<\/a>, um mit der MariaDB-Datenbank zu interagieren. Diese Erweiterung ist nicht standardm\u00e4\u00dfig in das Image einkompiliert, also installiere sie mit dem folgenden Befehl in deinem Dockerfile:<\/p>\n<pre><code class=\"language-yaml\">RUN docker-php-ext-install mysqli<\/code><\/pre>\n<p>Um ein Dockerfile f\u00fcr die Demoanwendung zu schreiben, erstelle eine neue Datei namens <strong>Dockerfile<\/strong> im Stammverzeichnis des Projekts. F\u00fcge den folgenden Code in die Datei ein:<\/p>\n<pre><code class=\"language-yaml\">FROM php:8.3-apache\n\n# Install MySQL client, server, and other dependencies\nRUN apt-get update && \\\n\tapt-get install -y \\\n\tdefault-mysql-client \\\n\tdefault-mysql-server \\\n\tgit \\\n\t&& apt-get clean \\\n\t&& rm -rf \/var\/lib\/apt\/lists\/*\n\n# Install mysqli PHP extension for MySQL support\nRUN docker-php-ext-install mysqli<\/code><\/pre>\n<p>Dieser Code legt das <a href=\"https:\/\/hub.docker.com\/_\/php\" target=\"_blank\" rel=\"noopener noreferrer\">offizielle PHP-Image<\/a> &#8211; genauer gesagt Version 8.3 &#8211; mit installiertem Apache als Basis-Image f\u00fcr den Container fest. Dieses Image bietet eine vorkonfigurierte Umgebung f\u00fcr die Ausf\u00fchrung von PHP-Anwendungen mit Apache als Webserver.<\/p>\n<p>Es installiert dann die zus\u00e4tzlichen Abh\u00e4ngigkeiten, die die Demoanwendung ben\u00f6tigt, einschlie\u00dflich <code>default-mysql-client<\/code> und <code>default-mysql-server<\/code>, die die <a href=\"https:\/\/docs.sevalla.com\/databases\/import-export\/mariadb\">MariaDB-Datenbank<\/a> erstellen und mit ihr interagieren.<\/p>\n<p>Schlie\u00dflich installiert das obige Snippet die PHP-Erweiterung <code>mysqli<\/code> mit <code>docker-php-ext-install<\/code>, mit der die Demoanwendung eine Verbindung zur MariaDB-Datenbank herstellen und Operationen durchf\u00fchren kann.<\/p>\n<h2>Verwalten von Abh\u00e4ngigkeiten mit Docker<\/h2>\n<p>Zur Verwaltung von PHP-Abh\u00e4ngigkeiten mit Docker wird <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer<\/a>, ein beliebter Abh\u00e4ngigkeitsmanager f\u00fcr PHP, verwendet. Wenn du Composer in einem Docker-Container installierst, kannst du den Prozess der Installation, Aktualisierung und Verwaltung von PHP-Abh\u00e4ngigkeiten rationalisieren und gleichzeitig die Konsistenz und Reproduzierbarkeit in verschiedenen Umgebungen erleichtern.<\/p>\n<p>Befolge die folgenden Schritte, um Composer f\u00fcr die Verwaltung von Abh\u00e4ngigkeiten in der Demoanwendung zu verwenden. F\u00fcge den Code in jedem der Schritte zu deinem <strong>Dockerfile<\/strong> hinzu.<\/p>\n<ol start=\"1\">\n<li>Installiere Composer mit dem unten stehenden Befehl im Docker-Image:\n<pre><code class=\"language-yaml\"># Install Composer\nCOPY --from=composer\/composer:latest-bin \/composer \/usr\/bin\/composer<\/code><\/pre>\n<p>Dieser Befehl kopiert eine vorgefertigte Composer-Bin\u00e4rdatei aus dem Docker Hub Repository in dein Image. <code>--from=composer\/composer:latest-bin<\/code> gibt das Quellimage an, aus dem die Dateien kopiert werden sollen.<\/p>\n<p>Der Pfad <code>\/composer<\/code> im Quell-Image enth\u00e4lt die zu kopierenden Dateien, w\u00e4hrend der Pfad <code>\/usr\/bin\/composer<\/code> deines Docker-Images das Ziel f\u00fcr diese Dateien ist.<\/li>\n<li>Als N\u00e4chstes legst du das Arbeitsverzeichnis fest, indem du Folgendes ausf\u00fchrst:\n<pre><code class=\"language-yaml\"># Set working directory\nWORKDIR \/var\/www\/html<\/code><\/pre>\n<\/li>\n<li>Kopiere die Dateien <strong>composer.json<\/strong> und <strong>composer.lock<\/strong> in das Image.\n<pre><code class=\"language-yaml\"># Copy composer.json and composer.lock\nCOPY composer.json composer.lock .\/<\/code><\/pre>\n<\/li>\n<li>Installiere die Composer-Abh\u00e4ngigkeiten, die in <strong>composer.json<\/strong> aufgef\u00fchrt sind.\n<pre><code class=\"language-yaml\"># Install Composer dependencies\nRUN composer install --no-dev --optimize-autoloader<\/code><\/pre>\n<p><code>--no-dev<\/code> weist Composer an, die entwicklungsspezifischen Abh\u00e4ngigkeiten zu \u00fcberspringen. <code>--optimize-autoloader<\/code> weist Composer an, den Autoloader f\u00fcr eine bessere Leistung zu optimieren.<\/li>\n<\/ol>\n<p>Du kannst die Abh\u00e4ngigkeiten im Laufe der Zeit aktualisieren und verwalten, indem du die Datei <strong>composer.json<\/strong> nach Bedarf \u00e4nderst, neue Abh\u00e4ngigkeiten hinzuf\u00fcgst, Versionseinschr\u00e4nkungen aktualisierst und Abh\u00e4ngigkeiten entfernst, die nicht mehr ben\u00f6tigt werden.<\/p>\n<p>Nachdem du die notwendigen \u00c4nderungen vorgenommen hast, f\u00fchrst du <code>composer install<\/code> oder <code>composer update<\/code> innerhalb des Docker-Containers aus, um die Abh\u00e4ngigkeiten entsprechend zu installieren oder zu aktualisieren.<\/p>\n<h3>Endg\u00fcltige Konfigurationen anwenden<\/h3>\n<p>Bevor die Anwendung mit Docker funktioniert, musst du die Datenbank und den Datenbankbenutzer anlegen, Umgebungsvariablen setzen und die Projektdateien in das Docker-Image kopieren.<\/p>\n<p>Dazu befolgst du die folgenden Schritte und kopierst jeden Codeschnipsel in deine Dockerdatei.<\/p>\n<ol start=\"1\">\n<li>Setze die Umgebungsvariablen, mit denen sich die PHP-Anwendung mit der MariaDB-Datenbank verbinden wird. Du kannst die Variablen <code>DB_USER<\/code>, <code>DB_PASSWORD<\/code> und <code>DB_NAME<\/code> durch deine bevorzugten Zugangsdaten ersetzen.\n<pre><code class=\"language-yaml\"># Set environment variables\nENV DB_HOST=localhost \\\n\tDB_USER=kinsta_user \\\n\tDB_PASSWORD=your_password_here \\\n\tDB_NAME=kinsta_docker_auth \\\n\t# Path to the Unix socket file used for connecting to the MariaDB server.\n\tDB_SOCKET=\/var\/run\/mysqld\/mysqld.sock<\/code><\/pre>\n<\/li>\n<li>Kopiere die PHP-Anwendungsdateien in das Docker-Image:\n<pre><code class=\"language-yaml\"># Copy PHP application files into the image\nCOPY . .<\/code><\/pre>\n<\/li>\n<li>Kopiere das Startscript in das Image:\n<pre><code class=\"language-yaml\"># Copy the startup script\nCOPY scripts\/start.sh \/usr\/local\/bin\/start.sh<\/code><\/pre>\n<p>Dieses Skript wird beim Start des Containers ausgef\u00fchrt und ist f\u00fcr den Start des Datenbankservers, die Erstellung einer Datenbank, einer Tabelle und eines Benutzers sowie den Start des Apache-Servers verantwortlich. Du wirst dieses Skript sp\u00e4ter erstellen.<\/li>\n<li>F\u00fchre das Skript mit dem <code><a href=\"https:\/\/www.geeksforgeeks.org\/chmod-command-linux\/\" target=\"_blank\" rel=\"noopener noreferrer\">chmod<\/a><\/code> Befehl:\n<pre><code class=\"language-yaml\"># Make the script executable\nRUN chmod +x \/usr\/local\/bin\/start.sh<\/code><\/pre>\n<\/li>\n<li>Zum Schluss f\u00fchrst du das Skript mit dem folgenden Befehl aus:\n<pre><code class=\"language-yaml\"># Execute the startup script\nCMD [\"\/usr\/local\/bin\/start.sh\"]<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>Jetzt, wo das Dockerfile vollst\u00e4ndig ist, erstellst du das zuvor besprochene Startskript.<\/p>\n<p>Erstelle eine neue Datei namens <strong>scripts\/start.sh<\/strong> im Stammordner des Projekts und f\u00fcge den folgenden Code hinzu. Vergewissere dich, dass du die im Dockerfile definierten Anmeldedaten f\u00fcr die Datenbank verwendest.<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# Start MariaDB server\nservice mariadb start\n\n# Wait for MariaDB to be fully initialized (retry up to 30 times, waiting 1  second between each attempt)\nattempt=0\nwhile [ $attempt -lt 30 ]; do\n\t\tif mysqladmin ping &&gt;\/dev\/null; then\n    \t\techo \"MariaDB is up and running.\"\n    \t\tbreak\n\t\telse\n    \t\techo \"MariaDB is not yet available. Retrying...\"\n    \t\tattempt=$((attempt+1))\n    \t\tsleep 1\n\t\tFi\ndone\n\n# If MariaDB failed to start within the specified attempts, exit with an error\nif [ $attempt -eq 30 ]; then\n\t\techo \"Error: MariaDB failed to start within the specified time.\"\n\t\texit 1\nfi\n\n# Set the database name, username, and password\ndbname=\"kinsta_docker_auth\"\ndbuser=\"kinsta_user\"\ndbpassword=\"your_password_here\"\n\n# Create the database if it does not exist\nmysql -u root -e \"CREATE DATABASE IF NOT EXISTS $dbname;\"\n\n# Create a database user and assign privileges to the database\nmysql -u root -e \"CREATE USER '$dbuser'@'localhost' IDENTIFIED BY '$dbpassword';\"\nmysql -u root -e \"GRANT ALL PRIVILEGES ON $dbname.* TO '$dbuser'@'localhost';\"\nmysql -u root -e \"FLUSH PRIVILEGES;\"\n\n# Create users table if it does not exist\nmysql -u root -e \"USE $dbname; CREATE TABLE IF NOT EXISTS users (\n\t\tid INT AUTO_INCREMENT PRIMARY KEY,\n\t\tusername VARCHAR(20) UNIQUE NOT NULL,\n\t\tpassword_hash VARCHAR(255) NOT NULL\n);\"\n\n# Start Apache server\napache2ctl -D FOREGROUND<\/code><\/pre>\n<p>Dieses <a href=\"https:\/\/kinsta.com\/de\/blog\/skriptsprachen\/#8-bash\">Bash-Skript<\/a> startet den MariaDB-Server. Wenn der Server vollst\u00e4ndig initialisiert ist, erstellt es eine Datenbank, einen Benutzer mit entsprechenden Rechten und eine Tabelle in der Datenbank. Zum Schluss startet es den Apache-Server.<\/p>\n<h2>Bereitstellen auf Kinsta<\/h2>\n<p>Bevor du deine Anwendung auf Kinsta bereitstellst, musst du einige Konfigurationen f\u00fcr den Apache-Server vornehmen. Der <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Anwendungs-Hosting<\/a> Dienst von Kinsta hat die Ports <code>80<\/code> und <code>443<\/code> ge\u00f6ffnet, aber wir empfehlen, den Port <code>8080<\/code> zu verwenden, wenn deine Anwendung irgendwelche Ports freigibt.<\/p>\n<p>Standardm\u00e4\u00dfig wartet der Apache-Server auf Verbindungen an Port <code>80<\/code>. Du musst ihn daher so konfigurieren, dass er auf Verbindungen an Port <code>8080<\/code> wartet. Befolge dazu die folgenden Schritte:<\/p>\n<ol start=\"1\">\n<li>Erstelle einen Ordner namens <strong>apache-conf<\/strong> im Stammordner des Projekts.<\/li>\n<li>Erstelle in dem neu erstellten Ordner eine Datei namens <strong>apache-config.conf<\/strong>. F\u00fcge den folgenden Code ein, um den Apache so zu konfigurieren, dass er auf Verbindungen an Port 8080 h\u00f6rt:\n<pre><code class=\"language-bash\">&lt;VirtualHost *:8080&gt;\n\tServerAdmin webmaster@localhost\n\tDocumentRoot \/var\/www\/html\n\n\tErrorLog ${APACHE_LOG_DIR}\/error.log\n\tCustomLog ${APACHE_LOG_DIR}\/access.log combined\n&lt;\/VirtualHost&gt;<\/code><\/pre>\n<\/li>\n<li>Erstelle im Ordner <strong>apache-conf<\/strong> eine neue Datei namens <strong>apache-ports.conf<\/strong> und f\u00fcge den folgenden Code hinzu.\n<pre><code class=\"language-bash\"># Change the Listen directive to listen on port 8080\nListen 8080\n\n# Keep the existing configuration for port 443\n&lt;IfModule ssl_module&gt;\n\tListen 443\n&lt;\/IfModule&gt;\n\n&lt;IfModule mod_gnutls.c&gt;\n\tListen 443\n&lt;\/IfModule&gt;<\/code><\/pre>\n<p>Die Direktive <code>Listen 8080<\/code> weist den Apache an, auf dem Port 8080 auf eingehende Verbindungen zu warten.<\/li>\n<li>Nun musst du das Dockerfile \u00e4ndern, um diese Konfiguration auf den Apache-Server anzuwenden. F\u00fcge in der Dockerdatei diese Befehle direkt nach dem Befehl zum Festlegen des Arbeitsverzeichnisses ein (<code>WORKDIR \/var\/www\/html<\/code>). Sie sind daf\u00fcr verantwortlich, dass die benutzerdefinierten Konfigurationsdateien in die entsprechenden Verzeichnisse kopiert werden.\n<pre><code class=\"language-yaml\"># Set up Apache virtual host\nCOPY apache-conf\/apache-config.conf \/etc\/apache2\/sites-available\/000-default.conf\n\n# Set up Apache ports\nCOPY apache-conf\/apache-ports.conf \/etc\/apache2\/ports.conf<\/code><\/pre>\n<\/li>\n<li>Zum Schluss erstellst du eine <strong>.dockerignore-Datei<\/strong> im Stammverzeichnis des Projekts. Diese Datei enth\u00e4lt eine Liste von Ordnern und Dateien, die nicht in das Docker-Image kopiert werden sollen. F\u00fcge <code>vendor<\/code> hinzu, um den Ordner <strong>vendor<\/strong> auszuschlie\u00dfen.<\/li>\n<\/ol>\n<p>Wenn du alle Konfigurationen vorgenommen hast, kannst du das Projekt auf Kinsta bereitstellen. Lade deine Projektdateien zu deinem bevorzugten Git-Anbieter (<a href=\"https:\/\/docs.sevalla.com\/applications\/git\/bitbucket#grant-access-to-the-kinsta-bitbucket-application\">Bitbucket<\/a>, <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">GitHub<\/a> oder <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a>) hoch und befolge dann die folgenden Schritte.<\/p>\n<ol start=\"1\">\n<li>In deinem <a href=\"https:\/\/my.kinsta.com\/?lang=de\" target=\"_blank\" rel=\"noopener noreferrer\">MyKinsta-Dashboard<\/a> w\u00e4hlst du in der Seitenleiste <strong>Anwendungen<\/strong> aus und klickst auf die Schaltfl\u00e4che <strong>Anwendung hinzuf\u00fcgen<\/strong>.<\/li>\n<li>Auf der Seite <strong>Anwendung hinzuf\u00fcgen<\/strong> w\u00e4hlst du dein Git-Repository und deinen Zweig aus, gibst einen Anwendungsnamen an, w\u00e4hlst den Standort des Rechenzentrums und klickst auf <strong>Weiter<\/strong>.<\/li>\n<li>W\u00e4hle auf der Seite <strong>Build Environment <\/strong>die Option <strong>Use Dockerfile to set up container image<\/strong>. Gib &#8222;Dockerfile&#8220; als <strong>Dockerfile-Pfad<\/strong> und einen Punkt (&#8222;.&#8220;) als <strong>Context<\/strong> an. Klicke auf <strong>Fortfahren<\/strong>.\n<p><figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/build-environment.png\" alt=\"In den Build-Umgebungsoptionen w\u00e4hlst du die Option Dockerfile und gibst den Dateipfad an\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Abschnitt &#8222;Umgebung erstellen&#8220; des Anwendung- hinzuf\u00fcgen-Formulars<\/figcaption><\/figure><\/li>\n<li>Belasse alles auf der Seite <strong>Prozesse ein<\/strong> richten und klicke auf <strong>Weiter<\/strong>.<strong>\u00a0Hinweis<\/strong>: Die Datenbank verliert Daten, wenn du die Anwendung neu startest oder neu bereitstellst. Wenn du dieses Problem l\u00f6sen musst, schau dir den <a href=\"https:\/\/docs.sevalla.com\/applications\/storage\">persistenten Speicher<\/a> von Kinsta an und wende ihn auf dieser Seite an. In diesem Leitfaden wird die Einrichtung des persistenten Speichers nicht behandelt.<\/li>\n<li>Best\u00e4tige die Zahlungsdetails auf der Seite <strong>Zusammenfassung<\/strong> und klicke auf <strong>Jetzt bereitstellen<\/strong>.<\/li>\n<li>Sobald die Bereitstellung abgeschlossen ist, \u00f6ffne die Domain deiner Anwendung, um die Live-Website zu sehen.\n<figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/live-site.png\" alt=\"Die Login-Seite der Live-Site mit Feldern f\u00fcr Benutzernamen und Passwort\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Login-Seite auf der Live-Website<\/figcaption><\/figure>\n<p>Registriere dich f\u00fcr ein Konto, melde dich mit deinen Daten an und \u00fcberpr\u00fcfe, ob du auf die gesch\u00fctzte Seite zugreifen kannst und ob alles wie erwartet funktioniert.<\/p>\n<p><figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/04\/login-homepage.png\" alt=\"Die Startseite der Anwendung des angemeldeten Benutzers \u00f6ffnet sich mit einer personalisierten Willkommensnachricht\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Die Startseite der Anwendung nach dem Einloggen<\/figcaption><\/figure><\/li>\n<\/ol>\n<h2>\u00dcberwache und optimiere deine Anwendung<\/h2>\n<p>Sobald deine Anwendung auf Kinsta l\u00e4uft, ist es wichtig, ihre Leistung zu \u00fcberwachen und zu optimieren. So wird sichergestellt, dass deine Anwendung reibungslos funktioniert und die Ressourcen effizient genutzt werden.<\/p>\n<p>Die Optimierung der Leistung deiner Anwendung ist entscheidend f\u00fcr ein schnelles und reaktionsschnelles Nutzererlebnis.<\/p>\n<p>Kinsta arbeitet st\u00e4ndig an M\u00f6glichkeiten, <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-performance\/\">die Leistung deiner Anwendung zu optimieren<\/a>. Wir bieten umfassende Monitoring-Tools, mit denen du verschiedene Leistungskennzahlen wie Bandbreite, Gesamtaufbauzeit, CPU-Nutzung, Speicherverbrauch, Netzwerkverkehr und Antwortzeiten verfolgen kannst. Du kannst all diese Informationen einsehen, indem du im Kinsta-Dashboard in den Bereich <strong>Analytics<\/strong> deiner Anwendung navigierst.<\/p>\n<p>Wenn du auf ein Problem oder ein unerwartetes Verhalten deiner Anwendung st\u00f6\u00dft, kannst du im Kinsta-Dashboard den Bereich <strong>Logs<\/strong> aufrufen. Dort findest du einen detaillierten \u00dcberblick \u00fcber die Leistung und das Verhalten deiner Anwendung sowie Fehler- und Zugriffsprotokolle.<\/p>\n<p>Wenn du diese Protokolle sorgf\u00e4ltig durchgehst, erh\u00e4ltst du wertvolle Einblicke in die m\u00f6gliche Ursache des Problems, wie z. B. Fehlermeldungen, Stack Traces oder abnormale Verhaltensmuster. Diese Informationen k\u00f6nnen dir dabei helfen, die Ursache des Problems zu diagnostizieren und geeignete Ma\u00dfnahmen zu ergreifen, um es zu beheben.<\/p>\n<p>Au\u00dferdem kannst du in deiner Docker-Umgebung Techniken zur Leistungsoptimierung einsetzen, z. B. durch die Optimierung von Docker-Images und die Implementierung von Best Practices f\u00fcr die Anwendungsarchitektur und die Code-Optimierung.<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Mit den leichtgewichtigen und portablen Containern von Docker ist es einfach, Anwendungen mit allen erforderlichen Abh\u00e4ngigkeiten zu verpacken und bereitzustellen, unabh\u00e4ngig von der zugrunde liegenden Infrastruktur. Durch die Containerisierung deiner Anwendung und ihrer Abh\u00e4ngigkeiten f\u00f6rderst du die Konsistenz in verschiedenen Umgebungen, optimierst die Einrichtungsprozesse und erh\u00e4ltst eine bessere Versionskontrolle.<\/p>\n<p>Durch die Nutzung von Docker mit Kinsta wird der Bereitstellungsprozess deiner Anwendung verbessert. Die Unterst\u00fctzung f\u00fcr benutzerdefinierte Dockerdateien und eine breite Palette von Programmiersprachen, einschlie\u00dflich PHP, gew\u00e4hrleistet Kompatibilit\u00e4t und Flexibilit\u00e4t f\u00fcr deine Projekte.<\/p>\n<p>Mit der <a href=\"https:\/\/docs.sevalla.com\/applications\/get-started\/infrastructure\">Infrastruktur von Anwendungs-Hosting<\/a> und der Containerisierungstechnologie von Docker kannst du eine optimierte Bereitstellung, Skalierbarkeit und Zuverl\u00e4ssigkeit deiner Anwendungen erreichen.<\/p>\n<p><em>Hast du Docker bereits f\u00fcr dein Projekt genutzt? Hast du Erfahrungen oder Erkenntnisse \u00fcber Docker? Teile sie unten in den Kommentaren mit!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker ist eine beliebte Open-Source-Plattform f\u00fcr die Entwicklung, den Versand und den Betrieb von Anwendungen. Sie kapselt Anwendungen und ihre Abh\u00e4ngigkeiten in Containern, um die Konsistenz &#8230;<\/p>\n","protected":false},"author":199,"featured_media":69740,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[937,970],"class_list":["post-69739","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-docker","topic-php-funktion"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Wie man PHP-Abh\u00e4ngigkeiten und -Erweiterungen mit Docker installiert - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wie man PHP-Abh\u00e4ngigkeiten und -Erweiterungen mit Docker installiert\" \/>\n<meta property=\"og:description\" content=\"Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-16T14:13:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-19T08:22:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker-1024x512.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"13\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Wie man PHP-Abh\u00e4ngigkeiten und -Erweiterungen mit Docker installiert\",\"datePublished\":\"2024-04-16T14:13:44+00:00\",\"dateModified\":\"2024-04-19T08:22:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/\"},\"wordCount\":2185,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg\",\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/\",\"name\":\"Wie man PHP-Abh\u00e4ngigkeiten und -Erweiterungen mit Docker installiert - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg\",\"datePublished\":\"2024-04-16T14:13:44+00:00\",\"dateModified\":\"2024-04-19T08:22:31+00:00\",\"description\":\"Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/docker\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Wie man PHP-Abh\u00e4ngigkeiten und -Erweiterungen mit Docker installiert\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/de\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Wie man PHP-Abh\u00e4ngigkeiten und -Erweiterungen mit Docker installiert - Kinsta\u00ae","description":"Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/","og_locale":"de_DE","og_type":"article","og_title":"Wie man PHP-Abh\u00e4ngigkeiten und -Erweiterungen mit Docker installiert","og_description":"Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.","og_url":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2024-04-16T14:13:44+00:00","article_modified_time":"2024-04-19T08:22:31+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker-1024x512.jpg","twitter_creator":"@Kinsta_DE","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Jeremy Holcombe","Gesch\u00e4tzte Lesezeit":"13\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Wie man PHP-Abh\u00e4ngigkeiten und -Erweiterungen mit Docker installiert","datePublished":"2024-04-16T14:13:44+00:00","dateModified":"2024-04-19T08:22:31+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/"},"wordCount":2185,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg","inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/","url":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/","name":"Wie man PHP-Abh\u00e4ngigkeiten und -Erweiterungen mit Docker installiert - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg","datePublished":"2024-04-16T14:13:44+00:00","dateModified":"2024-04-19T08:22:31+00:00","description":"Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.Vereinfache deinen Entwicklungsworkflow, indem du lernst, wie du PHP-Abh\u00e4ngigkeiten und -Erweiterungen in Docker-Containern installierst.","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2024\/04\/wp-how-to-install-php-dependencies-and-extensions-with-docker.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/docker-php-erweiterungen-installieren\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"Docker","item":"https:\/\/kinsta.com\/de\/thema\/docker\/"},{"@type":"ListItem","position":3,"name":"Wie man PHP-Abh\u00e4ngigkeiten und -Erweiterungen mit Docker installiert"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/de\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/69739","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=69739"}],"version-history":[{"count":4,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/69739\/revisions"}],"predecessor-version":[{"id":69750,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/69739\/revisions\/69750"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/69739\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/69739\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/69739\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/69739\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/69739\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/69739\/translations\/es"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/69739\/translations\/fr"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/69739\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/69740"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=69739"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=69739"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=69739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}