Magento 2 – Ejecutar comandos consola en local

Como es lógico, muchos de nosotros trabajamos en local antes de subir Magento 2 al servidor de producción. Esto hace que muchas veces nos encontremos con problemas del estilo de diferencia de versiones (PHP, MYSQL…), falta de módulos de PHP, y también podemos encontrarnos que a la hora de usar la consola en Magento 2 cambie. Y de este último caso, es el que vamos a trabajar.

En un servidor contratado online, tenemos todo (o casi todo preparado). Y doy un paso más en el ejemplo que quiero dar. Hasta ahora, en un servidor online si queríamos ejecutar órdenes de consola de Magento 2, como es la limpieza de la Caché, utilizábamos la orden:

php bin/magento cache:enable

Y aquí, por inercia, no pensamos como llega a ejecutarse sin problemas. Pero en local, es otra cosa. Tu instalas Lampp en tu linux local, intentas ejecutarlo, y te dicé que tu tía. ¿A qué es devido? La respuesta es fácil. La orden php en el servidor online ya está en el sistema (digamos que la ruta ya la save Linux). Si tú estás en local y recién instalado Xampp, la orden php no está en el sistema y no te la encuentra.

Hay dos opciones. Yo opto siempre por la más limpia, aunque es la más pesada.

Si mi Lampp, está instalado en: /opt/lampp, entonces para ejecutar la orden anterior lo haré de la siquiente manera:

// Estoy en la carpeta donde está instalado Magento 2
/opt/lampp/bin/php bin/magento cache:flush

Si os fijáis, antes sólo ponía php, y ahora le pongo toda la ruta hasta llegar a la orden php para poderla ejecutar.

La otra opción es crear un enlace simbólico:

sudo ln -s /opt/lampp/bin/php /usr/bin/php

Pero sinceramente, al final dejaba cantidad de porquería y enlaces que no utilizaba… Si lo haces como he comentado anteriormente, no vas dejando nada por el camino.

Y como siempre, si no sabéis de qué va el tema, os recomiendo que no lo intentéis. Si aún así lo intentáis, copia de seguridad de todo…

Espero que os sea de utilidad.

Más información