:::: MENU ::::

Instalar Magento 2 desde GitHub (y para realizar contribuciones al core)

5.00 avg. rating (88% score) - 2 votes

Realizar contribuciones al core de Magento 2

En este tutorial explicamos cómo realizar la instalación de la última de las formas, es decir, este tutorial NO es el adecuado salvo que quieras realizar contribuciones al CORE de Magento 2.

Si todavía no tienes configurado tu entorno para Magento 2, puedes echar un vistazo a este otro tutorial donde te explico como configurar una máquina en Amazon EC2 para instalar Magento 2.

Usuario propietario de la instalación de Magento

Antes de comenzar con la instalación propiamente dicha, es necesario recordar que en prácticamente cualquier aplicación web recomendable que el usuario del servidor web (usuario apache o www-data habitualmente) no sea el propietario de los archivos de la aplicación.

Esto mejora la seguridad del sistema ya que de esta forma el propietario de los archivos únicamente es accesible desde la consola del servidor (podemos incluso deshabilitar el login) y eso hace más complicado que alguien con malas intenciones se cuele en nuestro servidor.

Tened en cuenta que la forma más común de subir malware a un servidor es «colarse» mediante el acceso al administrador de vuestro CMS (sea Magento, WordPress, o el que utilicéis). Limitando los permisos del usuario que ejecuta la aplicación web, mejoramos la seguridad. Esta forma de proceder es la recomendada por Magento también.

En nuestro caso y para lo que resta de tutorial, hemos creado en el servidor un usuario «magento», que utilizaremos para ejecutar todos los comandos.

Claves de Magento Connect y GitHub

Como queremos contribuir al core de Magento 2, qué menos que tener una cuenta en Magento Connect.

Si eres desarrollador, con seguridad ya la tienes y tendrás que acudir a ella para descargarte unas claves que te permitan conectarte al repositorio de composer de donde se descargarán todos los módulos de los que depende Magento 2 (Zend, Symfony, etc.)

Para conseguir estas claves, debes entrar en tu cuenta de Magento y luego ir a Desarrollador y posteriormente a Secure Keys.

Allí podrás crear (si no las tienes ya) tus claves de conexión al repositorio.

Conexión a tu cuenta de Magento

Conexión a cuenta Magento

Generar la clave oauth para acceso a GitHub

Al igual que ocurre con el repositorio de composer de Magento, para descargar el core, que está en GitHub y poder contribuir realizando cambios y creando pull requests, necesitaremos otra clave para conectarnos a GitHub.

Para crear u obtener vuestra clave, deberéis entrar en vuestra cuenta de GitHub y luego ir a la sección Personal Access Tokens.

github

Crear el archivo de autorización de Composer

Una vez conseguidas las claves de Magento Connect, necesitaréis crear un archivo auth.json en la siguiente ruta (suponiendo que vuestro usuario en el servidor es «magento»).

vim /home/magento/.composer/auth.json

El contenido del archivo será similar al siguiente:

{
    "http-basic": {
        "repo.magento.com": {
            "username": "nombre de usuario",
            "password": "contraseña"
        }
    }
} 

La clave de GitHub no es necesaria en este archivo y se os solicitará en algún momento durante la descarga de archivos de GitHub.

Instalar composer

Como comentábamos en la introducción, necesitaremos de composer para realizar parte de la instalación.

En concreto, mediante composer descargaremos todas las librerías y frameworks de los que depende Magento 2, es decir la parte correspondiente a Zend Framework, Symfony y unas cuantas librerías más, que sin formar parte del core de Magento 2, son utilizadas por este.

Para conseguir composer utilizaremos el comando:

curl -sS https://getcomposer.org/installer | php

Composer es simplemente un archivo, que por comodidad podemos mover a nuestra carpeta de ejecutables, de forma que podamos ejecutarlo desde cualquier lugar del sistema:

mv composer.phar /usr/sbin/composer

Instalar git

Como es lógico y si queremos contribuir con cambios a un repositorio GIT, necesitaremos también instalar GIT en nuestro servidor.

yum install git

Si queréis más info sobre GIT, podéis echar un vistazo a este tutorial: Gestión de proyectos con GIT

Clonar el repositorio de Magento 2

Una vez todo preparado, es hora de comenzar a descargar archivos.

En primer lugar clonaremos el repositorio de GIT a nuestra carpeta del servidor web.

Desde /var/www/html (o similar dependiendo de la distribución que utilicéis), podéis ejecutar:

git clone -b master https://github.com/magento/magento2.git

ATENCIÓN especial al «-b master». La rama por defecto del repositorio es la rama de desarrollo, pero para realizar la primera instalación, sobre todo si os estáis iniciando en Magento 2, os recomiendo descargar en primer lugar la rama master, que es más estable y podréis instalar sin errores.

Para el repositorio también os recomiendo desactivar la detección de cambios en los permisos.

git config core.fileMode false

Instalando las dependencias de Magento 2

Una vez descargado el repositorio, veremos una carpeta con todo el contenido, entramos y ejecutamos la isntalación de composer

cd magento2
composer install

Configurar los permisos de archivos en Magento 2

En Magento 2 la gestión de los permisos es algo más simple que en Magento 1.

Si habéis leído el artículo Configurar un servidor en EC2 para Magento 2 y habéis seguido la recomendación de crear un usuario separado para el sistema de archivos, solo tendréis que ejecutar los siguientes comandos:

find . -type d -exec chmod 770 {} \;
find . -type f -exec chmod 660 {} \;
chmod u+x bin/magento

Configurando la tarea Cron para Magento 2

En Magento 2 el proceso cron de Magento 1 se ha dividido en tres partes diferenciadas.

Por un lado se ejecutan los procesos propios de la tienda, como enviar correos, reindexados, limpieza de logs, etc. y por otro se utiliza para realizar actualizaciones y updates.

Será necesario las siguientes tareas en nuestro crontab:

vim crontab -e

Y añadimos las siguientes líneas:

*/1 * * * * php -c /etc/php.ini /var/www/html/magento2/bin/magento cron:run
*/1 * * * * php -c /etc/php.ini /var/www/html/magento2/update/cron.php
*/1 * * * * php -c /etc/php.ini /var/www/html/magento2/bin/magento setup:cron:run

Instalar los datos de ejemplo en Magento 2 (sample data)

A diferencia de lo que ocurría en Magento 1, los datos de ejemplo en Magento 2 pueden instalarse antes o después de instalar el core de Magento.

Al igual que para la instalación del core, para la instalación de los datos de ejemplo también tenemos varias opciones, pudiendo instalarlos vía composer, vía FTP o clonando un repositorio desde GitHub. En nuestro caso y para seguir en la línea del presente tutorial, utilizaremos GitHub para realizar la instalación.

Para ello deberemos ir a la misma carpeta donde clonamos el repositorio de Magento 2 e introducir el comando:

git clone -b master https://github.com/magento/magento2-sample-data.git

Una vez descargado el repositorio deberemos ejecutar un script php, como sigue:

cd magento2-sample-data/dev/tools/
php -f build-sample-data.php -- --ce-source="/var/www/html/magento2/"

Con esto habremos instalado los módulos adicionales requeridos para tener los sample data de magento. Sólo nos queda ejecutar la instalación, que creará las diferentes entradas en la base de datos para los diferentes tipos de entidades.

Desde nuestra carpeta de instalación de Magento 2, ejecutad:

php bin/magento setup:upgrade



Hey! Qué opinas sobre el artículo?