Magento instalación · 9 min read · Oct 14, 2025

Cómo instalar Magento 2 con Nginx y Letsencrypt en Ubuntu 18.04

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

En este tutorial, te mostraré cómo instalar Magento 2 con Nginx, PHP 7.1 FPM y MySQL como base de datos. Utilizaré Ubuntu 18.04 (Bionic Beaver) como sistema operativo del servidor. Si aún no tienes una configuración mínima del servidor, consulta este tutorial para obtener una configuración base adecuada.

Requisitos previos

  • Ubuntu 18.04
  • 2GB o más de memoria RAM
  • Privilegios de root

Lo que haremos

  1. Instalar Nginx en Ubuntu 18.04
  2. Instalar y configurar PHP-FPM 7.1
  3. Instalar y configurar el servidor MySQL
  4. Instalar y configurar Magento 2 1. Instalar PHP Composer
  5. Descargar Magento 2
  6. Instalar componentes de Magento
  7. Generar SSL Letsencrypt
  8. Configurar el host virtual de Nginx para Magento
  9. Post-instalación de Magento
  10. Pruebas

Paso 1 - Instalar Nginx en Ubuntu 18.04 LTS

En este tutorial, utilizaremos el servidor web Nginx para nuestra instalación de Magento.

Inicia sesión en el servidor, actualiza el repositorio y actualiza todos los paquetes.

sudo apt update  
sudo apt upgrade

Ahora instala el servidor web Nginx utilizando el comando apt a continuación.

sudo apt install nginx -y

Después de que la instalación esté completa, inicia el servicio Nginx y habilítalo para que se inicie cada vez que se inicie el sistema.

systemctl start nginx  
systemctl enable nginx

El servidor web Nginx ha sido instalado, verifícalo utilizando el comando netstat y asegúrate de que el puerto HTTP 80 esté en estado ‘LISTEN’. Otra forma es utilizando el comando curl como se muestra a continuación.

netstat -plntu  
curl -I localhost

Instalar servidor web Nginx

Paso 2 - Instalar y configurar PHP-FPM 7.1

Después de la instalación del servidor web Nginx, instalaremos PHP 7.1 en el servidor ya que Magento aún no es compatible con PHP 7.2. Instalaremos PHP-FPM con todas las extensiones necesarias para Magento 2.

Lista de extensiones de PHP necesarias para la instalación de Magento 2:

  • bc-math
  • ctype
  • curl
  • dom
  • gd, ImageMagick 6.3.7 (o posterior) o ambos
  • intl
  • mbstring
  • mcrypt
  • hash
  • openssl
  • PDO/MySQL
  • SimpleXML
  • soap
  • spl
  • libxml
  • xsl
  • zip
  • json
  • iconv

Para esta guía, instalaremos los paquetes PHP-FPM desde el repositorio PPA. Utilizaremos el repositorio ‘ondrej/php’.

Instala el paquete ‘software-properties-common’ y agrega el repositorio ‘ondrej/php’ utilizando los comandos a continuación.

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

Instalar PHP 7.1

Ahora instala PHP-FPM 7.1 con todas las extensiones necesarias.

sudo apt install php7.1-fpm php7.1-mcrypt php7.1-curl php7.1-cli php7.1-mysql php7.1-gd php7.1-xsl php7.1-json php7.1-intl php-pear php7.1-dev php7.1-common php7.1-mbstring php7.1-zip php7.1-soap php7.1-bcmath -y

Después de que la instalación esté completa, verifica la versión de PHP y las extensiones instaladas utilizando los comandos de PHP.

php -v  
php -me

Verificar instalación de PHP

A continuación, configuraremos el archivo php.ini para PHP-FPM y PHP-CLI.

Edita los archivos php.ini utilizando vim.

vim /etc/php/7.1/fpm/php.ini  
vim /etc/php/7.1/cli/php.ini

Cambia el valor de esas líneas como se muestra a continuación.

memory_limit = 512M
max_execution_time = 180
zlib.output_compression = On

Guarda y sal.

Ahora reinicia el servicio PHP-fpm y habilítalo para que se inicie cada vez que se inicie el sistema.

systemctl restart php7.1-fpm  
systemctl enable php7.1-fpm

La instalación y configuración de PHP-FPM 7.1 se ha completado, verifica el servicio utilizando el comando netstat.

netstat -pl | grep php

Y obtendrás el archivo de socket de PHP-fpm como se muestra a continuación.

Verificar socket de PHP-FPM

Paso 3 - Instalar y configurar el servidor MySQL

El software de Magento requiere MySQL 5.6.x, y Magento 2.1.2 o posterior requiere MySQL 5.7.x. En este tutorial, instalaremos el último servidor MySQL 5.8 en el sistema Ubuntu 18.04.

Instala MySQL 5.8 utilizando el comando apt a continuación.

sudo apt install mysql-server mysql-client -y

Después de que la instalación esté completa, inicia el servicio MySQL y habilítalo para que se inicie cada vez que se inicie el sistema.

systemctl start mysql  
systemctl enable mysql

Ahora configuraremos la contraseña de root de MySQL utilizando el comando ‘mysql_secure_installation’.

mysql_secure_installation

En esta versión de MySQL 5.8, hay una mejora de seguridad para la política de contraseñas de MySQL. Debes elegir la política de contraseñas: 0 para la política BAJA, 1 para la política MEDIA y 2 para una política de contraseña FUERTE.

Para esta guía, utilizaremos la política de contraseña ‘MEDIA’, y se recomienda utilizar la política de contraseña ‘FUERTE’ en el servidor de producción.

Elige el número ‘1’ y presiona Enter, luego escribe tu nueva contraseña de ‘root’ de MySQL.

Asegurar instalación de MySQL

 Eliminar usuarios anónimos? (Presiona y|Y para Sí, cualquier otra tecla para No) : Y  
 Deshabilitar el inicio de sesión remoto de root? (Presiona y|Y para Sí, cualquier otra tecla para No) : Y  
 Eliminar la base de datos de prueba y el acceso a ella? (Presiona y|Y para Sí, cualquier otra tecla para No) : Y  
 Recargar tablas de privilegios ahora? (Presiona y|Y para Sí, cualquier otra tecla para No) : Y

La contraseña de root de MySQL ha sido configurada.

A continuación, crearemos una nueva base de datos para nuestra instalación de Magento. Crearemos una nueva base de datos llamada ‘magentodb’ con el usuario ‘magentouser’ y la contraseña es ‘Magento0463@#’.

Inicia sesión en el shell de MySQL utilizando el usuario root.

mysql -u root -p

Ahora ejecuta las consultas de MySQL a continuación para crear la base de datos y el usuario.

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

La instalación y configuración del servidor MySQL para la instalación de Magento se ha completado.

Crear base de datos y usuario de MySQL para Magento

Paso 4 - Instalar y configurar Magento 2

En este paso, instalaremos la última versión de Magento 2.2.4 desde el repositorio de Github. Instalaremos el PHP composer para instalar los componentes de Magento, descargar Magento del repositorio de Github, configurar el host virtual de Nginx para Magento e instalar Magento utilizando la instalación posterior basada en la web.

- Instalar PHP Composer

Instala PHP Composer en Ubuntu 18.04 utilizando el comando apt a continuación.

sudo apt install composer -y

Después de que la instalación esté completa, verifica la versión de composer instalada en el sistema.

composer -V

La última versión de PHP Composer ha sido instalada.

- Descargar Magento 2

Ve al directorio ‘/var/www’ y descarga el código fuente del archivo de Magento desde Github utilizando el comando wget.

cd /var/www/  
wget https://github.com/magento/magento2/archive/2.2.4.tar.gz

Ahora extrae el archivo de archivo de Magento y renombra el directorio a ‘magento2’.

tar -xf 2.2.4.tar.gz  
mv magento2-2.2.4/ magento2/

El código fuente de Magento ha sido descargado, y el directorio ‘/var/www/magento2’ será la raíz web para el sitio de Magento.

- Instalar componentes de Magento

Instala los componentes de Magento utilizando el PHP composer. Ve al directorio ‘magento2’ e instala todos los componentes de PHP necesarios para Magento utilizando el comando ‘composer’.

cd /var/www/magento2  
composer install -v

Después de que la instalación esté completa, obtendrás el resultado como se muestra a continuación.

- Generar SSL Letsencrypt

Aseguraremos nuestra instalación de Magento utilizando SSL de Letsencrypt. Instala Letsencrypt utilizando el comando apt a continuación.

sudo apt install letsencrypt -y

Después de que la instalación esté completa, detén el servicio nginx.

systemctl stop nginx

Ahora genera los certificados SSL para el nombre de dominio utilizando el comando certbot como se muestra a continuación.

certbot certonly --standalone -d magento.hakase-labs.pw

Escribe tu dirección de correo electrónico, acepta los TOS de Letsencrypt, luego escribe ‘N’ para compartir el correo electrónico.

Habilitar certificado SSL de Let's encrypt

Cuando esté completo, obtendrás el resultado como se muestra a continuación.

Certificado SSL emitido con éxito

Los archivos del certificado SSL de Letsencrypt se han generado en el directorio ‘/etc/letsencrypt/live’.

- Configurar el host virtual de Nginx

Ve al directorio ‘/etc/nginx/sites-available’ y crea un nuevo archivo de host virtual ‘magento’ utilizando vim.

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

Pega la siguiente configuración allí.

upstream fastcgi_backend {
        server  unix:/run/php/php7.1-fpm.sock;
}

server {
    listen 80;
    listen [::]:80;
    server_name magento.hakase-labs.pw;
    return 301 https://$server_name$request_uri;
}

server {

        listen 443 ssl;
        server_name magento.hakase-labs.pw;

        ssl on;
        ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.pw/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.pw/privkey.pem;

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

Guarda la configuración y sal.

Ahora activa el host virtual creando el enlace simbólico para el archivo de host virtual de Magento en el directorio ‘sites-enabled’.

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

Prueba el archivo de configuración de nginx y asegúrate de que no haya errores.

nginx -t

Ahora reinicia el servicio PHP-FPM y Nginx.

systemctl restart php7.1-fpm  
systemctl restart nginx

Y cambia el propietario del directorio raíz web de Magento al usuario y grupo ‘www-data’.

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

El host virtual de nginx para Magento ha sido agregado.

- Post-instalación de Magento

Abre el navegador web y escribe la URL de Magento. La mía es:

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

Para los ‘Términos y Acuerdo’, haz clic en el botón ‘Aceptar y Configurar Magento’.

Instalador web de Magento

Ahora verifica toda la configuración del sistema y del servidor para el ‘Chequeo de Readlines’ de Magento, y asegúrate de que ‘pase’ todas las verificaciones del sistema y de configuración como se muestra a continuación.

Verificar requisitos previos

Ahora haz clic en el botón ‘Siguiente’.

Configuración de la base de datos para Magento - escribe toda nuestra información de base de datos y haz clic en ‘Siguiente’.

Configuración de base de datos

Para la configuración web, cambia la ‘dirección de la tienda’ a HTTPS, ‘Dirección de Admin de Magento’ con tu URL de ruta de admin y desmarca las ‘Reescrituras de Apache’, porque estamos utilizando el servidor web Nginx.

Configuración web

Haz clic en el botón ‘Siguiente’ nuevamente.

Deja ‘Personaliza tu tienda’ como predeterminado y haz clic en ‘Siguiente’.

Personalizar tienda Magento

Escribe tu usuario y contraseña de admin, luego haz clic en ‘Siguiente’.

Configurar la cuenta de admin

Y haz clic en el botón ‘Instalar ahora’ para instalar Magento.

Iniciar instalación de Magento

Y cuando la instalación esté completa, obtendrás el resultado de ‘éxito’ como se muestra a continuación.

Instalación de Magento exitosa

Ahora necesitamos deshabilitar el acceso de escritura para el directorio ‘/var/www/magento2/app/etc’. Ejecuta el comando a continuación.

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

Magento ha sido instalado en el servidor Ubuntu 18.04 Bionic Beaver.

Paso 5 - Pruebas

Escribe la dirección URL de inicio de Magento y asegúrate de que obtienes la página de inicio predeterminada de Magento. La mía es: https://magento.hakase-labs.pw/

Página de inicio de Magento

Ahora inicia sesión en el panel de administración de Magento visitando la URL definida durante la instalación ‘admin_hakase’. La mía es:

https://magento.hakase-labs.pw/admin_hakase/

Inicio de sesión en el backend de Magento

Escribe el nombre de usuario y la contraseña, luego haz clic en el botón ‘Iniciar sesión’.

Y obtendrás el panel de administración de Magento como se muestra a continuación.

Panel de control de Magento

Magento 2 ha sido instalado en Ubuntu 18.04 con servidor web Nginx, base de datos MySQL y PHP-FPM 7.1.

Adicional:

Si obtienes un error sobre un cronjob de indexador de Magento que falta, puedes solucionarlo generando el script de crontab utilizando el comando a continuación.

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

Ahora verifica la lista del script de crontab para el usuario ‘www-data’.

crontab -u www-data -l

Configurar cronjob de indexador de Magento

Referencia

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.