Einrichten von Neos CMS 9 mit Laragon unter Windows 11
No composer manifest file found at ...
das ist der Fehler, den ich immer wieder erhalte, wenn ich Neos CMS über Composer installiere. Ich habe ihn im Abschnitt "Fehler" weiter unten etwas ausführlicher beschrieben.
Um das Problem zu lösen, war die einzige Lösung, die ich gefunden habe, Neos mit Docker zu installieren , anstatt nur mit Composer. Also habe ich Docker und dann den folgenden Befehl ausgeführt:
docker run -v %cd%:/app -it --rm composer create-project neos/neos-base-distribution neos
Danach erhielt ich immer noch einige Fehler, wie unten beschrieben, aber es funktionierte schließlich doch.
- Das System kann den angegebenen Pfad nicht finden
- Keine Composer-Manifest-Datei im Pfad gefunden
- Could not publish... into resource publishing target... because the source directory could not be symlinked at target location
- Sie führen Neos/Flow mit einer anderen PHP-Version aus als die, für die Flow intern konfiguriert ist.
Wenn Sie die Fehler behoben haben und den Begrüßungsbildschirm in Ihrem lokalen Browser sehen können, können Sie nun Folgendes ausführen:
php flow willkommen
Daraufhin erhalten Sie eine Liste von Befehlen, die Sie ausführen müssen , um die Installation von Neos zu konfigurieren.
Ich habe versucht, das UI-Setup zu verwenden, aber nachdem ich das Setup-Passwort eingegeben hatte, blieb ich auf einer leeren Seite bei setup/login/authenticate hängen und gab auf und wechselte zum Terminal.
Konfigurieren Sie nun die Datenbank:
php flow setup:database
Und fügen Sie Ihre Daten ein, die normalerweise lauten:
- DB-Treiber: pdo_mysql, aber Sie können auch mysqli verwenden
- Rechner: 127.0.0.1
- Datenbank: neos (oder der Name, den Sie zum Erstellen Ihrer Datenbank in HeidiSQL verwendet haben)
- Benutzername: root
- Passwort: (leer lassen, einfach die Eingabetaste drücken, dies ist die Voreinstellung auf Laragon, ansonsten das Passwort eingeben, das Sie in HeidiSQL eingerichtet haben)
Jetzt ist es Zeit für den Image Handler:
php flow setup:imagehandler
Ich würde mich hier für Imagick entscheiden, aber Sie können auch GD wählen, wenn Sie dies bevorzugen.
Wenn Sie Imagick nicht haben, können Sie php_imagick.dll von PECL herunterladen und die Datei in Ihren PHP-Ordner einfügen:
# Fügen Sie die Datei php_imagick.dll hier ein: C:\Programme\laragon\bin\php\php-8.1.10-Win32-vs16-x64\ext
Stellen Sie nun sicher, dass die Module in Ihrem Laragon unter Menü > Einstellungen > PHP > Erweiterungen aktiviert sind .
Versuchen Sie schließlich, Laragon neu zu laden.
Wenn es immer noch nicht funktioniert (ist mir auch schon passiert), versuchen Sie, Ihre php.ini zu ändern und Imagick dort zu aktivieren:
# C:\Programme\laragon\bin\php\php-8.1.10-Win32-vs16-x64\php.ini extension=fileinfo extension=gd ;extension=gettext ;extension=gmp extension=intl extension=imagick ;extension=imap ;extension=ldap
Fehler
Hier sind einige Fehler , auf die ich während der Installation von Neos gestoßen bin, hoffentlich sind sie hilfreich für Sie:
Das System kann den angegebenen Pfad nicht finden
Sie müssen wahrscheinlich den richtigen Pfad zu PHP in Ihrer \Configuration\Settings .yaml-Datei in Neos einstellen .
Hier ist ein Beispiel:
Neos: Flow: persistence: backendOptions: driver: pdo_mysql charset: utf8mb4 host: 127.0.0.1 mvc: routes: Neos.Flow: true phpBinaryPathAndFilename: 'C:/Programme/laragon/bin/php/php-8.1.10-Win32-vs16-x64/php.exe' core: phpBinaryPathAndFilename: 'C:/Programme/laragon/bin/php/php-8.1.10-Win32-vs16-x64/php.exe'
Einige zusätzliche Informationen können hier gefunden werden: StackOverflow: Neos CMS Installation 500 Fehler: Angegebener Pfad nicht gefunden
Keine Composer-Manifestdatei unter "C:/Programme/laragon/www/neos/Packages/C:/Programme/laragon/www/neos/Packages/Application/Neos.Behat/composer.json" gefunden.
Wie Sie an der Fehlermeldung sehen können, wird der Pfad aus irgendeinem Grund zweimal wiederholt. Etwas Ähnliches ist mir in Symfony 5 passiert, wo ich eine Lösung gefunden habe, indem ich die Option "runtime" in composer.json gesetzt habe. Siehe das Problem auf Github: Symfony [Runtime] Fix für Windows, wenn Projekte auf Junctions/Symlinks deployed werden.
Mit Neos habe ich keine Symlinks verwendet, aber ich vermute, dass es etwas mit realpath() und Windows zu tun hat.
Unter Neos kann ich das Problem nicht beheben. Die einzige Lösung, die ich gefunden habe, war die Installation über Docker in Kombination mit Composer. Die Installation mit Composer allein führt bei mir immer zu diesem Fehler, und ich habe noch keine Idee, wie ich ihn lösen kann.
Im Grunde habe ich den Befehl ausgeführt:
# Working docker run -v .:/app -it --rm composer create-project neos/neos-base-distribution neos
Anstelle von:
# Raises error composer create-project neos/neos-base-distribution neos
Fragen Sie mich nicht, warum es funktioniert. Tatsächlich bin ich sogar bei der Verwendung von Docker auf andere Fehler gestoßen (siehe unten), aber ich habe es geschafft, sie schließlich zu lösen.
Das Verzeichnis "C:/Programme/laragon/www/neos/Packages/Framework/Neos.Flow/Resources/Public" konnte nicht in das Ressourcenveröffentlichungsziel "localWebDirectoryStaticResourcesTarget" veröffentlicht werden, da das Quellverzeichnis nicht mit dem Zielverzeichnis verknüpft werden konnte.
Lösung: Öffnen Sie ein Terminal als Administrator und führen Sie den folgenden Befehl aus:
php flow flow:cache:warmup
Wenn das nicht ausreicht, versuchen Sie diese beiden Befehle auszuführen:
php flow flow:core:compile php flow flow:cache:warmup
Und schließlich können Sie versuchen, den Ordner Data\Temporary in Ihrer Neos-Installation zu löschen und dann die beiden Befehle erneut auszuführen.
Sie führen die Flow-CLI mit einer anderen PHP-Binärdatei als derjenigen aus, für die Flow intern konfiguriert ist.
Flow wird mit PHP "8.1.10" ausgeführt, während die PHP-Version, die Flow für Unterabfragen verwenden soll, "" lautet. Stellen Sie sicher, dass Flow die gleiche PHP-Version verwendet, indem Sie die Konfigurationsoption "Neos.Flow.core.phpBinaryPathAndFilename" auf ein PHP-CLI-Binary der Version 8.1.10 setzen. Leeren Sie die Caches, indem Sie den Ordner Data/Temporary löschen, bevor Sie Flow/Neos erneut ausführen.
Dies geschah bei mir, nachdem ich die Datenbank- und Image-Handler-Setups ausgeführt hatte. Natürlich habe ich die PHP-Version in meiner Settings.yaml eingestellt.
Sie führen Neos/Flow mit einer PHP-Version aus, die sich von der Version unterscheidet, für die Flow intern konfiguriert ist.
Diese Fehlermeldung kann direkt nach der Installation von Neos und sogar nach dem Einrichten der Datenbankeinstellungen erscheinen. Fragen Sie mich nicht warum.
Versuchen Sie, diesen Befehl jedes Mal auszuführen, wenn Sie die Fehlermeldung sehen.
php flow flow:core:compile
Damit sollte das Problem zumindest vorübergehend behoben sein.
The specified path to your PHP binary (see Configuration/Settings.yaml) is incorrect or not a PHP command line (cli) version.
Grundsätzlich müssen Sie die Option phpBinaryPathAndFilename in der Datei Configuration/Settings.yaml überprüfen.
Warning: require(/Data/Temporary/Development/Doctrine/Proxies\__CG__NeosFlowSecurityAccount.php): Failed to open stream: No such file or directory in \Packages\Libraries\doctrine\common\src\Proxy\AbstractProxyFactory.php line 197
Dies liegt wahrscheinlich daran, dass Sie den Cache mit dem Befehl löschen müssen:
./flow flow:cache:flush
Ich hoffe, dass dies Ihnen helfen wird, die meisten Fehler zu beheben, auf die Sie stoßen könnten!