Parece que la extensión fileinfo no se puede instalar para PHP 8.x en CentOS 7, ¿ahora qué?

No se puede instalar la extensión fileinfo para PHP 8.0, 8.1 en aapanel con CentOS 7

En los últimos días, experimentando con Magento 2 manejado por un nuevo panel de alojamiento web que descubrí recientemente, específicamente aapanel, encontré uno de esos errores que harían gritar a un desarrollador durante días. Instalé 2 versiones de PHP, la 7.4 y la 8.1 e intenté instalar las dependencias del proyecto magento a través de composer con una instalación simple de composer (usando PHP 8.1 en la CLI). La instalación arrojó las siguientes excepciones:

Problem 1                                                                                                                                                                                                            
- league/mime-type-detection is locked to version 1.11.0 and an update of this package was not requested.                                                                                                         - league/mime-type-detection 1.11.0 requires ext-fileinfo * -> it is missing from your system. Install or enable PHP's fileinfo extension.

Problem 2

- league/mime-type-detection 1.11.0 requires ext-fileinfo * -> it is missing from your system. Install or enable PHP's fileinfo extension.
- league/flysystem-aws-s3-v3 2.4.3 requires league/mime-type-detection ^1.0.0 -> satisfiable by league/mime-type-detection[1.11.0].
- league/flysystem-aws-s3-v3 is locked to version 2.4.3 and an update of this package was not requested.

Después de notar que la ext-fileinfo extensión de PHP 8.1 no estaba instalada, procedí a instalarla a través de la tienda de software de aapanel (este aapanel realmente facilita las cosas) con un simple clic:

aapanel fileextension php 8.1

Sin embargo, la instalación pareció comenzar pero nunca terminó, el proceso murió y la extensión nunca apareció como instalada en PHP 8.1 (hagas lo que hagas, la extensión nunca aparece como instalada y siempre faltará en PHP).

Justo en el momento en que ya me estaba rindiendo, decidí cambiar la versión CLI de PHP de 8.1 a 7.4. Luego intenté instalar la extensión fileinfo, pero esta vez, la extensión se instaló correctamente:

fileinfo aapanel php 7.4

Curiosamente me pasó lo mismo durante la instalación de la misma extensión con Aapanel en Ubuntu 20.04 también. Entonces, parece que no está relacionado con CentOS 7, sino con otra cosa.

Causa y solucion

La extensión fileinfo se puede instalar en el sistema ya que se puede compilar, sin embargo, el proceso de compilación está fallando. El problema está relacionado y parece ocurrir solo en servidores pequeños con pocos recursos, por ejemplo, este problema está ocurriendo en el VPS nanode en Linode (1 GB de RAM y 1 núcleo). La mejor solución sería simplemente pasar a un VPS más grande que tenga al menos 2 GB de RAM física.

Alternativamente, si cambiar el VPS no es una opción, puede aumentar la memoria disponible usando SWAP. Lo primero que debe hacer es instalar la extensión Linux Tools en la App Store:

Linux Tools Aapanel Plugin

Después de eso, abra el menú de configuración de este complemento y vaya a la pestaña Intercambiar/memoria virtual. En esta pestaña, necesitas agregar más RAM virtual a tu servidor, en mi caso la memoria física es de 1GB, entonces puedo crear un Swap de 1GB:

Swap Size Linux Tools

Una vez que se ha creado el intercambio, puede continuar con la instalación de la extensión fileinfo a través de la configuración de PHP, debería funcionar ahora como se esperaba.

Que te diviertas ❤️!


Conviertete en un programador más sociable

Patrocinadores