Magento es una plataforma de comercio electrónico de código abierto escrita en PHP. Magento pertenece a las 3 principales plataformas de comercio electrónico y una de las principales en la industria del comercio electrónico. Algunas de las funciones básicas de Magento son la gestión de productos, la gestión de inventario, la gestión de pedidos, la generación de informes, etc. Muchas grandes organizaciones eligen Magento como plataforma de comercio electrónico porque es altamente personalizable, escalable, con seguridad avanzada y compatible con SEO.
En este tutorial, lo guiaremos sobre cómo instalar Magento 2.4.5 en Ubuntu 22.04.
Comencemos.
1 Requisitos previos
- Ubuntu 22.04
- Al menos 2 GB de RAM o superior
2 Actualización del sistema
Antes de comenzar la instalación, debemos actualizar nuestro sistema.
sudo apt update -y && apt upgrade -y
3 Instalación de PHP y extensiones de PHP
La versión PHP requerida para Magento 2.4.5 es PHP 8.1. En esta instalación usaremos el repositorio de Ubuntu 22.04 para instalar PHP 8.1 ya que es la versión predeterminada establecida. Instalemos PHP 8.1 y las extensiones requeridas por Magento.
sudo apt install php libapache2-mod-php php-bcmath php-curl php-fpm php-gd php-intl php-mbstring php-mysql php-soap php-xml php-xsl php-zip php-cli
Modifiquemos algunos de los valores de PHP necesarios para que Magento funcione correctamente.
Comprobemos primero la ubicación del archivo de configuración de PHP.
sudo php --ini | grep "Loaded Configuration File"
Output:
Loaded Configuration File: /etc/php/8.1/cli/php.i
Edite el archivo de configuración de PHP.
sudo nano /etc/php/8.1/cli/php.ini
Modifique los archivos de configuración con los siguientes valores.
memory_limit = 1G
upload_max_filesize = 128M
zlib.output_compression = on
max_execution_time = 18000
realpath_cache_size = 10M
realpath_cache_ttl = 7200
Guarde el archivo de configuración y salga.
4 Instalación y configuración de la base de datos
Magento 2.4.5 es compatible con MariaDB 10.4 o MySQL 8. En esta guía usaremos MySQL 8.0.
Instalemos MySQL.
sudo apt install mysql-server
Protejamos la instalación de MySQL, pero antes de eso, primero debemos configurar la contraseña raíz de MySQL para evitar el siguiente problema:
... ¡Falló! Error:SET PASSWORD no tiene importancia para el usuario 'root'@'localhost' ya que el método de autenticación utilizado no almacena datos de autenticación en el servidor MySQL. Considere usar ALTER USER en su lugar si desea cambiar los parámetros de autenticación .
Establezcamos la contraseña raíz de MySQL.
sudo mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mysecretpassword';
mysql> exit
Aseguremos la instalación de MySQL.
sudo mysql_secure_installation
Output:
Securing the MySQL server deployment.
Enter password for user root:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.
Estimated strength of the password: 50
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.
All done!
Reinicie el servicio MySQL.
sudo systemctl restart mysql
Vamos a crear una base de datos para nuestra instancia de Magento.
sudo mysql -u root -p
El comando requerirá que ingrese la contraseña raíz de MySQL.
Pero antes de continuar con la creación de una base de datos, primero cambiemos la política de contraseñas a "BAJO ” esto es opcional si no desea utilizar la política estricta de contraseñas.
mysql> SET GLOBAL validate_password.policy = 0;
Vamos a crear la base de datos para Magento.
mysql> CREATE USER 'magento_user'@'localhost' IDENTIFIED BY 'mypassword';
mysql> GRANT ALL ON magento2.* TO 'magento_user'@'localhost';
mysql> flush privileges;
mysql> exit
5 Instalación de búsqueda elástica
A partir de Magento 2.4, todas las instalaciones deben estar configuradas para usar Elasticsearch.
Comencemos la instalación de Elasticsearch.
sudo apt install apt-transport-https ca-certificates gnupg2
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
sudo apt update
sudo apt install elasticsearch
Inicie y habilite Elasticsearch.
sudo systemctl enable elasticsearch --now
Comprueba el estado.
sudo systemctl status elasticsearch
6 Instalación de Composer
Dado que Magento está basado en PHP y requería diferentes tipos de paquetes para ejecutar e instalar el paquete necesario para ejecutar Magento, necesitamos instalar un administrador de paquetes llamado composer.
Para instalar compositor.
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Compruebe la versión.
sudo composer --version
Output:
Composer version 2.4.3 2022-10-14 16:56:41
7 Instalación y configuración del servidor web
Vamos a configurar Magento en el servidor web Nginx y Apache.
Para Apache .
Primero instale el servidor web Apache.
sudo apt install apache2
Inicie y habilite Apache.
sudo systemctl enable apache2 --now
Ahora configure un servidor virtual.
sudo nano /etc/apache2/sites-available/magento.conf
Agregue el contenido a continuación.
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/magento2/pub
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/">
AllowOverride all
</Directory>
</VirtualHost>
Guarde el archivo y salga.
No olvide cambiar el dominio.com a su propio dominio.
Habilitemos el host virtual que creamos.
a2ensite magento.conf
Luego habilite el módulo mod_rewrite.
a2enmod rewrite
Luego reinicie Apache.
systemctl restart apache2
Para Nginx .
Instalemos Nginx primero.
sudo apt install nginx -y
Habilite e inicie Nginx.
sudo systemctl enable nginx --now
Crea un bloque de servidor.
sudo nano /etc/nginx/sites-available/magento.conf
Inserte lo siguiente:
upstream fastcgi_backend {
server unix:/run/php/php8.1-fpm.sock;
}
server {
server_name domain.com www.domain.com;
listen 80;
set $MAGE_ROOT /var/www/magento2;
set $MAGE_MODE developer; # for production change the developer to production
access_log /var/log/nginx/magento2-access.log;
error_log /var/log/nginx/magento2-error.log;
include /var/www/magento2/nginx.conf.sample;
}
Guarde el archivo y salga.
Habilitemos el archivo de configuración de Nginx (bloque del servidor).
sudo ln -s /etc/nginx/sites-available/magento.conf /etc/nginx/sites-enabled/
Reinicie Nginx.
sudo systemctl restart nginx
8 Descargue e instale Magento 2.4.5
Para la mayoría de las situaciones, se recomienda instalar Magento usando Marketplace (https://marketplace.magento.com/) creando una clave de acceso.
Para crear una clave de acceso, siga los pasos a continuación.
- Primero inicie sesión en su cuenta de Marketplace
- Ir a Nombre->Mi perfil
- Ir a Marketplace->Mis productos->Claves de acceso
- En la pestaña Magento 2, haga clic en "Crear una nueva clave de acceso “
- En la ventana emergente, ingrese cualquier nombre en el cuadro de texto y luego haga clic en Aceptar.
- Ha terminado y verá las claves de acceso generadas.
Instalemos Magento 2.4.5
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.5 /var/www/magento2
Le solicitará el nombre de usuario y la contraseña, y el nombre de usuario y la contraseña son su public_key y clave_privada respectivamente.
Username: YOUR_PUBLIC_KEY
Password: YOUR_PRIVATE_KEY
Después de ingresar la información de inicio de sesión, le preguntará si desea almacenar las credenciales en el archivo local, solo responda sí.
Do you want to store credentials for repo.magento.com in /root/.config/composer/auth.json ? [Yn] Y
Ir a Magento directorio raíz.
cd /var/www/magento2/
Ahora ejecute el comando de instalación de Magento 2.
bin/magento setup:install \
--base-url=http://domain.com \
--db-host=localhost \
--db-name=magento2 \
--db-user=magento_user \
--db-password=mypassword \
--admin-firstname=admin \
--admin-lastname=admin \
[email protected] \
--admin-user=admin \
--admin-password=myadminpassword \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1
Después del proceso de instalación, verá el enlace de administración para su instancia de Magento 2.4.5.
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1lswn5
Nothing to import.
9 Configurar los trabajos cron y permisos
Magento usa el trabajo cron para automatizar alguna operación. Para configurar el cron de Magento, ejecute este comando.
sudo bin/magento cron:install
Ahora arreglemos el permiso de archivo de nuestro directorio de Magento.
sudo chown -R www-data:www-data /var/www/magento2
Su instancia de Magento debería estar funcionando ahora.
sudo bin/magento module:disable Magento_TwoFactorAuth
Felicitaciones ha instalado correctamente Magento 2.4.5 ahora puede acceder a la instancia de Magento en http://domain.com
10 Conclusión
Ha aprendido en este tutorial sobre cómo instalar Magento 2.4.5 usando un servidor web diferente. Si está utilizando Ubuntu 22.04, puede consultar nuestro artículo sobre Magento 2.4.4.