5. Magento Instalación
Referencias
- Magento Requisitos del sistema
- Quick start on-premises installation
- Get your authentication keys
- Qué es un CMS y cómo elegir el adecuado para tu sitio web
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
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:
- 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
- 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:
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.
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
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.
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:
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.