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
- Instalar Nginx en Ubuntu 18.04
- Instalar y configurar PHP-FPM 7.1
- Instalar y configurar el servidor MySQL
- Instalar y configurar Magento 2 1. Instalar PHP Composer
- Descargar Magento 2
- Instalar componentes de Magento
- Generar SSL Letsencrypt
- Configurar el host virtual de Nginx para Magento
- Post-instalación de Magento
- 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 upgradeAhora instala el servidor web Nginx utilizando el comando apt a continuación.
sudo apt install nginx -yDespué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 nginxEl 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
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
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 -yDespué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
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.iniCambia el valor de esas líneas como se muestra a continuación.
memory_limit = 512M
max_execution_time = 180
zlib.output_compression = OnGuarda 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-fpmLa instalación y configuración de PHP-FPM 7.1 se ha completado, verifica el servicio utilizando el comando netstat.
netstat -pl | grep phpY obtendrás el archivo de socket de PHP-fpm como se muestra a continuación.

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 -yDespué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 mysqlAhora configuraremos la contraseña de root de MySQL utilizando el comando ‘mysql_secure_installation’.
mysql_secure_installationEn 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.

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) : YLa 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 -pAhora 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.

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 -yDespués de que la instalación esté completa, verifica la versión de composer instalada en el sistema.
composer -VLa ú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.gzAhora 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 -vDespué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 -yDespués de que la instalación esté completa, detén el servicio nginx.
systemctl stop nginxAhora 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.pwEscribe tu dirección de correo electrónico, acepta los TOS de Letsencrypt, luego escribe ‘N’ para compartir el correo electrónico.

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

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 magentoPega 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 -tAhora reinicia el servicio PHP-FPM y Nginx.
systemctl restart php7.1-fpm
systemctl restart nginxY 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’.

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.

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’.

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.

Haz clic en el botón ‘Siguiente’ nuevamente.
Deja ‘Personaliza tu tienda’ como predeterminado y haz clic en ‘Siguiente’.

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

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

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

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/etcMagento 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/

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/

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.

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 --forceAhora verifica la lista del script de crontab para el usuario ‘www-data’.
crontab -u www-data -l
Referencia
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.