Alle Beiträge
Moodle

Moodle Composer vendor directory not found

10. August 2026 · 6 Min. Lesezeit

izon
rizon.agency
Moodle Composer vendor directory not found

Was der Fehler bedeutet

Composer vendor directory not found bedeutet, dass Moodle Composer-installierte PHP-Abhängigkeiten im vendor-Verzeichnis erwartet, sie aber fehlen oder nicht lesbar sind. In Moodle 5.1 und neuer kann das eine normale Installation oder ein Upgrade stoppen.

Die Moodle.org-Diskussion “error in 5.1: Composer vendor directory not found” hat 57 Antworten. Moodle hat außerdem eine offizielle Seite zu Composer vendor directory not found.

Der Produktions-Fix ist meist:

composer install --no-dev --classmap-authoritative

Führen Sie ihn aus der Moodle-Wurzel aus, nicht aus public.

Warum das in Moodle 5.x passiert

Moodle 5.1 machte Composer-Abhängigkeiten als Installationsprüfung sichtbarer. Wer ein offizielles Release-Paket mit allen Abhängigkeiten nutzt, bemerkt Composer vielleicht nie. Wer aus Git installiert, ein eigenes Release baut, nur einen Teil des Codebaums hochlädt oder einen Host-Installer nutzt, kann ohne vendor enden.

Moodle kann dann benötigte Drittbibliotheken nicht laden.

Prüfen Sie zuerst den aktuellen Ordner

Richtig:

cd /var/www/moodle
composer install --no-dev --classmap-authoritative

Falsch:

cd /var/www/moodle/public
composer install --no-dev --classmap-authoritative

Composer gehört in das Moodle-Elternverzeichnis. Innerhalb von public lösen Sie das falsche Problem.

Die sichere Sequenz

Führen Sie dies zuerst in Staging aus:

  1. Prüfen Sie, ob PHP CLI die Moodle-5.2-Anforderungen erfüllt.
  2. Wechseln Sie in die Moodle-Wurzel.
  3. Führen Sie Composer ohne Dev-Abhängigkeiten aus.
  4. Prüfen Sie vendor/autoload.php.
  5. Prüfen Sie Eigentümer und Rechte.
  6. Leeren Sie Caches.
  7. Starten Sie das Moodle-Upgrade erneut.
php -v
cd /path/to/moodle
composer install --no-dev --classmap-authoritative
test -f vendor/autoload.php
php admin/cli/purge_caches.php
php admin/cli/upgrade.php

Wenn php -v PHP 8.2 zeigt, der Webserver aber PHP 8.3 oder 8.4 nutzt, beheben Sie diesen Unterschied zuerst.

Installation aus Git

Git ersetzt kein Dependency Management. Nach Branch oder Tag folgt Composer in der Moodle-Wurzel.

cd /path/to/moodle
git fetch origin
git checkout -b MOODLE_502_STABLE origin/MOODLE_502_STABLE
composer install --no-dev --classmap-authoritative
php admin/cli/upgrade.php

Die Anleitung Git for Administrators erinnert außerdem an Backups und korrekte 5.x-Plugin-Pfade.

Wenn Composer auf Shared Hosting nicht läuft

Hier wird Shared Hosting schwierig.

SituationPraktische Option
Kein Composer, aber SSH/SFTPLokal oder in CI bauen und vollständigen Baum inklusive vendor hochladen
Composer nutzt falsches PHPPassendes PHP/Composer-Paar beim Host anfragen
Dateimanager verliert DateienArchiv hochladen und serverseitig entpacken
Kein Shell-Zugriff, keine großen UploadsVPS oder Moodle-fähigen Host nutzen

Laden Sie kein halb gebautes Moodle in Produktion. vendor ist Teil des Artefakts.

Mehr Hosting-Kontext: Kann Moodle 5.2 auf Shared Hosting laufen?.

Wenn Composer selbst fehlschlägt

Lesen Sie die erste echte Fehlermeldung.

Composer-AusgabeWahrscheinliche Ursache
PHP version does not satisfy requirementPHP CLI zu alt
Fehlende Extension sodium, intl, zip, soapExtension nicht für CLI aktiviert
Killed oder memory exhaustedSpeicherlimit
Permission denied in vendorFalscher Eigentümer oder Read-only
Could not resolve packageNetzwerk, Proxy, Lock File oder Repository

Rechte nach Composer

Prüfen Sie:

find vendor -type f -name autoload.php
ls -ld vendor
ls -l vendor/autoload.php

Kopieren Sie kein beliebiges vendor aus einer anderen Moodle-Version. Abhängigkeiten müssen zum exakten Code passen.

FAQ

Welcher Befehl behebt den Fehler?

composer install --no-dev --classmap-authoritative, aus der Moodle-Wurzel.

Gehört vendor in public?

Nein. Composer läuft in der Moodle-Wurzel.

Ist das ein Moodle-Bug?

Meist nicht. Meist ist das Deployment-Artefakt unvollständig.

Geschrieben von Choaib Mouhrach

Gründer und Senior-Softwareentwickler

Ich konzipiere und entwickle maßgeschneiderte Lernplattformen für Organisationen mit komplexen Schulungs- und Zertifizierungsabläufen. Statt Plugins und Drittanbieter-Tools zusammenzufügen, entwickle ich Systeme, die zur tatsächlichen Arbeitsweise eines Unternehmens passen, den Verwaltungsaufwand senken und die Lernerfahrung verbessern.

Loslegen

Ihr Lernprodukt verdient seine eigene Plattform.

Wenn Sie eine Lernerfahrung liefern möchten, die rund um Ihr Produkt, Ihre Lernenden und Ihre Ziele gebaut ist, sind Sie hier richtig. Wir bauen Plattformen, die Ihnen die Kontrolle und Flexibilität geben, ohne Grenzen zu wachsen.