Composer über SSH nutzen: PHP-Abhängigkeitsverwaltung
Composer über SSH nutzen: PHP-Abhängigkeitsverwaltung
Composer ist der Standard-Paketmanager für PHP. Es macht die Installation von Bibliotheken und Frameworks zum Kinderspiel. Bei Theory7 unterstützen wir Composer auf all unseren Hosting-Paketen mit SSH-Zugang. In dieser Anleitung lernen Sie, Composer effektiv für Ihre PHP-Projekte zu nutzen.
Was ist Composer?
Composer verwaltet Abhängigkeiten für PHP-Projekte. Anstatt Bibliotheken manuell herunterzuladen und zu aktualisieren, lässt man Composer dies automatisch erledigen. Vorteile:
- Automatische Updates von Abhängigkeiten
- Abhängigkeitsauflösung - Konflikte werden automatisch gelöst
- Autoloading - Klassen werden automatisch geladen
- Versionskontrolle - genaue Versionen festlegen
Beliebte Tools, die Composer verwenden: Laravel, Symfony, WordPress-Plugins, PHPUnit.
Composer-Verfügbarkeit prüfen
Auf Theory7-Servern ist Composer in der Regel bereits installiert. Prüfen Sie mit:
composer --version
Falls Composer nicht gefunden wird:
which composer
Oder versuchen Sie den vollständigen Pfad:
/usr/local/bin/composer --version
Basis Composer-Befehle
Neues Projekt starten
Für ein neues Projekt mit composer.json:
composer init
Oder installieren Sie direkt ein Framework:
composer create-project laravel/laravel meinprojekt
Abhängigkeiten installieren
Wenn Sie ein Projekt mit bestehender composer.json klonen:
composer install
Dies installiert alle in composer.lock angegebenen Abhängigkeiten.
Neues Paket hinzufügen
composer require vendor/package
Beispiel:
composer require monolog/monolog
composer require guzzlehttp/guzzle
Entwicklungsabhängigkeiten
Für Pakete, die nur während der Entwicklung benötigt werden:
composer require --dev phpunit/phpunit
Paket entfernen
composer remove vendor/package
Alles aktualisieren
composer update
Oder spezifisches Paket:
composer update vendor/package
Composer für die Produktion
Optimierte Installation
Für Produktionsserver:
composer install --no-dev --optimize-autoloader
Was diese Flags tun:
- --no-dev - Entwicklungsabhängigkeiten überspringen
- --optimize-autoloader - Optimierte Klassenkarte generieren
Autoloader-Optimierung
Nach der Bereitstellung:
composer dump-autoload --optimize
Dies beschleunigt das Laden von Klassen erheblich.
Composer.json-Struktur
Eine Basis composer.json:
{
"name": "meinunternehmen/meinprojekt",
"description": "Mein PHP-Projekt",
"require": {
"php": ">=8.1",
"monolog/monolog": "^3.0"
},
"require-dev": {
"phpunit/phpunit": "^10.0"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
Versionsbeschränkungen
- ^3.0 - Kompatibel mit 3.0 und höher, aber nicht 4.0
- ~3.0 - Mindestens 3.0, maximal 3.x
- 3.0.* - Jede 3.0.x-Version
- >=3.0 - 3.0 oder höher
- 3.0.5 - Genau diese Version
Composer.lock
Composer.lock legt genaue Versionen fest. Dies sorgt dafür, dass jeder die gleichen Versionen verwendet.
Wichtig:
- Committen Sie composer.lock in die Versionskontrolle
- Verwenden Sie composer install (nicht update) in der Produktion
- composer update nur lokal für bewusste Updates
Fehlerbehebung
Speicherlimit-Fehler
COMPOSER_MEMORY_LIMIT=-1 composer install
Oder passen Sie php.ini an:
php -d memory_limit=-1 /usr/local/bin/composer install
Timeout bei Installation
composer config --global process-timeout 600
Cache-Probleme
Leeren Sie den Composer-Cache:
composer clear-cache
Plattformanforderungen
Wenn Ihre lokale PHP-Version von der Produktionsversion abweicht:
{
"config": {
"platform": {
"php": "8.1"
}
}
}
Composer mit Shared Hosting
Auf Shared Hosting mit begrenzten Ressourcen:
- Installieren Sie Abhängigkeiten lokal
- Laden Sie den vendor/-Ordner auf den Server hoch
- Oder verwenden Sie composer mit Speicherlimit-Override
Composer-Skripte
Automatisieren Sie Aufgaben mit Skripten in composer.json:
{
"scripts": {
"post-install-cmd": [
"php artisan optimize"
],
"test": "phpunit"
}
}
Führen Sie aus mit:
composer test
Private Pakete
Für private Repositories:
{
"repositories": [
{
"type": "vcs",
"url": "git@github.com:meinunternehmen/privat-package.git"
}
]
}
Stellen Sie sicher, dass SSH-Schlüssel korrekt konfiguriert sind.
Verwandte Artikel
- SSH-Verbindung von Mac/Linux
- Firewall-Konfiguration (UFW)
- Server-Backup-Strategie
- PHP-FPM-Konfiguration
Brauchen Sie Hilfe?
Wir sind für Sie da! Stoßen Sie auf Probleme oder haben Sie Fragen? Unser Support-Team hilft Ihnen gerne persönlich weiter. Senden Sie uns eine Nachricht über das Ticketsystem - wir antworten in der Regel innerhalb weniger Stunden und denken gerne mit Ihnen mit.
0 van 0 vonden dit nuttig