Configurazione di Neos CMS 9 con Laragon su Windows 11
Nessun file manifest del compositore trovato a ...
questo è l'errore che continuo a ricevere quando installo Neos CMS tramite Composer. L'ho descritto in dettaglio nella sezione Errori.
Per risolverlo, l'unica soluzione che ho trovato è stata quella di installare Neos usando Docker invece di Composer. Ho quindi eseguito Docker e il seguente comando:
docker run -v %cd%:/app -it --rm composer create-project neos/neos-base-distribution neos
Dopo di che, ho ricevuto ancora alcuni errori, come spiegato di seguito, ma alla fine ha funzionato.
- Il sistema non trova il percorso specificato
- Nessun file manifest di composer trovato nel percorso
- Non è stato possibile pubblicare... nella destinazione di pubblicazione delle risorse... perché la directory di origine non può essere collegata in symlink alla posizione di destinazione.
- Si sta eseguendo Neos/Flow con una versione di PHP diversa da quella che Flow è configurato per utilizzare internamente.
Se gli errori sono stati risolti e si riesce a vedere la schermata di benvenuto sul browser locale, è possibile eseguire il comando
php flow welcome
Verrà fornito un elenco di comandi da eseguire per configurare l'installazione di Neos.
Ho provato a usare l'interfaccia utente, ma dopo aver inserito la password di configurazione, sono rimasto bloccato su una pagina vuota in setup/login/authenticate e ho rinunciato, passando al terminale.
Ora configuro il database:
php flow setup:database
E inserite i vostri dati, che di solito sono:
- DB driver: pdo_mysql, ma si può usare anche mysqli
- Host: 127.0.0.1
- Database: neos (o il nome usato per creare il database in HeidiSQL)
- Nome utente: root
- Password: (lasciare vuoto, basta premere invio, è quella predefinita su Laragon, altrimenti scrivere la password impostata in HeidiSQL)
Ora è il momento del gestore di immagini:
php flow setup:imagehandler
Io sceglierei Imagick , ma potete scegliere GD se preferite.
Se non si ha Imagick, si può scaricare php_imagick.dll da PECL e poi mettere il file nella cartella PHP:
# Aggiungere il file php_imagick.dll qui: C:\Programmi\laragon\bin\p\php-8.1.10-Win32-vs16-x64\ext
Ora assicurarsi che i moduli siano abilitati in Laragon su Menu > Preferenze > PHP > Estensioni.
Infine, provare a ricaricare Laragon.
Se ancora non funziona (è successo anche a me), provare a modificare il php.ini e abilitare Imagick lì:
# C:\Programmi\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
Errori
Ecco alcuni errori che ho riscontrato durante l'installazione di Neos, sperando che vi siano utili:
Il sistema non riesce a trovare il percorso specificato
Probabilmente è necessario impostare il percorso corretto per PHP nel file \Configuration\Settings .yaml di Neos.
Ecco un esempio:
Neos: Flow: persistence: backendOptions: driver: pdo_mysql charset: utf8mb4 host: 127.0.0.1 mvc: routes: Neos.Flow: true phpBinaryPathAndFilename: 'C:/Programmi/laragon/bin/php/php-8.1.10-Win32-vs16-x64/php.exe' core: phpBinaryPathAndFilename: 'C:/Programmi/laragon/bin/php/php-8.1.10-Win32-vs16-x64/php.exe'
Alcune informazioni aggiuntive possono essere trovate qui: StackOverflow: Errore 500 nell'installazione di Neos CMS: Percorso specificato non trovato
Nessun file manifest del compositore trovato in "C:/Programs/laragon/www/neos/Packages/C:/Programs/laragon/www/neos/Packages/Application/Neos.Behat/composer.json".
Come si può vedere dal messaggio di errore, per qualche motivo il percorso viene ripetuto due volte. Mi è successo qualcosa di simile in Symfony 5, dove ho trovato una soluzione impostando l'opzione "runtime" in composer.json. Vedere il problema su Github: Symfony [Runtime] Fix for Windows when projects are deploy on junctions/symlinks.
Con Neos non usavo i link simbolici, ma comunque credo che possa essere qualcosa legato a realpath() e a Windows.
Su Neos non riesco a risolvere il problema. L'unica soluzione che ho trovato è stata l'installazione tramite Docker combinata con Composer. L'installazione con il solo Composer mi dà sempre questo errore e non ho ancora idea di come risolverlo.
In pratica ho eseguito il comando:
# Working docker run -v .:/app -it --rm composer create-project neos/neos-base-distribution neos
Invece di:
# solleva un errore composer create-project neos/neos-base-distribution neos
Non chiedetemi perché funziona. In realtà, anche usando Docker ho incontrato altri errori (vedi sotto), ma alla fine sono riuscito a risolverli.
Non è stato possibile pubblicare "C:/Programmi/laragon/www/neos/Packages/Framework/Neos.Flow/Resources/Public" nel target di pubblicazione delle risorse "localWebDirectoryStaticResourcesTarget" perché la directory di origine non poteva essere collegata in symlink alla posizione di destinazione.
Soluzione: aprire un terminale come amministratore ed eseguire il seguente comando:
php flow flow:cache:warmup
Se non è sufficiente, provare a eseguire questi due comandi:
php flow flow:core:compile php flow:cache:warmup
Infine, si può provare a cancellare la cartella Data\Temporary nell'installazione di Neos, quindi eseguire di nuovo i due comandi.
Si sta eseguendo la CLI di Flow con un binario PHP diverso da quello che Flow è configurato per usare internamente.
Flow è in esecuzione con PHP "8.1.10", mentre la versione di PHP che Flow è configurato per utilizzare per le richieste secondarie è "". Assicurarsi di configurare Flow in modo che utilizzi la stessa versione di PHP, impostando l'opzione di configurazione "Neos.Flow.core.phpBinaryPathAndFilename" su un binario PHP-CLI della versione 8.1.10. Eliminare la cache rimuovendo la cartella Data/Temporary prima di eseguire nuovamente Flow/Neos.
Questo è successo a me dopo aver eseguito le configurazioni del database e del gestore di immagini. Naturalmente ho impostato la versione di PHP in Settings.yaml.
Si sta eseguendo Neos/Flow con una versione PHP diversa da quella che Flow è configurato per usare internamente.
Questo messaggio di errore potrebbe apparire subito dopo l'installazione di Neos e anche dopo la configurazione delle impostazioni del database. Non chiedetemi perché.
Provate a eseguire questo comando ogni volta che vedete l'errore.
php flow:core:compile
Dovrebbe risolvere il problema almeno temporaneamente.
The specified path to your PHP binary (see Configuration/Settings.yaml) is incorrect or not a PHP command line (cli) version.
Fondamentalmente è necessario controllare l'opzione phpBinaryPathAndFilename all'interno del file 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
È probabile che ciò sia dovuto alla necessità di cancellare la cache utilizzando il comando:
./flow flow:cache:flush
Spero che questo vi aiuti a risolvere la maggior parte degli errori che potreste incontrare!