Configuración de Neos CMS 9 utilizando Laragon en Windows 11
No composer manifest file found at ...
este es el error que sigo obteniendo al instalar Neos CMS via Composer. Lo he detallado un poco más en la sección Errores más abajo.
Para solucionarlo, la única solución que encontré fue instalar Neos usando Docker en lugar de sólo Composer. Así que ejecuté Docker y luego el siguiente comando:
docker run -v %cd%:/app -it --rm composer create-project neos/neos-base-distribution neos
Después de eso, todavía tengo algunos errores como se explica a continuación, pero funcionó después de todo.
- El sistema no puede encontrar la ruta especificada
- No se ha encontrado ningún archivo de manifiesto de composer en la ruta
- Could not publish... into resource publishing target... because the source directory could not be symlinked at target location
- Estás ejecutando Neos/Flow con una versión de PHP diferente de la que Flow está configurado para usar internamente.
Si has corregido los errores y puedes ver la pantalla de bienvenida en tu navegador local, ahora puedes ejecutar
php flow welcome
Y esto te dará una lista de comandos a ejecutar para configurar la instalación de Neos.
Traté de usar la configuración de la interfaz de usuario, pero después de insertar la contraseña de configuración, me quedé atascado en una página en blanco en setup/login/authenticate y me di por vencido, pasando a la terminal.
Ahora configure la base de datos:
php flujo setup:base de datos
E inserte sus datos, que suelen ser:
- DB driver: pdo_mysql, pero también podrías usar mysqli
- Host: 127.0.0.1
- Base de datos: neos (o el nombre que utilizaste para crear tu base de datos en HeidiSQL)
- Nombre de usuario: root
- Contraseña: (déjala vacía, sólo presiona enter, este es el valor por defecto en Laragon, de lo contrario escribe la contraseña que configuraste en HeidiSQL)
Ahora es el momento para el Image Handler:
php flow setup:imagehandler
Yo optaría por Imagick aquí, pero usted puede elegir GD si lo prefiere.
Si no tienes Imagick, puedes descargar php_imagick.dll de PECL y luego poner el archivo en tu carpeta PHP:
# Agregue el archivo php_imagick.dll aquí: C:\Programs\laragon\bin\php\php-8.1.10-Win32-vs16-x64\ext
Ahora asegúrese de tener los módulos habilitados en su Laragon en Menú > Preferencias > PHP > Extensiones.
Finalmente intente recargar Laragon.
Si todavía no funciona (me pasó a mí también) intente modificar su php.ini y habilitar Imagick allí:
# C:\Programs\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
Errores
Aquí hay algunos errores que encontré durante la instalación de Neos, espero que esto le sea útil:
El sistema no puede encontrar la ruta especificada
Probablemente necesita establecer la ruta correcta a PHP en su archivo \Configuration\Settings .yaml en Neos.
He aquí un ejemplo:
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'
Puede encontrar información adicional aquí: StackOverflow: Error 500 en la instalación de Neos CMS: Ruta especificada no encontrada
No se ha encontrado ningún archivo de manifiesto de composer en "C:/Programs/laragon/www/neos/Packages/C:/Programs/laragon/www/neos/Packages/Application/Neos.Behat/composer.json".
Como puedes ver por el mensaje de error, por alguna razón la ruta se repite dos veces. Algo parecido me pasó en Symfony 5, donde encontré una solución configurando la opción "runtime" en composer.json. Ver el problema en Github: Symfony [Runtime] Fix for Windows when projects are deployed on junctions/symlinks.
Con Neos no usaba symlinks, pero de todas formas, supongo que puede ser algo relacionado con realpath() y Windows.
En Neos no soy capaz de resolver el problema. La única solución que encontré fue instalar a través de Docker combinado con Composer. Instalar sólo con Composer siempre me da este error y aún no tengo ni idea de cómo solucionarlo.
Básicamente ejecuté el comando:
# Working docker run -v .:/app -it --rm composer create-project neos/neos-base-distribution neos
En lugar de:
# Raises error composer create-project neos/neos-base-distribution neos
No me preguntes por qué funciona. En realidad, incluso usando Docker me encontré con otros errores (ver más abajo) pero al final conseguí solucionarlos.
No se pudo publicar "C:/Programs/laragon/www/neos/Packages/Framework/Neos.Flow/Resources/Public" en el destino de publicación de recursos "localWebDirectoryStaticResourcesTarget" porque el directorio de origen no se pudo enlazar simbólicamente en la ubicación de destino.
Solución: abra un Terminal como Administrador y ejecute el siguiente comando:
php flujo flujo:caché:calentamiento
Si eso no es suficiente, pruebe a ejecutar estos dos
php flow flow:core:compile php flow flow:cache:warmup
Y eventualmente puedes intentar borrar la carpeta Data\Temporary en tu instalación de Neos, luego ejecuta los dos comandos de nuevo.
Estás ejecutando el Flow CLI con un binario PHP diferente del que Flow está configurado para usar internamente.
Flow se está ejecutando con PHP "8.1.10", mientras que la versión de PHP que Flow está configurado para utilizar en las subpeticiones es "". Asegúrate de configurar Flow para usar la misma versión de PHP estableciendo la opción de configuración "Neos.Flow.core.phpBinaryPathAndFilename" a un binario PHP-CLI de la versión 8.1.10. Vacía las cachés eliminando la carpeta Data/Temporary antes de volver a ejecutar Flow/Neos.
Esto me ocurrió después de ejecutar las configuraciones de la base de datos y del manejador de imágenes. Por supuesto, configuré la versión de PHP en mi Settings.yaml.
Estás ejecutando Neos/Flow con una versión de PHP diferente de la que Flow está configurado para usar internamente.
Este mensaje de error puede aparecer justo después de instalar Neos e incluso, de nuevo, después de configurar la base de datos. No me preguntes por qué.
Intenta ejecutar este comando cada vez que veas el error.
php flujo:core:compilar
Al menos debería solucionar el problema temporalmente.
The specified path to your PHP binary (see Configuration/Settings.yaml) is incorrect or not a PHP command line (cli) version.
Básicamente tendrá que comprobar la opción phpBinaryPathAndFilename dentro del archivo 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
Es probable que esto se deba a que necesitas borrar la caché utilizando el comando:
./flow flow:cache:flush
Espero que esto te ayude a resolver la mayoría de los errores que puedas encontrarte.