Cómo instalar la plataforma de comercio electrónico Magento en Ubuntu 24.04

Magento es una conocida plataforma de comercio electrónico de código abierto escrita en PHP. Magento es una solución de comercio electrónico robusta y potente utilizada por más de 240.000 comerciantes en todo el mundo. Magento es una plataforma versátil y escalable para crear una tienda de comercio electrónico. Es adecuada para crear tiendas online pequeñas, medianas y grandes. Magento te permite crear y alojar tus tiendas online en tu servidor.

En esta guía, te guiaremos a través de la instalación de Magento eCommerce en el servidor Ubuntu 22.04.

Requisitos previos

Para empezar con esta guía, asegúrate de que has preparado lo siguiente:

  • Un Ubuntu 24.04 con al menos 4 GB de memoria.
  • Un usuario no root con privilegios sudo.
  • Un nombre de dominio apuntando a una dirección IP del servidor.

Instalación de dependencias

Antes de pasar a la instalación, debes asegurarte de que las dependencias de Magento están instaladas. En esta sección, instalarás paquetes de software para Magento, que incluyen OpenSearch, Nginx, servidor MySQL, PHP-FPM, Redis, Composer y Git.

Primero, instala los paquetes‘apt-transport-https‘ y‘gnupg‘ con lo siguiente:

sudo apt install apt-transport-https gnupg -y

Ejecuta el siguiente comando para añadir la clave GPG de OpenSearch y el repositorio para las distribuciones basadas en Debian/Ubuntu.

curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | \
sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | \
sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

añadir repo

Ahora actualiza el índice de paquetes de Ubuntu e instala las dependencias con el siguiente comando apt. Con esto, instalarás los paquetes OpenSearch, Nginx, MySQL, PHP-FPM, Redis, Composer y Git.

sudo apt update && sudo apt install opensearch nginx mysql-server composer git redis-server php-fpm php-bcmath php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-redis php-ldap php-zip php-curl php-imagick

Introduce Y para confirmar la instalación.

instalar deps

Tras la instalación, comprueba todos los servicios para asegurarte de que se están ejecutando.

Comprueba el servicio Nginx con lo siguiente. Verás que el servicio Nginx se está ejecutando y está habilitado.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

comprobar nginx

Ahora comprueba el servidor MySQL con el siguiente comando. Puedes ver en la salida de abajo que el servidor MySQL se está ejecutando.

sudo systemctl is-enabled mysql
sudo systemctl status mysql

comprobar mysql

Comprueba el servicio PHP-FPM con el siguiente comando. El PHP-FPM debería estar ejecutándose y habilitado automáticamente.

sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm

comprobar php-fpm

Comprueba el servidor Redis utilizando el comando siguiente. Deberías ver que Redis se está ejecutando y está habilitado.

sudo systemctl is-enabled redis-server
sudo systemctl status redis-server

comprobar redis

Por último, comprueba la versión de Composer con lo siguiente. Deberías tener Composer v2.7 instalado en tu sistema.

sudo -u www-data composer -v

comprobar compositor

Configurar OpenSearch

Después de haber instalado las dependencias, necesitas configurar OpenSearch. Magento utiliza OpenSearch para los pri=ductos de búsqueda avanzada y la indexación. En esta sección, aumentarás la memoria heap máxima por defecto y desactivarás el plugin de seguridad de OpenSearch (sólo para un entorno de desarrollo).

Abre el archivo‘/etc/opensearch/jvm.options‘ utilizando el siguiente editor nano.

sudo nano /etc/opensearch/jvm.options

Cambia la asignación de memoria por defecto para OpenSearch según necesites. En este caso, utilizaremos 2GB para OpenSearch.

-Xms2g
-Xmx2g

Guarda el archivo y sal.

Ahora abre la configuración por defecto de OpenSearch‘/etc/opensearch/opensearch.yml‘ con el editor nano.

sudo nano /etc/opensearch/opensearch.yml

Añade la siguiente configuración para desactivar el plugin de seguridad en OpenSearch. Para demostración, puedes desactivarlo, pero para producción, debes activar el plugin de seguridad y configurar certificados TLS para tu instalación de OpenSearch.

plugins.security.disabled: true

Cuando hayas terminado, guarda y sal del archivo.

A continuación, ejecuta el siguiente comando para recargar el gestor systemd. Después de instalar OpenSearch, debes recargar el gestor systemd.

sudo systemctl daemon-reload

Ahora inicia, habilita y verifica el servicio Opensearch con el siguiente comando:

sudo systemctl enable --now opensearch
sudo systemctl status opensearch

En la siguiente salida, puedes ver que OpenSearch se está ejecutando y está habilitado.

cheque opensearch servicer

Por último, comprueba tu instalación de OpenSearch utilizando el siguiente comando‘curl‘. Esto te mostrará información básica sobre tu instalación de OpenSearch.

curl -X GET http://localhost:9200

A continuación puedes ver que OpenSearch 2.14 se está ejecutando en el servidor Ubuntu.

prueba opensearch

Configurar PHP-FPM

En esta sección, modificarás la configuración por defecto de PHP-FPM y activarás la extensión Opcache a través del archivo ‘php.ini’. Aumentarás el límite_de_memoria por defecto y ajustarás la opción date.timezone.

Abre la configuración de PHP-FPM‘/etc/php/8.3/fpm/php.ini ‘ con el siguiente editor nano.

sudo nano /etc/php/8.3/fpm/php.ini

Cambia la configuración por defecto por la siguiente. Además, ajusta el date.timezone, y memory_limit con el entorno actual de tu servidor.

date.timezone = Europe/Amsterdam

Cuando hayas terminado, guarda el archivo y sal.

Ahora ejecuta el siguiente comando para reiniciar el servicio PHP-FPM y aplicar tus cambios.

sudo systemctl restart php8.3-fpm

Configurar el servidor MySQL

Ahora que ya has configurado PHP-FPM, en la siguiente sección configurarás la instalación del servidor MySQL y crearás una nueva base de datos y un nuevo usuario para Magento.

Asegura la instalación de tu servidor MySQL ejecutando el siguiente comando.

sudo mysql_secure_installation

A continuación se te preguntará por las configuraciones del servidor MySQL:

  • Introduce y para activar el componente VALIDAR CONTRASEÑA.
  • Introduce 1 para establecer el nivel de seguridad de la contraseña en MEDIO.
  • Introduce y cuando se te pida que cambies la contraseña raíz de MySQL.
  • Introduce y para eliminar el usuario anónimo por defecto.
  • Introduce y para no permitir el acceso remoto al usuario raíz de MySQL.
  • Introduce y de nuevo para eliminar la prueba de base de datos por defecto de MySQL.
  • Por último, introduce y para recargar las tablas de MySQL privilegia aplicar los cambios.

Una vez configurado MySQL, tienes que crear una base de datos y un usuario nuevos para Magento.

Accede al servidor MySQL con el siguiente comando. Escribe tu contraseña de root de MySQL cuando se te solicite.

sudo mysql -u root -p

Ahora ejecuta las siguientes consultas para crear una nueva base de datos y un nuevo usuario para Magento. En este ejemplo, crearás un nuevo usuario y base de datos‘magento‘ con la contraseña‘M4gentoPassw0rd__‘.

Asegúrate de cambiar los siguientes datos con tu información. Además, la contraseña MySQL para Magento debe tener un carácter especial, un número y mayúsculas.

CREATE DATABASE magento;
CREATE USER 'magento'@'localhost' IDENTIFIED BY 'M4gentoPassw0rd__';
GRANT ALL PRIVILEGES ON magento.* to 'magento'@'localhost';
FLUSH PRIVILEGES;

crear base de datos y usuario

A continuación, ejecuta la siguiente consulta para verificar los privilegios del usuario‘magento‘. Asegúrate de que tu usuario puede acceder a la base de datos ‘magento‘.

SHOW GRANTS FOR magento@localhost;

Por último, escribe quit para salir del servidor MySQL.

mostrar usuario mysql priv

Instalar Magento a través de la línea de comandos

En esta sección, descargarás el código fuente de Magento e instalarás las dependencias PHP utilizando Composer. A continuación, instalarás Magento mediante la línea de comandos. Por último, generarás un crontab para Magento.

Ve al directorio‘/var/www’ y descarga el código fuente de Magento utilizando el siguiente comando wget. Comprueba la página GitHub de Magento y coge la URL de la última versión de Magento.

cd /var/www
wget https://github.com/magento/magento2/archive/refs/tags/2.4.7.tar.gz

Una vez completada la descarga, extrae el código fuente de Magento y renombra el directorio extraído a ‘magento2’. Con esto, tu instalación de Magento debería estar ubicada en ‘/var/www/magento2’.

tar -xf 2.4.7.tar.gz
mv magento2-* magento2

Ahora ejecuta el siguiente comando para crear directorios adicionales para Composer y cambia la propiedad del directorio‘/var/www ‘ al usuario‘www-data‘.

sudo mkdir -p /var/www/{.config,.cache}
sudo chown -R www-data:www-data /var/www

A continuación, ejecuta el siguiente comando para dar permiso al usuario ‘www-data‘ para leer, escribir y ejecutar dentro del directorio ‘/var/www/magento2‘.

sudo chmod u+rwx /var/www/magento2

A continuación, ve al directorio ‘/var/www/magento2‘ e instala las dependencias PHP para Magento con el siguiente comando de Composer. Esto asegurará que tus dependencias para Magento están instaladas

cd /var/www/magento2
sudo -u www-data composer install

Después de instalar las dependencias, ejecuta el comando siguiente para permitir el permiso de usuariowww-data‘ de‘rwx’ a los directorios‘generated‘ y‘var’ dentro de la raíz web de Magento.

sudo chown -R www-data:www-data /var/www/magento2/var /var/www/magento2/generated
sudo chmod u+rwx /var/www/magento2/var /var/www/magento2/generated
sudo chmod g+rw /var/www/magento2/var /var/www/magento2/generated

Ahora ejecuta el siguiente comando para iniciar la instalación de Magento. Asegúrate de cambiar los detalles de la URL, la base de datos MySQL, el usuario administrador y la contraseña de tu instalación de Magento.

sudo -u www-data bin/magento setup:install \
--base-url=http://hwdomain.io \
--db-host=localhost \
--db-name=magento2 \
--db-user=magento \
--db-password=M4gentoPassw0rd__ \
--admin-firstname=bob \
--admin-lastname=admin \
[email protected] \
--admin-user=bob \
--admin-password=BobAdm1nP4ssword \
--currency=USD \
--timezone=Europe/Amsterdam \
--use-rewrites=1 \
--session-save=redis \
--search-engine=opensearch \
--opensearch-host=127.0.0.1 \
--opensearch-port=9200 \
--opensearch-enable-auth=0 \
--opensearch-index-prefix=magento22 \
--opensearch-timeout=30

A continuación puedes ver cómo comienza la instalación de Magento:

instalar magento

Una vez completada, verás la salida‘Instalación de Magento completada‘ y la ruta URL del administrador para tu instalación de Magento. Asegúrate de guardar la URL generada para la página de administración de Magento.

instalación completa

Para finalizar la instalación de Magento, ejecuta el siguiente comando para generar crontab para Magento y ejecutar la indexación para Magento.

sudo -u www-data bin/magento cron:install
sudo -u www-data bin/magento cron:run --group index

Puedes comprobar la lista crontab para el usuario ‘www-data’ con lo siguiente:

crontab -u www-data -l

A continuación puedes ver que se ha generado el crontab para Magento.

configurar cron

Por último, ejecuta el siguiente comando para borrar la caché de tu instalación de Magento. Con esto, ya has completado la instalación de Magento, lo siguiente que tienes que hacer es configurar el servidor web Nginx.

sudo -u www-data bin/magento cache:clean

Configurar el bloque del servidor Nginx

En este punto, tu instalación de Magento está terminada, ahora crearás un nuevo servidor Nginx para ejecutar tu instalación de Magento. Asegúrate de que tienes un nombre de dominio apuntando a la dirección IP de tu servidor.

Crea un nuevo bloque de configuración del servidor Nginx‘/etc/nginx/sites-available/magento.conf‘ con el editor nano.

sudo nano /etc/nginx/sites-available/magento.conf

Introduce la siguiente configuración y asegúrate de cambiar la opción server_name por el nombre de dominio de tu Magento.

upstream fastcgi_backend {
 server unix:/run/php/php8.3-fpm.sock;
}

server {
listen 80;
listen [::]:80;
server_name hwdomain.io;
set $MAGE_ROOT /var/www/magento2/;
include /var/www/magento2/nginx.conf.sample;
client_max_body_size 2M;

access_log /var/log/nginx/magento.access;
error_log /var/log/nginx/magento.error;
}

Cuando hayas terminado, guarda y sal del archivo.

Ahora ejecuta el siguiente comando para activar el bloque de servidor‘magento.conf‘ y verifica la sintaxis de tu Nginx. Asegúrate de que obtienes la salida‘syntax is ok – test is successful‘.

sudo ln -s /etc/nginx/sites-available/magento.conf /etc/nginx/sites-enabled/
sudo nginx -t

Por último, reinicia el servicio Nginx con lo siguiente para aplicar tu nueva configuración del bloque de servidor. Una vez ejecutado el comando, tu instalación de Magento estará disponible.

sudo systemctl restart nginx

configuración de nginx

Asegurar Magento con HTTPS

Si estás ejecutando Magento en el dominio público, debes asegurarlo con HTTPS. En esta sección, asegurarás tu instalación de Magento con HTTPS mediante Certbot y Letsencrypt.

Instala el plugin Certbot y Certbot Nginx utilizando el siguiente comando. Introduce Y para confirmar la instalación.

sudo apt install certbot python3-certbot-nginx

Una vez completada la instalación, ejecuta el siguiente comando para generar certificados SSL/TLS desde Letsencrypt. Asegúrate de cambiar la dirección de correo electrónico y el nombre de dominio que aparecen a continuación con tu información.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d hwdomain.io

Tu instalación de Magento debería estar protegida automáticamente con HTTPS cuando el proceso haya finalizado. Tus certificados SSL/TLS están en el directorio‘/etc/letsencrypt/live/domain.com‘.

Acceder a Magento

Abre tu navegador web y visita tu nombre de dominio Magento, por ejemplo https://hwdomain.io. Si la instalación se ha realizado correctamente, verás la página de índice predeterminada de Magento como la siguiente.

magneto home

Ahora, visita la URL de administración de Magento, que es https://hwdomain.io/admin_ze87mmj. Consulta el proceso de instalación.

Introduce tu usuario y contraseña de administrador de Magento y pulsa Iniciar sesión.

login magento

Si se realiza correctamente, deberías obtener el panel de administración de Magento como el siguiente:

tablero magento

Conclusión

¡Enhorabuena! Has completado la instalación de Magento eCommerce en el servidor Ubuntu 24.04. Tienes Magento instalado con la pila LEMP (Linux, Nginx, MySQL y PHP-FPM), OpenSearch y Redis. También has asegurado Magento con HTTPS a través de Certbot y Letsencrypt.

También te podría gustar...