GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

Cómo instalar Magento 2.4 con LEMP Stack en Ubuntu 20.04

En esta guía, le mostraremos cómo instalar Magento 2.4 con LEMP stack en un Ubuntu 20.04 VPS.

Magento es una de las plataformas de comercio electrónico de código abierto más populares disponibles, gracias a su personalización y flexibilidad. Se crea utilizando Zend Framework y utiliza MySQL como sistema de gestión de base de datos. Magento proporciona a los comerciantes en línea un carrito de compras muy flexible y viene con un amplio conjunto de funciones, lo que lo convierte en una excelente opción para las empresas que buscan configurar una parada en línea sin problemas.

Instalación de Magento 2.4 con LEMP Stack en Ubuntu 20.04 debería tardar menos de 10 minutos en completarse. Comencemos con el tutorial.

Requisitos

  • Un VPS Ubuntu 20.04 con acceso raíz habilitado, o un usuario con privilegios sudo
  • 4 GB de RAM o superior
  • Nginx
  • MariaDB 10.4
  • Elasticsearch 7.6.x porque Magento 2.4 se prueba con esta versión
  • PHP 7.4 con extensiones bcmath, ctype, curl, dom, gd, hash, iconv, intl, libxml, mbstring, openssl, pdo_mysql, simplexml, soap, xsl y zip. Además, por motivos de rendimiento, es una buena idea instalar y habilitar la extensión opcache.
  • Un nombre de dominio válido para acceder al sitio web de Magento 2. Además, se requiere un certificado SSL válido para acceder al sitio web mediante HTTPS.

Si no tiene una pila LEMP configurada (Nginx, MariaDB, PHP), no hay problema:también cubriremos cómo instalarlos en este tutorial.

Cómo empezar

Primero, necesitaremos iniciar sesión en nuestro servidor usando SSH. Puede hacerlo ingresando este comando:

ssh root@IP_Address -p Port_number

Reemplace "root" con un usuario que tenga privilegios sudo si es necesario. Además, reemplace "IP_Address" y "Port_Number" con la dirección IP y el número de puerto SSH respectivos de su servidor.

Una vez que haya iniciado sesión, debe actualizar todos los paquetes de Ubuntu OS a sus últimas versiones disponibles.

apt-get update 
apt-get upgrade

Una vez que todos los paquetes del sistema operativo estén actualizados, reinicie su servidor si es necesario para aplicar nuevos cambios de configuración.

Instalar LEMP y Elasticsearch

LEMP es un acrónimo que describe un sistema operativo Linux con Nginx, MySQL (o MariaDB) y PHP. Es una pila general de aplicaciones y servidores que puede proporcionar la base para muchos paquetes de software. Instalemos LEMP en nuestro Ubuntu 20.04 VPS.

Instalar Nginx

Si ya hay un servidor web Apache instalado en el servidor, detenga el servicio Apache y desactívelo para que no se inicie en el arranque del servidor:

systemctl stop apache2
systemctl disable apache2

Instale Nginx con el siguiente comando:

apt-get install nginx

Eso es todo lo que tenemos que hacer con Nginx por ahora.

Instalar MySQL

A continuación, instalaremos el servidor de base de datos MySQL, que se utilizará para almacenar los datos de nuestro sitio web Magento, como los productos, categorías, clientes y pedidos.
A los efectos de este tutorial, instalaremos y usaremos MariaDB. Para instalar el servidor de base de datos MariaDB, ingrese los siguientes comandos:

apt-get install software-properties-common

Necesitamos agregar una clave para agregar nuestro repositorio MariaDB.

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Ahora que tenemos la clave, instalemos el repositorio:

add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.4/ubuntu bionic main'

Actualice sus repositorios APT para que se lean las listas de paquetes.

apt update

Finalmente, podemos instalar MariaDB.

apt install mariadb-server

Una vez instalado MariaDB, habilite el servicio de MariaDB para que se inicie en el arranque del servidor:

systemctl enable mariadb.service

Verifique el estado del servicio MariaDB:

systemctl status mariadb.service

Debería estar funcionando. Eso es todo lo que tenemos que hacer con MariaDB por ahora.

Instalar Elasticsearch

Cambie a un directorio donde pueda descargar un archivo temporalmente.

cd /opt

Descarguemos el archivo del paquete de Elasticsearch.

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-amd64.deb

Instálalo ejecutando este siguiente comando:

dpkg -i elasticsearch-7.6.1-amd64.deb

Inicie el servicio Elasticsearch:

systemctl start elasticsearch

Verifique el estado:

systemctl status elasticsearch

Verifique la versión y otra información sobre Elasticsearch:

curl -XGET 'http://localhost:9200'

Si todo parece normal hasta este punto, ahora podemos instalar PHP.

Instalar PHP 7.4

Agregue el PPA para PHP 7.4:

add-apt-repository ppa:ondrej/php

A continuación, actualice la lista de paquetes del sistema operativo e instale PHP 7.4 con el siguiente comando:

apt-get update
apt-get install php7.4

Instale todas las extensiones de PHP requeridas con el siguiente comando:

apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip php7.4-bcmath

Una vez que las extensiones de PHP se hayan instalado en el servidor, instale algunos otros paquetes del sistema operativo que se requieren para la instalación de Magento 2:

apt-get install git curl software-properties-common

A continuación, abra el archivo de configuración principal de PHP /etc/php/7.4/fpm/php.ini :

nano /etc/php/7.4/fpm/php.ini

Cambie las siguientes configuraciones:

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
cgi.fix_pathinfo = 0
zlib.output_compression = On
upload_max_filesize = 128M
max_execution_time = 600
max_input_time = 900
date.timezone = America/Chicago

Guarde y cierre el archivo de configuración de PHP.

Crear una base de datos para Magento 2

Asegure su instalación de MariaDB utilizando mysql_secure_installation guion. Este script eliminará a los usuarios anónimos, no permitirá el inicio de sesión raíz de forma remota y eliminará la base de datos de prueba.

mysql_secure_installation

Le recomendamos que responda todas las preguntas como se muestra a continuación:

Enter current password for root (enter for none): Press [Enter] since no password is set by default
Set root password? [Y/n]: N (You can set a password if you like)
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

A continuación, crearemos nuestro usuario y base de datos MySQL para nuestro sitio web Magento 2. Inicie sesión en su servidor MySQL con el siguiente comando e ingrese su contraseña raíz de MySQL cuando se le solicite:

mysql -u root -p

Para crear una nueva base de datos para nuestra instancia de Magento 2, ejecute los siguientes comandos:

mysql> set global log_bin_trust_function_creators=1;
mysql> CREATE USER 'magento'@'localhost' IDENTIFIED WITH mysql_native_password BY 'strongPassword';
mysql> create database magentodb;
mysql> GRANT ALL PRIVILEGES ON magentodb.* TO 'magento'@'localhost';
mysql> flush privileges;
mysql> quit

Asegúrate de dar tu magento Usuario de MariaDB una contraseña real y segura.

Instalar Magento 2

Ahora podemos continuar con la instalación de Magento 2. Al momento de escribir este artículo, la última versión estable de Magento es la versión 2.4.

Primero, ve al repositorio de GitHub y descarga la última versión de Magento con el siguiente comando:

mkdir -p /var/www/magento2/
cd /var/www/magento2/
git clone https://github.com/magento/magento2.git /var/www/magento2/

A continuación, necesitaremos instalar Composer para instalar todos los componentes necesarios de Magento. Puede instalar Composer simplemente ejecutando el siguiente comando:

curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer

Ejecute estos siguientes comandos para configurar el compositor.

cd /var/www/magento2
composer install
bin/magento setup:install --base-url=http://yourdomain.com/ --db-host=localhost --db-name=magentodb --db-user=magento --db-password=strongPassword --admin-firstname=FirstName --admin-lastname=LastName [email protected] --admin-user=magentoadmin --admin-password=strong-password --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1

No olvides para reemplazar el nombre de dominio , contraseña de la base de datos , nombre de usuario de administrador , contraseña y dirección de correo electrónico del administrador respectivamente.
Una vez que se complete la instalación, debería recibir el siguiente resultado:

[Progress: 699 / 701]
Post installation file permissions check...
For security, remove write permissions from these directories: '/var/www/magento2/app/etc'
[Progress: 700 / 701]
Write installation date...
[Progress: 701 / 701]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1k4pc0
Nothing to import.

Recuerde el 'URI de administración de Magento'. Necesitará esta información más adelante, ya que es la URL que usará para iniciar sesión en el back-end de Magento.

Cambiar la propiedad de magento2 directorio a www-data con el siguiente comando:

chown -R www-data:www-data /var/www/magento2/

Crear un archivo de configuración de Nginx

Cree un archivo de configuración de Nginx con su editor de texto:

nano /etc/nginx/sites-available/magento2

Luego agregue lo siguiente como contenido del archivo:

upstream fastcgi_backend {
server unix:/run/php/php7.4-fpm.sock;
}
server {
server_name yourdomain.com;
listen 80;
set $MAGE_ROOT /var/www/magento2;
set $MAGE_MODE developer; # or production
access_log /var/log/nginx/magento2-access.log;
error_log /var/log/nginx/magento2-error.log;
include /var/www/magento2/nginx.conf.sample;
}

Asegúrate de configurar yourdomain.com a su nombre de dominio registrado.

Elimine el archivo de configuración predeterminado de Nginx, si no se está utilizando:

rm -f /etc/nginx/sites-enabled/default

Habilite el archivo de configuración de Nginx recién creado, luego pruebe la configuración de Nginx y asegúrese de que no haya errores:

ln -s /etc/nginx/sites-available/magento2 /etc/nginx/sites-enabled/magento2
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

¡Eso es todo! Su servidor web ahora está configurado correctamente.

Instalar un certificado SSL

Vamos a instalar un certificado SSL gratuito de Let's Encrypt. Instale los paquetes necesarios ejecutando este comando:

apt-get install certbot python3-certbot-nginx

Luego instale un nuevo certificado SSL para su nombre de dominio, asegurándose de que yourdomain.com está configurado para su nombre de dominio registrado:

certbot --nginx -d yourdomain.com -d www.yourdomain.com

Seleccione '2' y elija redirigir el tráfico HTTP a HTTPS:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Utilice los siguientes comandos CLI de Magento 2 para actualizar la base-url de Magento y el base-url-secure valores:

cd /var/www/magento2/
php bin/magento setup:store-config:set --base-url="https://yourdomain.com/"
php bin/magento setup:store-config:set --base-url-secure="https://yourdomain.com/"

Edite el archivo de configuración de Nginx y habilite HTTP/2:

nano /etc/nginx/sites-enabled/magento2

Reemplazar:

listen 443 ssl;

Con:

listen 443 ssl http2;

Reinicie el servicio Nginx para que los cambios surtan efecto:

systemctl restart cron.service

Instalar trabajo cron

Magento requiere una configuración de trabajo cron para muchas funciones importantes del sistema. Vamos a crear el siguiente trabajo cron:

crontab -u www-data -e

Agregue esto al archivo:

* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log

Guarde y cierre el archivo.

Reinicie el servicio cron:

systemctl restart cron.service

¡Eso es todo! Magento 2 se ha instalado con éxito en su servidor.

Puede acceder al front-end de Magento en http://yourdomain.com :

Inicie sesión en el back-end de Magento 2 en http://yourdomain.com /URI de administrador de Magento y configura Magento según tus necesidades. Puede instalar extensiones, agregar productos, categorías y más.

Cada vez es más importante tener presencia en línea en el mundo digital actual. No necesita ser un experto en la administración de sistemas Linux cuando utiliza nuestro alojamiento Magento administrado:configuraremos todo para usted y lo mantendremos, todo incluido con nuestro VPS. Incluso podemos optimizar su servidor y realizar cualquier solicitud que pueda tener. Seguirás teniendo control total sobre tu servidor, pero nunca más tendrás que pasar por ningún problema.

Esperamos que este tutorial le haya ayudado a instalar Magento 2 en su Ubuntu 20.04 VPS. Si es así, considere compartir esta publicación en las redes sociales con nuestros accesos directos para compartir, o deje un comentario a continuación con cualquier pregunta o sugerencia que pueda tener. Gracias.


Panels
  1. Cómo instalar LEMP en Ubuntu 18.04

  2. Cómo instalar Magento en Ubuntu 18.04

  3. Cómo instalar WordPress con una pila LEMP en Ubuntu 18.04

  4. Cómo instalar WordPress con LAMP Stack en Ubuntu 20.04

  5. Cómo instalar Nextcloud en Ubuntu 20.04

Cómo instalar la pila LEMP en Ubuntu 16.04

Cómo instalar LEMP Stack (Nginx, MariaDB, PHP7.1) en Ubuntu 17.10

Cómo instalar LAMP Stack con PhpMyAdmin en Ubuntu 20.04

Cómo instalar Magento en Ubuntu 20.04 LTS

Cómo instalar LEMP Stack con PhpMyAdmin en Ubuntu 20.04

Cómo instalar Magento 2.4.3 en Ubuntu 20.04 con LAMP