Cómo instalar Magento en Debian 11

Magento es una aplicación de comercio electrónico gratuita y de código abierto que te permite alojar tu tienda online. Está escrito en PHP y utiliza el framework Zend. Es versátil y escalable, lo que la hace adecuada para tiendas pequeñas, medianas y grandes. Te permite alojar un sistema de carrito de la compra online totalmente funcional sin necesidad de tener conocimientos de programación. Es utilizado por miles de tiendas online debido a su simplicidad y facilidad de uso.

En este tutorial, te mostraré cómo instalar Magento2 en Debian 11.

Requisitos previos

  • Un servidor con Debian 11.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root configurada en el servidor.

Instalar Apache, PHP y otras extensiones necesarias

En primer lugar, tendrás que instalar Apache, PHP y otras extensiones PHP necesarias en tu servidor. Puedes instalarlas todas utilizando el siguiente comando:

apt-get install apache2 php libapache2-mod-php php-common php-gmp php-curl php-soap php-bcmath php-intl php-mbstring php-xmlrpc php-mysql php-gd php-xml php-cli php-zip -y

Una vez instalados todos los paquetes, edita el archivo php.ini y cambia algunos valores predeterminados:

nano /etc/php/7.4/apache2/php.ini

Cambia los siguientes valores:

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 512M
upload_max_filesize = 128M
max_execution_time = 3600

Guarda y cierra el archivo y reinicia el servicio Apache para aplicar los cambios:

systemctl restart apache2

Instalar y configurar el servidor MySQL

Magento2 utiliza MariaDB o MySQL como base de datos. Por defecto, la versión 10.5 de MariaDB está incluida en el repositorio por defecto de Debian 11, que no es compatible con Magento2. Así que tendrás que instalar MySQL Server 8 en tu servidor.

Primero, descarga el archivo del paquete MySQL con el siguiente comando:

wget https://repo.mysql.com//mysql-apt-config_0.8.18-1_all.deb

A continuación, instálalo con el siguiente comando:

apt install ./mysql-apt-config_0.8.18-1_all.deb -y

Se te pedirá que selecciones la versión de MySQL que quieres instalar:

Instalar MySQL

Selecciona MySQL Server 8 y pulsa el botón Aceptar.

A continuación, actualiza el repositorio e instala el servidor MySQL 8 con el siguiente comando:

apt-get update -y
apt-get install mysql-server -y

Una vez instalado el MySQL, conéctate al MySQL con el siguiente comando:

mysql -u root -p

Una vez conectado, crea una base de datos y un usuario para Magento2 con el siguiente comando:

mysql> CREATE DATABASE magento2;
mysql> CREATE USER 'magento2'@'localhost' IDENTIFIED BY 'password';

A continuación, concede todos los privilegios a la base de datos de Magento2:

mysql> GRANT ALL PRIVILEGES ON magento2.* TO 'magento2'@'localhost';

A continuación, vacía los privilegios y sal del MySQL con el siguiente comando:

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar Composer

Composer es un gestor de dependencias para PHP que se utiliza para gestionar las dependencias PHP necesarias para tu proyecto.

Primero, instala la herramienta de línea de comandos curl con el siguiente comando:

apt-get install curl -y

A continuación, instala Composer con el siguiente comando:

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

Obtendrás la siguiente salida:

All settings correct for using Composer
Downloading...

Composer (version 2.1.12) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

A continuación, verifica la versión de Composer utilizando el siguiente comando:

composer --version

Deberías ver la siguiente salida:

Composer version 2.1.12 2021-11-09 16:02:04

Instalar Magento2

A continuación, cambia el directorio al directorio raíz web de Apache y descarga la última versión de Magento2 con el siguiente comando:

cd /var/www/html
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento2

Se te pedirá que proporciones el nombre de usuario y la contraseña de tu cuenta Magento, como se muestra a continuación:

Creating a "magento/project-community-edition" project at "./magento2"
Warning from repo.magento.com: You haven't provided your Magento authentication keys. For instructions, visit https://devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html
    Authentication required (repo.magento.com):
      Username: a6b333ad41629bac913eaabb9b8e053c
      Password: 

Utiliza la clave Pública como nombre de usuario y la clave Privada como contraseña y pulsa la tecla Intro. Obtendrás el siguiente resultado:

Do you want to store credentials for repo.magento.com in /root/.config/composer/auth.json ? [Yn] Y
Installing magento/project-community-edition (2.4.3-p1)
  - Downloading magento/project-community-edition (2.4.3-p1)
  - Installing magento/project-community-edition (2.4.3-p1): Extracting archive
Created project in /var/www/html/magento2
Loading composer repositories with package information

A continuación, establece los permisos y la propiedad adecuados de Magento2 y otros directorios:

chown -R www-data:www-data /var/www/html/magento2/
cd /var/www/html/magento2
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

A continuación, desactiva el módulo Elasticsearch con el siguiente comando:

php bin/magento module:disable {Magento_Elasticsearch,Magento_InventoryElasticsearch,Magento_Elasticsearch6,Magento_Elasticsearch7}

Obtendrás el siguiente resultado:

The following modules have been disabled:
- Magento_Elasticsearch
- Magento_Elasticsearch6
- Magento_InventoryElasticsearch
- Magento_Elasticsearch7

Cache cleared successfully.
Generated classes cleared successfully. Please run the 'setup:di:compile' command to generate classes.
Info: Some modules might require static view files to be cleared. To do this, run 'module:disable' with the --clear-static-content option to clear them.

A continuación, instala Magento2 con el siguiente comando:

bin/magento setup:install --base-url=http://magento.example.com --db-host=localhost --db-name=magento2 --db-user=magento2 --db-password=password --admin-firstname=admin --admin-lastname=admin [email protected] --admin-user=admin --admin-password=Secure@password123 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1

Una vez instalado el Magento2, deberías ver la siguiente salida:

Module 'Vertex_AddressValidation':
[Progress: 1363 / 1370]
Module 'Yotpo_Yotpo':
[Progress: 1364 / 1370]
Enabling caches:
Current status:
layout: 1
block_html: 1
full_page: 1
[Progress: 1365 / 1370]
Installing admin user...
[Progress: 1366 / 1370]
Caches clearing:
Cache cleared successfully
[Progress: 1367 / 1370]
Disabling Maintenance Mode:
[Progress: 1368 / 1370]
Post installation file permissions check...
For security, remove write permissions from these directories: '/var/www/html/magento2/app/etc'
[Progress: 1369 / 1370]
Write installation date...
[Progress: 1370 / 1370]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_fgadpx
Nothing to import.

Nota: Recuerda el URI de administración de Magento2 de la salida anterior. Tendrás que utilizarlo para acceder a la interfaz web de Magento.

A continuación, desactiva la autenticación de dos factores de Magento2, borra la caché e instala el Cron con los siguientes comandos:

sudo -u www-data bin/magento module:disable Magento_TwoFactorAuth
sudo -u www-data bin/magento cache:flush
sudo -u www-data bin/magento cron:install

Una vez que hayas terminado, puedes pasar al siguiente paso.

Crear un archivo de configuración de host virtual Apache

A continuación, tendrás que crear un archivo de configuración de host virtual de Apache para Magento2. Puedes crearlo con el siguiente comando:

nano /etc/apache2/sites-available/magento2.conf

Añade las siguientes líneas:

<VirtualHost *:80>
     ServerAdmin [email protected]
      DocumentRoot /var/www/html/magento2/
     ServerName magento.example.com

     <Directory /var/www/html/magento2/>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/magento2_error.log
     CustomLog ${APACHE_LOG_DIR}/magento2_access.log combined

</VirtualHost>

Guarda y cierra el archivo y, a continuación, activa el host virtual de Magento y el módulo de reescritura de Apache con el siguiente comando:

a2ensite magento2.conf
a2enmod rewrite

Por último, reinicia el servicio Apache para aplicar los cambios:

systemctl restart apache2

También puedes comprobar el estado de Apache con el siguiente comando:

systemctl status apache2

Deberías ver la siguiente salida:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-11-20 06:00:59 UTC; 4s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 18394 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 18398 (apache2)
      Tasks: 6 (limit: 4679)
     Memory: 15.1M
        CPU: 99ms
     CGroup: /system.slice/apache2.service
             ??18398 /usr/sbin/apache2 -k start
             ??18399 /usr/sbin/apache2 -k start
             ??18400 /usr/sbin/apache2 -k start
             ??18401 /usr/sbin/apache2 -k start
             ??18402 /usr/sbin/apache2 -k start
             ??18403 /usr/sbin/apache2 -k start

Nov 20 06:00:59 debian11 systemd[1]: Starting The Apache HTTP Server...

Accede a la interfaz web de Magento2

Ahora, abre tu navegador web y accede a la interfaz de administración de Magento2 utilizando la URL http://magento.example.com/admin_fgadpx. Deberías ver la página de inicio de sesión de Magento2:

Inicio de sesión en Magento

Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de Magento2 en la página siguiente:

Panel de control de Magento

Conclusión

Enhorabuena! has instalado con éxito Magento2 en Debian 11. Ahora puedes alojar tu tienda online fácilmente con Magento. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...