Installation de Neos CMS 9 avec Laragon sur Windows 11
No composer manifest file found at ...
c'est l'erreur que j'obtiens lors de l'installation de Neos CMS via Composer. Je l'ai détaillée un peu plus loin dans la section Erreurs.
Pour résoudre ce problème, la seule solution que j'ai trouvée était d'installer Neos en utilisant Docker au lieu de Composer. J'ai donc lancé Docker puis la commande suivante :
docker run -v %cd%:/app -it --rm composer create-project neos/neos-base-distribution neos
Après cela, j'ai encore obtenu quelques erreurs comme expliqué ci-dessous, mais cela a finalement fonctionné.
- Le système ne trouve pas le chemin spécifié
- Aucun fichier manifeste de compositeur n'a été trouvé au chemin d'accès
- Impossible de publier... dans la cible de publication des ressources... parce que le répertoire source n'a pas pu être relié par un lien symbolique à l'emplacement de la cible.
- Vous exécutez Neos/Flow avec une version de PHP différente de celle que Flow est configuré pour utiliser en interne.
Si vous avez corrigé les erreurs et que vous pouvez voir l'écran de bienvenue sur votre navigateur local, vous pouvez maintenant exécuter :
php flow welcome
Cela vous donnera une liste de commandes à exécuter pour configurer l'installation de Neos.
J'ai essayé d'utiliser l'interface utilisateur, mais après avoir inséré le mot de passe d'installation, je suis resté bloqué sur une page blanche à setup/login/authenticate et j'ai abandonné, passant au terminal.
Maintenant, configurez la base de données :
php flow setup:database
Et insérez vos données, qui sont généralement :
- Pilote de la base de données : pdo_mysql, mais vous pouvez aussi utiliser mysqli
- Hôte : 127.0.0.1
- Base de données : neos (ou le nom que vous avez utilisé pour créer votre base de données dans HeidiSQL)
- Nom d'utilisateur : root
- Mot de passe : (laissez vide, appuyez simplement sur enter, c'est le mot de passe par défaut sur Laragon, sinon écrivez le mot de passe que vous avez configuré dans HeidiSQL)
Il est maintenant temps de créer le gestionnaire d'images :
php flow setup:imagehandler
Je choisirais Imagick ici, mais vous pouvez choisir GD si vous préférez.
Si vous n'avez pas Imagick, vous pouvez télécharger php_imagick.dll depuis PECL et placer le fichier dans votre dossier PHP :
# Ajoutez le fichier php_imagick.dll ici : C:\Programmes\laragon\bin\php\php-8.1.10-Win32-vs16-x64\ext
Assurez-vous maintenant que les modules sont activés dans votre Laragon dans Menu > Préférences > PHP > Extensions.
Enfin, essayez de recharger Laragon.
Si cela ne fonctionne toujours pas (cela m'est arrivé aussi), essayez de modifier votre php.ini et activez Imagick à cet endroit :
# C:\Programmes\laragon\bin\p\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
Erreurs
Voici quelques erreurs que j'ai rencontrées lors de l'installation de Neos, j'espère que cela vous sera utile :
Le système ne trouve pas le chemin spécifié
Vous devez probablement définir le bon chemin pour PHP dans votre fichier \Configuration\Settings .yaml dans Neos.
Voici un exemple :
Neos : Flow : persistence : backendOptions : driver : pdo_mysql charset : utf8mb4 host : 127.0.0.1 mvc : routes : Neos.Flow : true phpBinaryPathAndFilename : 'C:/Programs/laragon/bin/php/php-8.1.10-Win32-vs16-x64/php.exe' core : phpBinaryPathAndFilename : 'C:/Programs/laragon/bin/php/php-8.1.10-Win32-vs16-x64/php.exe'
Des informations supplémentaires peuvent être trouvées ici : StackOverflow : Installation de Neos CMS 500 error : Le chemin spécifié n'a pas été trouvé
Aucun fichier manifeste de compositeur n'a été trouvé à "C:/Programs/laragon/www/neos/Packages/C:/Programs/laragon/www/neos/Packages/Application/Neos.Behat/composer.json".
Comme vous pouvez le voir dans le message d'erreur, pour une raison quelconque, le chemin est répété deux fois. Quelque chose de similaire m'est arrivé avec Symfony 5, où j'ai trouvé une solution en définissant l'option "runtime" dans composer.json. Voir le problème sur Github : Symfony [Runtime] Correction pour Windows lorsque les projets sont déployés sur des jonctions/symlinks.
Avec Neos, je n'utilisais pas de liens symboliques, mais de toute façon, je suppose que cela pourrait être lié à realpath() et Windows.
Sur Neos, je n'arrive pas à résoudre le problème. La seule solution que j'ai trouvée a été d'installer via Docker combiné avec Composer. L'installation avec Composer seul soulève toujours cette erreur pour moi et je n'ai aucune idée de comment la résoudre pour le moment.
En gros, j'ai exécuté la commande suivante :
# Working docker run -v .:/app -it --rm composer create-project neos/neos-base-distribution neos
Au lieu de :
# Lève une erreur composer create-project neos/neos-base-distribution neos
Ne me demandez pas pourquoi cela fonctionne. En fait, même en utilisant Docker, j'ai rencontré d'autres erreurs (voir ci-dessous) mais j'ai réussi à les résoudre.
Impossible de publier "C:/Programmes/laragon/www/neos/Packages/Framework/Neos.Flow/Resources/Public" dans la cible de publication de ressources "localWebDirectoryStaticResourcesTarget" parce que le répertoire source n'a pas pu être relié par un lien symbolique à l'emplacement de la cible.
Solution : ouvrez un terminal en tant qu'administrateur et exécutez la commande suivante :
php flow flow:cache:warmup
Si cela ne suffit pas, essayez de lancer ces deux commandes :
php flow flow:core:compile php flow flow:cache:warmup
Enfin, vous pouvez essayer de supprimer le dossier Data\Temporary dans votre installation de Neos, puis exécuter à nouveau les deux commandes.
Vous exécutez le CLI Flow avec un binaire PHP différent de celui que Flow est configuré pour utiliser en interne.
Flow fonctionne avec PHP "8.1.10", alors que la version de PHP que Flow est configuré pour utiliser pour les sous-requêtes est "". Assurez-vous de configurer Flow pour qu'il utilise la même version de PHP en définissant l'option de configuration "Neos.Flow.core.phpBinaryPathAndFilename" à un binaire PHP-CLI de la version 8.1.10. Videz les caches en supprimant le dossier Data/Temporary avant d'exécuter Flow/Neos à nouveau.
Cela m'est arrivé après avoir exécuté les configurations de la base de données et du gestionnaire d'images. Bien sûr, j'ai défini la version de PHP dans mon Settings.yaml.
Vous exécutez Neos/Flow avec une version de PHP différente de celle que Flow est configuré pour utiliser en interne.
Ce message d'erreur peut apparaître juste après l'installation de Neos et même, encore une fois, après avoir configuré les paramètres de la base de données. Ne me demandez pas pourquoi.
Essayez de lancer cette commande chaque fois que vous voyez l'erreur.
php flow flow:core:compile
Cela devrait au moins résoudre le problème temporairement.
The specified path to your PHP binary (see Configuration/Settings.yaml) is incorrect or not a PHP command line (cli) version.
En fait, vous devez vérifier l'option phpBinaryPathAndFilename dans le fichier Configuration/Settings.yaml.
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
Cela est probablement dû au fait que vous devez vider le cache à l'aide de la commande :
./flow flow:cache:flush
J'espère que cela vous aidera à résoudre la plupart des erreurs que vous pourriez rencontrer !