Referencias

Videos

Otorgar al usuario privilegio de superusuario agregándole al grupo sudo

sudo adduser steph
sudo usermod -aG sudo steph

Habilitar un firewall básico

Instala UFW (Uncomplicated Firewall), si no está instalado:

sudo apt update
sudo apt install ufw

Verifica si ufw está habilitado:

sudo ufw status

Si ufw no está habilitado, puedes habilitarlo con el siguiente comando:

sudo ufw enable

Crear una regla que permita conexiones de SSH a tu servidor virtual. Esta es la configuración que vamos a usar

sudo ufw allow ssh

Instalación y configuración de Apache

Actualizar el sistema

sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoclean
sudo apt-get autoremove

Con los repositorios actualizados, instalar Apache usando el comando:

sudo apt install apache2 -y

Abre el archivo de configuración de Apache para permitir archivos .htaccess en el directorio web

sudo nano /etc/apache2/sites-available/000-default.conf

Agrega las siguientes líneas, luego guarda y sal del editor nano

<Directory "/var/www/html">
	AllowOverride All
</Directory>

Abre el archivo de configuración de Apache para establecer el nombre de servidor global

sudo nano /etc/apache2/apache2.conf

Agrega esta línea al final del archivo, luego guarda y sal del editor nano

ServerName localhost

Comprueba si hay errores de sintaxis que podamos haber introducido

sudo apache2ctl configtest

Habilita la reescritura de Apache

sudo a2enmod rewrite

Reinicia el servidor web Apache para que los cambios surtan efecto

sudo systemctl restart apache2

Habilite Apache a través del firewall que habilitamos anteriormente

sudo ufw app list
sudo ufw allow 'Apache Full'

Instalar PHP y las extensiones específicas para Magento 2.4

Comenzamos instalando PHP y todas las extensiones de PHP necesarias para que Magento 2.4 se ejecute

sudo apt install php php-dev php-fpm libapache2-mod-php php-mysql php-soap php-bcmath php-xml php-mbstring php-gd php-common php-cli php-curl php-intl php-zip php-opcache php-xsl php-json php-zip unzip -y

Es importante indicarle al servidor web que prefiera archivos PHP (mueve index.php al principio de la lista o más fácil, intercambia posición con index.html)

sudo nano /etc/apache2/mods-enabled/dir.conf

magento001 Ahora necesita reemplazar 2 variables predeterminadas en la configuración de PHP, para ello, debes editar el archivo php.ini

sudo nano /etc/php/8.1/apache2/php.ini

Modifica los valores siguientes para cumplir con los requisitos de Magento:

date.timezone = America/Costa_Rica
short_open_tag = On
memory_limit = 2G
max_execution_time = 3600
upload_max_filesize = 128M
session.gc_maxlifetime = 86400

realpath_cache_size = 10M
realpath_cache_ttl = 7200

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=0

max_input_time=300
output_buffering=4096
zlib.output_compression=On
zlib.output_compression_level=-1

Guarda y cierra el archivo.

Reinicia el servidor web Apache para que los cambios surtan efecto

sudo systemctl restart apache2

Instalar y configuración de MySQL

Instalar MySQL Server aplicando el siguiente comando:

sudo apt install mysql-server -y

Ahora puedes instalar phpMyAdmin con el siguiente comando:

sudo apt install phpmyadmin
sudo apt install phpmyadmin php-mbstring php8.1-gettext -y

Reinicia el servidor web Apache para que los cambios surtan efecto

sudo systemctl restart apache2

Para probar que phpMyAdmin funciona ingresa en tu navegador

ip_address/phpmyadmin
http://192.168.50.222/phpmyadmin

En caso de que no funcione o de error. Se debe crear el archivo de configuracion manualmente

Si phpMyAdmin está instalado pero no hay un archivo phpmyadmin.conf, puedes crear uno manualmente. Aquí tienes cómo hacerlo:

  1. Crear el archivo de configuración: Abre un editor de texto (por ejemplo, nano o vim) con privilegios de superusuario:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
  1. Agregar la configuración: Copia y pega la siguiente configuración en el archivo: Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
	Options Indexes FollowSymLinks
	DirectoryIndex index.php
	AllowOverride All
	Require all granted
</Directory>

<Directory /usr/share/phpmyadmin/setup>
	<IfModule mod_authz_core.c>
		<RequireAll>
			Require local
			Require ip 192.168.0.0/16
		</RequireAll>
	</IfModule>
	<IfModule !mod_authz_core.c>
		Order Deny,Allow
		Deny from All
		Allow from 192.168.0.0/16
	</IfModule>
</Directory>

Habilitar la configuración de phpMyAdmin

Después de crear el archivo de configuración, habilítalo con el siguiente comando:

sudo a2enconf phpmyadmin

Reinicia el servidor web Apache para que los cambios surtan efecto

sudo systemctl restart apache2

Verificar la instalación: Ahora intenta acceder a phpMyAdmin en tu navegador usando la URL: http://ip_publica/phpmyadmin (http://52.156.69.118/phpmyadmin)

Una vez instalado MySQL, inicia sesión y crea una base de datos y usuario para Magento:

sudo mysql -u root -p

Crear una base de datos para Magento:

CREATE DATABASE magento CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Magento123';
GRANT ALL PRIVILEGES ON *.* TO 'magentouser'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'magentouser'@'localhost' with grant option;
FLUSH PRIVILEGES;
EXIT;

Instalar Elasticsearch

A partir de Magneto 2.4 todas las instalaciones deben configurarse para utilizar Elasticsearch como motor de búsqueda de catalogo

Importe la clave GPG de Elasticsearch:

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Este comando se utiliza para importa la clave publica de GPG de Elasticsearch en APT. Esta clase se utiliza para autenticar los paquetes de Elasticsearch y proteger tu sistema contra la suplantacion de paquetes.

Agregue el repositorio de Elasticsearch:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Actualice el apt administrador de paquetes e instale Elasticsearch

sudo apt update
sudo apt install elasticsearch=7.9.2

Para que los cambios surtan efecto debes recargar las unidades del sistema. Puedes hacerlo ejecutando el comando systemctl daemo-reload. Esto asegurara que el sistema este al tanto de los cambios y los aplique correctamente.

sudo systemctl daemon-reload

Luego inicie y habilite el servicio

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Ahora abra el archivo elasticsearch.yml

sudo nano /etc/elasticsearch/elasticsearch.yml

Luego retire o quite los comentarios de las lineas (el simbolo #) y actualice los valores

cluster name: magento 2.4.7
node.name: ubuntu
network.host: 127.0.0.1
http.port: 9200

Una vez realizados los cambios es necesario reiniciar el servicio Elasticsearch para que la nueva configuración se aplique

sudo systemctl restart elasticsearch
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Verificar que el servicio se esté ejecutando

sudo systemctl status elasticsearch

Para confirmar que Elasticsearch está funcionando correctamente puedes usar el comando curl.

curl -X GET "localhost:9200/"

Si Elasticsearch está funcionando correctamente debería obtener el siguiente resultado:

magento002

Configurar Elasticsearch para que se ejecute automáticamente

Después de instalar Elasticsearch es momento de configurar el servidor web para que se inicie automáticamente cada vez que se reinicie el servidor.

Recargar administrador systemd

sudo /bin/systemctl daemon-reload

Agregar Elasticsearch al inicio del sistema

sudo /bin/systemctl enable elasticsearch.service

Con la configuración de ejecución automática ahora establecida aun necesitamos iniciar Opensearch manualmente.

sudo systemctl start elasticsearch

Descargar Magento

Antes de descargar Magento se debe acceder o crear una cuenta de usuario para realizar la creación de las llaves o keys.

magento003

Crear un usuario web para instalar Magento

Agregar el nuevo usuario en este caso llamado "magento"

sudo adduser magento

Haga que el grupo de servidores web sea el grupo principal para el nuevo usuario

sudo usermod -g www-data magento

Actualice la propiedad de la carpeta y el grupo para que coincida con nuestro nuevo usuario web "magento"

sudo chown -R magento:www-data /var/www/html

Instalar Composer

Composer es una aplicación que nos permite acceder y descargar archivos empaquetados de varios repositorios. No solo podemos acceder y descargar Magento, sino que muchos desarrolladores de terceros recomendaran instalar sus extensiones de esta manera a diferencia de descargar tradicionalmente un archivo ZIP y subirlo a través de FTP.

Para descargar Composer, puedes ejecutar el siguiente comando:

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

A continuacion, mueva el archivo del compositor a la ruta /usr/local/bin

sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

Verifique la versión de Composer instalada:

composer --version

Descargar Magento 2.4.7 a traves de Composer

Ahora es el momento de usar Composer para descargar Magento 2.4.7. Primero necesitamos navegar al directorio web de nuestro servidor web

cd /var/www/html

Ahora debemos cambiar de nuestro superusuario al usuario "magento".

su magento

Para que Composer funcione debe ejecutarse desde un directorio vacío de lo contrario generara un error. Sin embargo, el directorio web en el que estamos ahora no está vacío porque cuando instalamos el servido Apache creo un archivo de prueba llamado index.html. Este es el mismo archivo que vimos cuando probamos que Apache estaba funcionando.

Podemos verificar esto enumerando todos los archivos y carpetas dentro del directorio

ls -la

Así que eliminemos este archivo de prueba

rm index.html

Ahora digamos al Composer que instale Magento 2.4.7.

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.7 .

Durante la descarga de Magento 2.4.7 se le pedirá un nombre de usuario y una contraseña donde se deben usar las keys creadas anteriormente en la página de Magento

magento004

Es el momento adecuado para establecer los permisos de archivo necesarios para el correcto funcionamiento de Magento. El comando que sigue sirve para establecer la propiedad y los permisos. Aunque parece extenso en realidad son cuatro comandos encadenados. Esto nos permite ahorrar tiempo al evitar la introducción de cada comando de manera individual.

find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + && find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + && chown -R :www-data . && chmod u+x bin/magento

Ahora se ha asegurado de que Magento pueda acceder a todas las carpetas y archivos necesarios.

Ejecución del script de instalación

Este es el momento en el que puedes ejecutar el script de instalación de Magento. Puedes utilizar el siguiente ejemplo como guía y modificar los valores según sea necesario. Puedes copiar y pegar todo esto de una vez (así que no intentes copiar y pegar línea por línea en le Terminal). Asegúrate de utilizar las variables adecuadas para tu configuración:

  • El usuario admin y su contraseña te permitirán acceder al backend de Magento 2.4.7 en el futuro.

  • El número de IP Elástica debe ser el de tu servidor VPS o de nuestro VirtualBox.

  • El nombre usuario y la base datos son los mismos, en mi caso es "magento".

  • No he especificado las variables de Elasticsearch, ya que estarán predeterminadas en nuestra configuración local actual.

  • Tampoco he especificado una URL de backend porque se generara una al azar. Asegúrate de tomar nota de ella después de ejecutar el comando.

Estas son las variables que voy a utilizar en el script de instalación de Magento 2.4.7:

bin/magento setup:install \
-base-url=http://127.0.0.1 \
-db-host=localhost \
-db-name=magento \
-db-user=magentouser \
-db-password=Magento123 \
-admin-firstname=steph \
-admin-lastname=mora \
-admin-email=stefamora1@gmail.com \
-admin-user=steph \
-admin-password=Linux123456789 \
-language=es_ES \
-currency=USD \
-timezone=America/Costa_Rica \
-use-rewrites=1 \
  • La IP que se debe usar es la IP de la máquina virtual de Azure en caso de VirtualBox se usa la IP asignada a la VM mediante el uso de adaptador puente.

El script de instalación puede tardar un par de minutos en ejecutarse. Pero una vez completado, veras una URL generada automáticamente para la página de inicio de sesión del backend. Tome nota de esto y guárdalo, le servirá para iniciar sesión como administrador.

Esta se genera de manera única para cada instalación y debes anotarla en un lugar seguro.

magento005

Azure /admin_sbhkt61 http://52.156.69.118/admin_sbhkt61

También puedes cambiarla usando el siguiente comando:

bin/magento setup:config:set --backend-frontname="admin"

Limpia la caché de Magento ejecutando:

php bin/magento cache:clean

Instalación de tareas CRON

A continuación, necesitamos configurar nuestras tareas CRON. Estas son tareas programadas que deben ejecutarse en segundo plano. Ayudan con tareas como indexación, copias de seguridad, actualizaciones, etc.

Eso ahora se puede configurar ejecutando el comando

bin/magento cron:install

Si deseas verificar que el trabajo cron está funcionando correctamente, puedes ejecutar el comando

bin/magento cron:run

Probar Magento 2.4.7 que está funcionando

Vamos a asegurarnos que podemos cargar con éxito tanto el Frontend como el Backend.

Para utilizar tu Tienda Online Magent 2.4.7 introduce la dirección http://127.0.0.1/ en tu navegador y presiona Enter

Para utilizar tu Tienda Online Magent 2.4.7 introduce la dirección http://52.156.69.118 en tu navegador y presiona Enter

Para ingresar al Backend de tu tienda introduce la dirección http://52.156.69.118/admin_sbhkt61 en tu navegador y presiona Enter.

Luego usa tus credenciales de usuario y contraseña que utilizaste en el Script de instalación.

Desactivación de 2FA

Ahora vamos a deshabilitar la autenticación 2FA en caso de que no recibas el correo de autenticación de dos factores.

Comandos para desactivar el doble factor de autenticación

Vamos a desactivar 2FA antes de ingresar al backend de nuestra tienda Magento 2.4.7 y evitar problemas de doble autenticación o que no reconozca nuestra contraseña.

Para ello vamos a aplicar el siguiente comando pare desactivar 2FA:

bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth Magento_TwoFactorAuth

Luego, limpia la caché de Magenta con este comendo:

bin/magento cache:clean
bin/magento cache:flush

El resultado será parecida a está captura de pantalla:

magento006

Finalmente, puedes necesitar recopilar Magento con este comando

bin/magento setup:di:compile

Comandos para resetear tu usuario administrador del backend y contraseña

A veces, es muy raro que al tratar de iniciar la primera sesion en el backend de Magento 2.4.7 nos mande el siguiente mensaje "The account sign-in was incorrect or your account is disabled temporarily. Please wait and try agan later"

Puede crear un nuevo usuario administrado usando el comando

php bin/magento admin:user:create --admin-user nombre_usuario --admin-password ContraseñaSegura --admin-email email@ejemplo.com --admin-firstname Nombre --admin-lastname Apellido

php bin/magento admin:user:create --admin-user magento --admin-password Magento123 --admin-email stefamora1@gmail.com --admin-firstname steph --admin-lastname mora

Recomendable reindexar manualmente desde la línea de comandos.

php bin/magento indexer:reindex

Recorrido por el Backend y Frontend de nuestra tienda Magento 2.4.7

Cambio al modo de desarrollador (developer)

Es el momento de cambiar Magento al modo de desarrollador. Magento cuenta con tres modos, cada uno diseñado para ofrecer configuraciones optimas según su uso. En el modo de desarrollador, tendrás acceso a más herramientas en el backend de Magento que en cualquier otro modo. Para cambiar de modo, utiliza el siguiente comando:

Elimina las carpetas generadas en caché con siguiente comando:

rm -rf generated/metadata/* generated/code/*
bin/magento deploy:mode:set developer

Finalmente, limpia el caché restante con este comendo:

bin/magento cache:clean

Descargar datos de muestra a través de Composer

Magento tiene un comando realmente útil para instalar todos los datos de muestra del Repositorio de Magento a través de Composer. Este paso normalmente puede tardar un par de minutos en completarse. A veces, puede parecer que no está pasando nada pero dale tiempo.

El script de instalación de los datos de muestra

bin/magento sampledata:deploy

Ese comando nos va a solicitar las keys que hemos creado anteriormente en la página de marketplace de Magento.

Necesitamos decirle a Magento que instale los últimos cambios que acabamos de hacer.

bin/magento setup:upgrade

Ahora es necesario realizar un ajuste a los tamaños de las imágenes para que puedan verse en el Front End y Back End.

bin/magento catalog:images:resize

Es recomendable limpiar la caché para asegurarte de que todos los cambios se reflejen correctamente:

bin/magento cache:clean

bin/magento cache:flush

Recompila (si es necesario), si estás en modo de producción, es posible que necesites recompilar el código:

bin/magento setup:di:compile

Ahora puedes verificar en el frontend de tu tienda Magento. Deberías poder ver los productos de muestra que se han agregado.

Built with LogoFlowershow