Usar una versión distinta de PHP para Composer

Este blog tiene el fin de ser un repositorio de ideas y soluciones a inquietudes que se nos presenten en el día a día y servir como ayuda a otros usuarios que se encuentren con las mismas inquietudes que nosotros nos topamos en algún momento.

Usar una versión distinta de PHP para Composer

Para quienes a menudo desarrollan en PHP, de seguro han utilizado Composer, que es un gestor de Paquetes o manejador de dependencias para PHP. Por lo general al ejecutar Composer desde la consola, ya sea desde nuestro equipo local o directamente en el servidor del cual estemos desarrollando, este hace el trabajo sin incovenientes. Pero como la vida del programador nunca es sencilla, y no faltan los mensajes de advertencias o errores que nos hacen sufrir más de la cuenta a veces es necesario buscar alternativas para salir del problema de momento.

Se pueden dar alguna de estas situaciones:
a) La versión de PHP que se ejecuta en nuestra consola sea distinta a la versión que tenemos en nuestros sitio web, lo que evidentemente puede ser un problema.
b) que por temas de seguridad los php.ini posean deshabilitadas ciertas funciones que son necesarias para ejecutar la instalación vía Composer, pero que a su vez sean un riesgo para nuestro sitios públicos (alguien dijo proc_open, proc_close).

La solución para el segundo caso, y no comprometer la seguridad, sería crear un php.ini alternativo de la versión de PHP que tenemos problemas.
Por ejemplo en DirectAdmin la ruta de nuestros php.ini para la versión 7.3 están en:

/usr/local/php73/lib/php.ini

Podemos crear en la misma ruta un copia con el nombre php-insecure.ini y editar las funciones deshabilitadas en él, para luego ejecutar lo siguiente:

php -c /usr/local/php73/lib/php-insecure.ini /usr/local/bin/composer update

o bien como :

php -c /usr/local/php73/lib/php-insecure.ini /usr/local/bin/composer.phar update

Está solución sirve para ambos casos, ya que podríamos directamente indicar el php.ini de la versión de PHP que queremos ejecutar.

Pero como alternativa a la primera situación, en caso que necesitemos que nuestra consola ejecute una versión especifica de PHP, y no solo ejecutar una instrucción de Composer, podemos editar nuestro archivo .bash_profile de la carpeta home del usuario, y agregar la siguiente linea:

export PATH=/usr/local/php73/bin:$PATH

Una vez guardado ejecutamos:

. ~/.bash_profile

Y nuestra consola quedará funcionando con la versión de PHP que se le indico y se puede verificar con: php -v

Agregar un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *