Installationsanleitungen

Composer installieren und PHP einrichten

Wir zeigen, wie Sie PHP mit den richtigen Erweiterungen installieren, Abhängigkeiten mit Composer verwalten und mit PSR-4-Autoloading eine saubere Projektstruktur aufbauen.

Aurora YazılımRedaktionsteam 6 Min. Lesezeit
Composer installieren und PHP einrichten
Wie installiert man Composer?

Für die Composer-Installation muss zuerst PHP installiert sein und im Terminal funktionieren. Unter Windows findet der Installer Composer-Setup.exe von getcomposer.org PHP und fügt es dem PATH hinzu. Unter macOS und Linux laden Sie composer.phar mit den Installationsbefehlen der Website herunter und verschieben es nach /usr/local/bin/composer. Gibt composer --version eine Version aus, ist die Installation abgeschlossen; Abhängigkeiten installieren Sie mit composer install.

Was ist Composer und wozu braucht man es?

Composer ist der Dependency-Manager für PHP-Projekte. Er lädt die Bibliotheken, die Ihr Projekt braucht, samt kompatiblen Versionen herunter und lässt Sie alles über eine einzige Datei verwalten. Was npm für JavaScript und pip für Python ist, ist Composer für PHP.

Der zweite große Beitrag von Composer ist das automatische Laden (Autoload). Statt Dutzende require-Zeilen zu schreiben, binden Sie eine einzige Datei ein; Klassen werden bei Bedarf automatisch geladen. Moderne PHP-Frameworks wie Laravel und Symfony bauen durch und durch auf Composer auf.

Bibliotheken werden im öffentlichen Repository Packagist veröffentlicht. Composer wählt anhand der Versionsregeln in Ihrer Datei composer.json die passenden Pakete aus diesem Repository aus und installiert sie alle im Ordner vendor.

Datei / OrdnerAufgabeIn Git aufnehmen?
composer.jsonAbhängigkeiten, Versionsregeln, Autoload-EinstellungJa
composer.lockExakte Version jedes installierten PaketsJa (bei Anwendungen)
vendor/Heruntergeladene Pakete und Autoload-DateienNein

PHP installieren: Windows, macOS, Linux

Composer ist ein PHP-Programm; deshalb muss PHP zuerst auf der Kommandozeile laufen. Ist auf Ihrem Computer XAMPP installiert, können Sie das darin enthaltene PHP nutzen; Details finden Sie in unserem Ratgeber zur XAMPP-Installation. Möchten Sie ein eigenständiges PHP installieren, gehen Sie je nach Betriebssystem vor.

bashPHP prüfen
php -v

# Installierte Erweiterungen
php -m

# Verwendete php.ini-Datei
php --ini

PHP unter Windows

Laden Sie von windows.php.net die ZIP-Datei der aktuellen stabilen Version x64 Thread Safe herunter und entpacken Sie sie in einen kurzen Ordner wie C:\php. Erstellen Sie von der Datei php.ini-development im Ordner eine Kopie mit dem Namen php.ini und fügen Sie den Ordner C:\php dem System-PATH hinzu.

Aktivieren Sie in der Datei php.ini die Erweiterungen, die Composer und die meisten Pakete benötigen, indem Sie das Semikolon am Zeilenanfang entfernen:

iniphp.ini (Windows)
extension_dir = "ext"
extension=curl
extension=fileinfo
extension=mbstring
extension=openssl
extension=pdo_mysql
extension=zip

PHP unter macOS und Linux

Unter macOS genügt ein einziger Befehl mit Homebrew. Installieren Sie unter Ubuntu und Debian das PHP-Kommandozeilenpaket zusammen mit den häufig genutzten Erweiterungen und dem Tool unzip; Composer benötigt beim Entpacken von Paketen unzip oder die zip-Erweiterung.

bashmacOS
brew install php
bashUbuntu / Debian
sudo apt update
sudo apt install php-cli php-mbstring php-xml php-curl php-zip unzip

Composer installieren Schritt für Schritt

Unter Windows ist der einfachste Weg der Installer Composer-Setup.exe auf getcomposer.org. Der Installer findet die php.exe auf Ihrem Computer, meldet fehlende Einstellungen und fügt den Befehl composer dem PATH hinzu. Schließen Sie nach der Installation geöffnete Terminals und öffnen Sie sie neu.

Unter macOS und Linux wird Composer mit dem vierzeiligen Befehl auf der Download-Seite installiert. Einer dieser Befehle prüft die Sicherheits-Prüfsumme (Hash) der heruntergeladenen Datei und ändert sich mit jeder Version; kopieren Sie die Befehle daher immer in der aktuellen Fassung von der offiziellen Seite. Die Installation erzeugt die Datei composer.phar im aktuellen Ordner; wenn Sie sie an einen globalen Ort verschieben, können Sie von überall mit composer arbeiten.

bashmacOS / Linux (die Zeile zur Hash-Prüfung von der offiziellen Seite ergänzen)
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# (Zeile zur Hash-Prüfung von der offiziellen Seite)
php composer-setup.php
php -r "unlink('composer-setup.php');"

# Für die allgemeine Nutzung verschieben
sudo mv composer.phar /usr/local/bin/composer
bashPrüfung
composer --version
composer diagnose

composer install und wichtige Befehle

In einem neuen Projekt erzeugt composer init mit interaktiven Fragen die Datei composer.json. Haben Sie ein bestehendes Projekt geklont, müssen Sie nur den Befehl composer install ausführen: Composer installiert exakt die Versionen aus der Datei composer.lock.

composer require fügt ein neues Paket hinzu und aktualisiert composer.json und composer.lock. composer update hebt dagegen auf die neuesten Versionen innerhalb des erlaubten Versionsbereichs an und sollte deshalb im Team bewusst eingesetzt werden.

  • Die Versionsregel ^2.0 erlaubt alle Versionen innerhalb von 2.x, nicht aber den Sprung auf 3.0.
  • Teilen Sie die Datei composer.lock; alle im Team und der Server installieren dieselben Versionen.
  • Nehmen Sie den Ordner vendor nicht in Git auf; tragen Sie ihn in .gitignore ein.
bashHäufig genutzte Composer-Befehle
# Neue Projektdatei erstellen
composer init

# Paket ekle
composer require guzzlehttp/guzzle

# Paket, das nur in der Entwicklung benötigt wird
composer require --dev phpunit/phpunit

# Anhand der Lock-Datei installieren
composer install

# Versionen aktualisieren
composer update
composer outdated

# Paket entfernen und auflisten
composer remove guzzlehttp/guzzle
composer show

Sicherheitsprüfung

Prüfen Sie mit dem Befehl composer audit, ob die von Ihnen genutzten Pakete bekannte Sicherheitslücken haben. Der Befehl vergleicht die Versionen der Lock-Datei mit Schwachstellendatenbanken und listet die betroffenen Pakete auf. Diese Prüfung nach jeder Aktualisierung und in regelmäßigen Abständen auszuführen, verhindert, dass eine veraltete Bibliothek Ihre Website gefährdet.

bash
composer audit

Composer-Skripte

Im Feld scripts der Datei composer.json können Sie häufig genutzte Befehle hinterlegen, zum Beispiel ein Test-Skript, das die Tests ausführt. Diese Skripte laufen mit composer run-script test oder kurz composer test. So verwendet jeder im Team denselben Befehl mit denselben Parametern, und ein neuer Entwickler sieht auf einen Blick, wie das Projekt getestet wird.

PSR-4-Autoloading

Nutzen Sie Composer nicht nur für externe Pakete, sondern auch, um Ihren eigenen Code zu ordnen. Im PSR-4-Standard entspricht jeder Namespace einem Ordner; die Klasse App\Servis\Fatura liegt zum Beispiel in der Datei src/Servis/Fatura.php.

Führen Sie nach dem Hinzufügen der Einstellung zu composer.json den Befehl composer dump-autoload aus. Danach genügt es, in der Einstiegsdatei des Projekts nur vendor/autoload.php einzubinden.

jsoncomposer.json (Abschnitt autoload)
{
  "require": {
    "php": ">=8.1"
  },
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  }
}
phpindex.php
<?php
require __DIR__ . '/vendor/autoload.php';

use App\Servis\Fatura;

$fatura = new Fatura();
bash
composer dump-autoload

Installation auf dem Live-Server

Auf dem Live-Server braucht man keine Entwicklungspakete, und ein optimierter Autoloader spart bei jeder Anfrage Zeit. Verwenden Sie beim Deployment den folgenden Befehl; --no-dev lässt die Testwerkzeuge weg, --optimize-autoloader erzeugt die Klassenkarte vorab.

Diese kleine Einstellung wirkt sich vor allem bei Projekten mit vielen Klassen positiv auf die Antwortzeit aus. Solche serverseitigen Verbesserungen behandeln wir als Teil unserer Speed- und Performance-Optimierung.

Es ist auch eine gute Gewohnheit, vor dem Deployment lokal den Befehl composer validate auszuführen: Er prüft die Datei composer.json auf Tippfehler und ob die Lock-Datei aktuell ist. So sinkt die Wahrscheinlichkeit, auf dem Server auf eine halbfertige Installation zu stoßen.

  • Die PHP-Version auf dem Server muss die php-Regel in composer.json erfüllen.
  • Nutzen Sie lokal eine andere PHP-Version, können Sie die Version des Servers mit der Einstellung config.platform.php in composer.json nachbilden.
  • Um die Umgebungen exakt anzugleichen, ist es auch eine Option, PHP in einem Container auszuführen; siehe Docker-Installation.
bashProduktiv-Installation
composer install --no-dev --optimize-autoloader

Häufige Fehler und Lösungen

Die meisten Composer-Fehler entstehen durch fehlende PHP-Erweiterungen, eine inkompatible PHP-Version und das Speicherlimit. Der Befehl composer diagnose erkennt viele Probleme selbst.

  • Der Befehl php wird nicht erkannt: Der PHP-Ordner ist nicht im PATH; fügen Sie ihn hinzu und öffnen Sie das Terminal neu.
  • Die Erweiterung openssl fehlt: Aktivieren Sie in der php.ini die Zeile extension=openssl; stellen Sie mit php --ini sicher, dass Sie die richtige php.ini bearbeiten.
  • Die zip-Erweiterung und der Befehl unzip fehlen: Aktivieren Sie unter Windows die Zeile extension=zip, installieren Sie unter Linux die Pakete php-zip und unzip.
  • Your requirements could not be resolved: Das Paket unterstützt Ihre installierte PHP-Version oder die Version eines anderen Pakets nicht. Lesen Sie die Anforderung in der Fehlermeldung und wählen Sie PHP oder die Paketversion entsprechend.
  • Allowed memory size exhausted: Führen Sie den Befehl in der Form COMPOSER_MEMORY_LIMIT=-1 composer update aus oder erhöhen Sie den Wert memory_limit in der php.ini.

Nächste Schritte mit Composer

Die meisten PHP-Projekte arbeiten mit einer Datenbank. Bevor Sie eine mit Composer installierte Datenbankschicht anbinden, können Sie Ihren lokalen Server mit unserem Ratgeber zur MySQL-Installation vorbereiten. Weitere PHP-Inhalte finden Sie auf der Seite zum Schlagwort PHP.

Eine sauber eingerichtete Abhängigkeitsverwaltung sorgt dafür, dass eine Unternehmenswebsite oder ein Integrationsprojekt, das Zahlungs- und Versanddienste anbindet, über Jahre hinweg sicher aktualisiert werden kann. Auch das Shopsystem von Aurora Yazılım wird ohne fertige Themes und mit einem individuellen Design für jedes Unternehmen entwickelt.

Häufig gestellte Fragen

01Muss ich Composer für jedes Projekt einzeln installieren?

Nein. Composer wird einmal global auf Ihrem Computer installiert. Jedes Projekt hat seine eigene composer.json und seinen eigenen vendor-Ordner; Pakete werden von Projekt zu Projekt getrennt installiert. Da Composer heruntergeladene Pakete im Cache vorhält, ist die Installation im zweiten Projekt schneller fertig.

02Was ist der Unterschied zwischen composer install und composer update?

composer install installiert exakt die Versionen aus der Datei composer.lock und verändert die Lock-Datei nicht. composer update sucht dagegen nach den Versionsregeln neuere Versionen und aktualisiert die Lock-Datei; deshalb wird auf Servern install verwendet.

03Kann man Composer auf Shared Hosting nutzen?

Wenn Ihr Hosting-Anbieter SSH-Zugriff gewährt, meist ja. Gibt es kein SSH, ist eine Lösung, die Abhängigkeiten lokal mit composer install --no-dev zu installieren und den Ordner vendor per Dateiübertragung hochzuladen; achten Sie darauf, dass die PHP-Versionen kompatibel sind.

Wenn Sie PHP mit den richtigen Erweiterungen installieren und Composer dem PATH hinzufügen, verwalten Sie Abhängigkeiten mit composer install in wenigen Minuten und bauen mit PSR-4 eine saubere Codestruktur auf. Wenn Sie ein auf Ihr Unternehmen zugeschnittenes, gut wartbares PHP-basiertes System oder eine Webanwendung wünschen, informieren Sie sich über die individuellen Softwarelösungen von Aurora Yazılım oder nehmen Sie Kontakt mit uns auf.