Cómo instalar Magento 2 con Nginx y Let’s Encrypt SSL en Ubuntu 20.04 LTS

Magento es un software de comercio electrónico de código abierto ampliamente utilizado y un sistema de gestión de contenidos para sitios web de comercio electrónico basado en PHP Zend Framework. Utiliza MySQL o MariaDB como base de datos. El desarrollo de Magento se inició en 2008 por Varien.

En este tutorial, te mostraremos paso a paso cómo instalar Magento 2 en la última versión Ubuntu 20.04. Instalaremos Magento bajo la pila LEMP, el servidor web Nginx, PHP-FPM 7.3 y el servidor MariaDB.

Requisitos

Para este tutorial, instalaremos Magento 2 en el sistema Ubuntu 20.04 con 2 GB de RAM, 50 GB de espacio libre en disco y 2 CPUs.

¿Qué haremos?

  • Instalar el servidor web Nginx
  • Instalar y configurar PHP-FPM 7.3
  • Instalar y configurar el servidor MySQL
  • Instalar PHP Composer
  • Descargar e Instalar Magento
  • Generar SSL Letsencrypt
  • Configurar Nginx Virtualhost para Magento
  • Post-Instalación de Magento

Paso 1 – Instalar el servidor web Nginx

En primer lugar, instalaremos el servidor web Nginx en el sistema Ubuntu 20.04.

Instala Nginx utilizando el comando apt que aparece a continuación.

sudo apt install nginx

Una vez completada la instalación, inicia el servicio Nginx y añádelo al arranque del sistema.

systemctl start nginx
systemctl enable nginx

Después, comprueba el estado del servicio Nginx utilizando el siguiente comando.

systemctl status nginx

El servidor web Nginx está en funcionamiento en el servidor Ubuntu 20.04.

Instalar Nginx

A continuación, abriremos los puertos HTTP y HTTPS en nuestro sistema Ubuntu.

Ejecuta el siguiente comando ufw.

for svc in ssh http https
do
ufw allow $svc
done

Como resultado, los servicios SSH, HTTP y HTTPS se han añadido a la regla de cortafuegos ufw.

Ahora ejecuta la habilitación del cortafuegos ufw mediante el siguiente comando.

ufw enable

Escribe «y» y pulsa Intro, y habrás habilitado el cortafuegos ufw.

Paso 2 – Instalar y configurar PHP-FPm 7.3

Tras instalar el servidor web Nginx, instalaremos el PHP-FPM en nuestro servidor Ubuntu 20.04.

Por defecto, el Ubuntu 20.04 viene con la versión más reciente de PHP/PHP-FPM 7.4. Pero por ahora, Magento sólo funciona con PHP/PHP-FPM 7.3. Y en este paso, instalaremos el PHP-FPM 7.3 desde el repositorio PPA.

Antes de continuar, instala el paquete ‘software-properties-common’ y añade el repositorio PPA para PHP 7.3 utilizando el siguiente comando.

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

El comando ‘add-apt-repository’ actualizará automáticamente todos los repositorios del sistema.

Ahora instala los paquetes PHP-FPM 7.3 desde el repositorio PPA utilizando el siguiente comando apt.

sudo apt install php7.3-fpm php7.3-common php7.3-curl php7.3-cli php7.3-mysql php7.3-gd php7.3-xml php7.3-json php7.3-intl php-pear php7.3-dev php7.3-common php7.3-mbstring php7.3-zip php7.3-soap php7.3-bcmath php7.3-opcache -y

Y la instalación de PHP-FPM 7.3 se habrá completado.

Después, ve al directorio ‘/etc/php/7.3’ y edita la configuración ‘php.ini’ para PHP-FPM.

cd /etc/php/7.3/
vim fpm/php.ini

Descomenta y cambia la configuración como se indica a continuación.

date.timezone = Asia/Singapore
memory_limit = 1G
max_execution_time = 1800
zlib.output_compression = On
cgi.fix_pathinfo = 0

opcache.enable=1
opcache.save_comments = 1

Guárdala y ciérrala.

A continuación, inicia el servicio PHP-FPM y añádelo al arranque del sistema.

systemctl start php7.3-fpm
systemctl enable php7.3-fpm

Instalar y configurar PHP-FPM 7.3

El servicio PHP-FPM está en marcha, compruébalo con el comando que aparece a continuación.

ss -xa | grep php
systemctl status php7.3-fpm

Como resultado, el PHP-FPM está en funcionamiento en el servidor Ubuntu 20.04, se ejecuta bajo el archivo sock ‘/run/php/php7.3-fpm.sock’.

Comprueba el servicio PHP-FPM

Paso 3 – Instalar y configurar el servidor MariaDB

En este paso, instalaremos el servidor de base de datos MariaDB, configuraremos la contraseña raíz por defecto para MariaDB y crearemos una nueva base de datos y un nuevo usuario para Magento.

Instala los paquetes del Servidor MariaDB en el Ubuntu 20.04 utilizando el comando apt que aparece a continuación.

sudo apt install mariadb-server

Una vez completada la instalación, inicia el servicio MariaDB y añádelo al arranque del sistema.

systemctl start mariadb
systemctl enable mariadb

El servicio MariaDB ya está en marcha.

A continuación, configuraremos la contraseña raíz de MariaDB utilizando la utilidad ‘mysql_secure_instalaltion’.

Ejecuta el comando ‘mysql_secure_instalaltion’ que aparece a continuación.

mysql_secure_installation

Escribe tu contraseña segura para el usuario root de MariaDB y escribe ‘Y’ para toda la configuración.

Set a root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Como resultado, se ha configurado la contraseña raíz de MariaDB.

Configurar la contraseña raíz de MariaDB

A continuación, crearemos una nueva base de datos y un nuevo usuario para la instalación de Magento.

Accede al intérprete de comandos MariaDB/MySQL utilizando el comando mysql que aparece a continuación.

mysql -u root -p

Ahora crea una nueva base de datos para nuestra instalación de Magento. Crea la base de datos ‘magentodb’ y el usuario ‘magentouser’ con la contraseña ‘magentodbpass’.

Ejecuta las siguientes consultas MySQL.

create database magentodb;
create user magentouser@'localhost' identified by 'magentopassdb';
grant all privileges on magentodb.* to magentouser@'localhost';
flush privileges;

Ahora escribe ‘exit’ para salir del intérprete de comandos de MySQL.

Crear base de datos para Magento

Como resultado, se ha completado la instalación de la nueva base de datos y el nuevo usuario para Magento.

Paso 4 – Instalar Composer

Composer es un gestor de dependencias para PHP. Es un gestor de paquetes a nivel de aplicación para PHP que te permite descargar dependencias y librerías PHP adicionales a tu proyecto PHP.

En este paso, instalaremos PHP Composer desde el repositorio de Ubuntu.

Instala Composer utilizando el comando apt que aparece a continuación.

sudo apt install composer -y

Una vez completada la instalación, comprueba la versión de Composer a continuación.

composer --version

A continuación se muestra la respuesta que obtendrás.

Composer 1.10.1 2020-03-13 20:34:27

Como se puede ver, el Composer 1.10 ha sido instalado en el Servidor ubuntu 20.04.

Paso 5 – Descargar e instalar Magento 2

En este paso, descargaremos e instalaremos el Magento 2, y todos los paquetes PHP necesarios utilizando el Composer.

En primer lugar, ve al directorio ‘/var/www/’ y descarga el código fuente de Magento 2.3.5 CE (Community Edition) utilizando el comando wget como se indica a continuación.

cd /var/www/
wget -q https://github.com/magento/magento2/archive/2.3.5.tar.gz

Una vez completado todo, extrae el código fuente de Magento y renombra el directorio extraído a directorio ‘magento2’.

tar -xf 2.3.5.tar.gz
mv magento2-*/ magento2/

A continuación, ve al directorio de instalación de Magento ‘/var/www/magento2’ e instala todas las dependencias de los paquetes PHP para Magento utilizando el comando Composer como se indica a continuación.

cd /var/www/magento2/
composer install

Descargar e instalar Magento 2

Una vez completada toda la instalación, fija la propiedad del directorio de instalación de Magento 2 al usuario ‘www-data’.

chown -R www-data:www-data /var/www/magento2

Como resultado, la instalación de Magento 2 y todas las dependencias de paquetes se ha completado.

Paso 6 – Generar SSL Letsencrypt

Para este tutorial, aseguraremos la instalación de Magento 2 utilizando el SSL Letsencrypt. Y en este paso, generaremos el SSL Letsencrypt utilizando el comando certbot. Asegúrate también de que tu nombre de dominio está resuelto en la dirección IP del servidor.

Instala la herramienta certbot utilizando el siguiente comando apt.

sudo apt install certbot

Una vez completada la instalación, detén el servicio Nginx.

systemctl stop nginx
certbot certonly --standalone --agree-tos --no-eff-email --email [email protected] -d magento.hakase-labs.io

Una vez completado todo, obtendrás tus certificados SSL en el directorio ‘/etc/letsencrypt/live/magento.tu-dominio.com’.

Como resultado, se ha generado la instalación SSL Letsencrypt para Magento 2.

Paso 7 – Configurar Nginx Virtualhost para Magento 2

En este paso, añadiremos una nueva configuración de Nginx virtualhost para Magento 2.

Ve al directorio ‘/etc/nginx/sites-available/’ y crea una nueva configuración ‘magento’ utilizando el editor vim.

cd /etc/nginx/sites-available/
vim magento

Pega en ella la siguiente configuración.

upstream fastcgi_backend {
        server  unix:/run/php/php7.3-fpm.sock;
}
server {
listen 80;
listen [::]:80;
server_name magento.hakase-labs.io;
return 301 https://$server_name$request_uri;
}

server {

listen 443 ssl http2;
server_name magento.hakase-labs.io;

ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.io/privkey.pem;

set $MAGE_ROOT /var/www/magento2;
set $MAGE_MODE developer;
include /var/www/magento2/nginx.conf.sample;
}

Guárdala y ciérrala.

A continuación, activa el host virtual Magento Nginx y prueba la configuración nginx, y asegúrate de que no se produce ningún error.

ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
nginx -t

Ahora reinicia el servicio Nginx utilizando el siguiente comando.

systemctl restart nginx

Como resultado, se ha creado y activado la configuración del host virtual Nginx para Magento 2.

Configurar Nginx virtualhost para Magento

Paso 8 – Postinstalación de Magento

Abre tu navegador web y escribe el nombre de dominio de tu instalación de Magento en la barra de direcciones.

https://magento.hakase-labs.io/

Ahora se te redirigirá a la conexión segura HTTPS y aparecerá la página de bienvenida de Magento y las Condiciones del servicio.

Instalar Magento 2

Haz clic en el botón‘Aceptar e instalar Magento‘ para continuar.

En la página ‘Comprobación de disponibilidad’, asegúrate de que todos los requisitos están en verde y haz clic en el botón‘Siguiente‘.

Preparación de los requisitos del sistema

Introduce los datos de la base de datos MariaDB y del usuario que hemos creado anteriormente y haz clic en «Siguiente«.

Configurar base de datos

Para la ‘Configuración web’, cambia todo el protocolo HTTP a HTTPS, y asegúrate de cambiar la ‘Dirección del administrador de Magento’.

Configuración HTTPS de Magento

Ahora haz clic en ‘Opciones Avanzadas’ y marca todas las opciones HTTPS, luego desmarca la opción ‘Reescrituras Apache’ y vuelve a hacer clic en el botón‘Siguiente‘.

A continuación, en la configuración ‘Personaliza tu tienda’ de Magento, déjalo por defecto y pulsa el botón ‘Siguiente‘.

Cuztomización Magento Stor

Ahora escribe los detalles de usuario admin, correo electrónico y contraseña. Luego haz clic en el botón Siguiente.

Usuario de configuración de Magento

Haz clic en el botón ‘ Instalar ahora ‘ para instalar tu tienda Magento 2.

Instalar Magento

Ahora asegúrate de que la instalación no tiene ningún error.

Instalar Magento

Una vez finalizada la instalación, aparecerá la página«Éxito» que se muestra a continuación.

La instalación de Magento ha finalizado

Haz clic en «Iniciar Magento Admin» para acceder a tu panel de administración de Magento.

Administración de inicio de sesión de Magento

Ahora escribe tu usuario y contraseña de Magento Admin, luego haz clic en » Iniciar sesión » y verás el panel de control de Magento Admin como se muestra a continuación.

Magento Admin Dashoard

Para la página de índice por defecto de Magento, abre una nueva pestaña y escribe el nombre de tu dominio en la barra de direcciones.

A continuación se muestra la página de índice por defecto de Magento.

Índice Magento

Como resultado, la instalación de Magento 2 se ha completado.

A continuación, vuelve al shell de tu servidor y vamos a configurar el Cron de Magento y a eliminar el permiso de escritura de algún directorio de instalación de Magento.

Para configurar el cron de Magento, ejecuta el siguiente comando.

cd /var/www/magento2
sudo -u www-data php bin/magento cron:install --force

El cron de Magento se ejecutará bajo el usuario ‘www-data’, compruébalo con el siguiente comando.

crontab -u www-data -l

Como resultado, el Magento Cron se ha añadido al sistema.

Configurar Cron de Magento y eliminar el permiso de escritura

A continuación, tenemos que eliminar el permiso de escritura del directorio ‘/var/www/magento2/app/etc’.

Ejecuta el siguiente comando chmod.

chmod u-w /var/www/magento2/app/etc

Y finalmente, la instalación de Magento 2 con el servidor web Nginx, el servidor MariaDB, PHP-FPM 7.3 en el último Ubuntu 20.04 se ha completado con éxito.

Referencia

También te podría gustar...