Cómo instalar Magento en CentOS 8

Instalador de Magento

Magento es una de las plataformas de comercio electrónico de código abierto más populares que le permite configurar sitios web de comercio electrónico y tiendas en línea en minutos. Está escrito en PHP, basado en Zend Framework y utiliza el modelo de base de datos Entity Attribute Value (EAV) para almacenar datos. Viene con una interfaz simple y fácil de usar que le permite personalizar su tienda en línea y vender sus productos y servicios fácilmente.

En este tutorial, le mostraremos cómo instalar la plataforma de comercio electrónico Magento en CentOS 8 con SSL gratuito de Let’s Encrypt.

Requisitos

  • Un servidor que ejecuta CentOS 8 con 2 GB de RAM.
  • Un nombre de dominio válido apuntado con la IP de su servidor.
  • Una contraseña de root está configurada en el servidor.

Instalar servidor LEMP

Primero, instale el servidor web Nginx, el servidor de base de datos MariaDB, PHP y otras bibliotecas PHP requeridas ejecutando el siguiente comando:

dnf install nginx mariadb-server php php-cli php-mysqlnd php-opcache php-xml php-gd php-soap php-bcmath php-intl php-mbstring php-json php-iconv php-fpm php-zip unzip git -y

Una vez que todos los paquetes estén instalados, inicie el servicio Nginx, MariaDB y PHP-FPM y habilítelos para que se inicien después de reiniciar el sistema con el siguiente comando:

systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
systemctl enable nginx
systemctl enable mariadb
systemctl enable php-fpm

A continuación, deberá editar el archivo php.ini y modificar algunas configuraciones:

nano /etc/php.ini

Cambia las siguientes líneas:

memory_limit =512M
upload_max_filesize = 200M
zlib.output_compression = On 
max_execution_time = 300 
date.timezone = Asia/Kolkata

Guarde y cierre el archivo cuando haya terminado.

Configurar base de datos

De forma predeterminada, MariaDB no está protegida, por lo que deberá protegerla primero. Ejecute el siguiente script para proteger MariaDB:

mysql_secure_installation

Responda todas las preguntas como se muestra a continuación:

Enter current password for root (enter for none): 
Set root password? [Y/n] Y
New password: 
Re-enter new password: 
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

Una vez que haya terminado, inicie sesión en MariaDB shell con el siguiente comando:

mysql -u root -p

Proporcione su contraseña raíz cuando se le solicite, luego cree una base de datos y un usuario para Magento como se muestra a continuación:

MariaDB [(none)]> CREATE DATABASE magentodb;
MariaDB [(none)]> GRANT ALL ON magentodb.* TO [email protected] IDENTIFIED BY 'password';

A continuación, elimine los privilegios y salga del shell de MariaDB con el siguiente comando:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Configurar PHP-FPM para Magento

A continuación, deberá configurar el grupo PHP-FPM para su instancia de Magento. Puede configurarlo creando el siguiente archivo:

nano /etc/php-fpm.d/magento.conf

Agregue las siguientes líneas:

[magento]
user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
listen = /run/php-fpm/magento.sock
pm = ondemand
pm.max_children =  50
pm.process_idle_timeout = 10s
pm.max_requests = 500
chdir = /

Guarde y cierre el archivo y luego reinicie el servicio PHP-FPM para implementar los cambios:

systemctl restart php-fpm

Descargar Magento

Primero, descargue la última versión de Magento desde el repositorio de Git usando el siguiente comando:

cd /var/www/html
wget https://github.com/magento/magento2/archive/2.3.zip

Una vez descargado, descomprima el archivo descargado como se muestra a continuación:

unzip 2.3.zip

A continuación, mueva el directorio extraído a magento2 como se muestra a continuación:

mv magento2-2.3 magento2

A continuación, deberá instalar Composer para instalar las dependencias de PHP para Magento.

Puede instalar Composer con el siguiente comando:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Luego, cambie el directorio a magento2 e instale todas las dependencias de Magento con el siguiente comando:

cd /var/www/html/magento2
composer update
composer install

A continuación, deberá crear el crontab de Magento para programar tareas. Puedes crearlo con el siguiente comando:

./bin/magento cron:install

Puede verificar el crontab usando el siguiente comando:

crontab -l

Deberías obtener el siguiente resultado:

#~ MAGENTO START f73db5f5dcf223372d4c9fab56bef0c1730eece898fad5cbee0c313b46b0dd1f
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/html/magento2/update/cron.php >> /var/www/html/magento2/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento setup:cron:run >> /var/www/html/magento2/var/log/setup.cron.log
#~ MAGENTO END f73db5f5dcf223372d4c9fab56bef0c1730eece898fad5cbee0c313b46b0dd1f

A continuación, otorgue los permisos adecuados al directorio magento2: Publicidad

chown -R nginx:nginx /var/www/html/magento2
chmod -R 755 /var/www/html/magento2

Configurar Nginx para Magento

A continuación, deberá crear un archivo de host virtual Nginx para Magento. Puedes crearlo con el siguiente comando:

nano /etc/nginx/conf.d/magento.conf

Agregue las siguientes líneas:

upstream fastcgi_backend {
  server   unix:/run/php-fpm/magento.sock;
}

server {
    listen 80;
    server_name magento.linuxbuz.com;

    set $MAGE_ROOT /var/www/html/magento2;
    set $MAGE_MODE developer;

    access_log /var/log/nginx/magento-access.log;
    error_log /var/log/nginx/magento-error.log;

    include /var/www/html/magento2/nginx.conf.sample;
}

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio Nginx y PHP-FPM para implementar los cambios:

systemctl restart php-fpm
systemctl restart nginx

Configurar SELinux y Firewall

De manera predeterminada, SELinux está habilitado en CentOS 8. Por lo tanto, deberá configurar SELinux para que Magento funcione correctamente.

Puede configurar SELinux con el siguiente comando:

semanage permissive -a httpd_t

A continuación, deberá crear una regla de firewall para permitir el servicio HTTP y HTTPS desde redes externas. Puedes permitirlo con el siguiente comando:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Asegure Magento con Let’s Encrypt SSL

Magento ahora está instalado y configurado. Es hora de protegerlo con SSL gratuito de Let’s Encrypt.

Para hacerlo, deberá descargar el cliente certbot en su servidor. Puede descargar y establecer el permiso correcto ejecutando el siguiente comando:

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Ahora, ejecute el siguiente comando para obtener e instalar un certificado SSL para su sitio web de Magento.

certbot-auto --nginx -d magento.linuxbuz.com

El comando anterior primero instala todas las dependencias requeridas como se muestra a continuación:

Installed:
  gcc-8.2.1-3.5.el8.x86_64                                                  mod_ssl-1:2.4.37-12.module_el8.0.0+185+5908b0db.x86_64             
  python3-virtualenv-15.1.0-18.module_el8.0.0+33+0a10c0e1.noarch            python36-devel-3.6.8-2.module_el8.0.0+33+0a10c0e1.x86_64           
  redhat-rpm-config-116-1.el8.0.1.noarch                                    augeas-libs-1.10.1-8.el8.x86_64                                    
  libffi-devel-3.1-18.el8.x86_64                                            openssl-devel-1:1.1.1-8.el8.x86_64                                 
  annobin-8.64-1.el8.x86_64                                                 cpp-8.2.1-3.5.el8.x86_64                                           
  dwz-0.12-9.el8.x86_64                                                     efi-srpm-macros-3-2.el8.noarch                                     
  ghc-srpm-macros-1.4.2-7.el8.noarch                                        go-srpm-macros-2-16.el8.noarch                                     
  isl-0.16.1-6.el8.x86_64                                                   libmpc-1.0.2-9.el8.x86_64                                          
  ocaml-srpm-macros-5-4.el8.noarch                                          openblas-srpm-macros-2-2.el8.noarch                                
  perl-srpm-macros-1-25.el8.noarch                                          platform-python-devel-3.6.8-2.el8_0.0.1.x86_64                     
  python-rpm-macros-3-37.el8.noarch                                         python-srpm-macros-3-37.el8.noarch                                 
  python3-rpm-generators-5-4.el8.noarch                                     python3-rpm-macros-3-37.el8.noarch                                 
  qt5-srpm-macros-5.11.1-2.el8.noarch                                       rust-srpm-macros-5-2.el8.noarch                                    
  glibc-devel-2.28-42.el8.1.x86_64                                          glibc-headers-2.28-42.el8.1.x86_64                                 
  kernel-headers-4.18.0-80.11.2.el8_0.x86_64                                keyutils-libs-devel-1.5.10-6.el8.x86_64                            
  krb5-devel-1.16.1-22.el8.x86_64                                           libcom_err-devel-1.44.3-2.el8.x86_64                               
  libkadm5-1.16.1-22.el8.x86_64                                             libselinux-devel-2.8-6.el8.x86_64                                  
  libsepol-devel-2.8-2.el8.x86_64                                           libverto-devel-0.3.0-5.el8.x86_64                                  
  libxcrypt-devel-4.1.1-4.el8.x86_64                                        pcre2-devel-10.32-1.el8.x86_64                                     
  pcre2-utf16-10.32-1.el8.x86_64                                            pcre2-utf32-10.32-1.el8.x86_64                                     
  zlib-devel-1.2.11-10.el8.x86_64                                          

Complete!
Creating virtual environment...
Installing Python packages...
Installation succeeded.

Una vez que todas las dependencias estén instaladas, se le pedirá que proporcione su dirección de correo electrónico y acepte el término del servicio como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for magento.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/magento.conf

A continuación, deberá elegir si desea redirigir o no el tráfico HTTP a HTTPS, como se muestra a continuación:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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  

Escriba 2 y presione Entrar para instalar el certificado Let’s Encrypt SSL para su dominio como se muestra a continuación:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/magento.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://magento.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=magento.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/magento.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/magento.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-03-23. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Acceder a Magento

Magento ahora está instalado y configurado. Es hora de acceder al asistente de instalación de Magento.

Abra su navegador web y escriba la URL https://magento.linuxbuz.com. Será redirigido a la página de bienvenida de Magento:

Instalador de Magento

Haga clic en el Aceptar y configurar Magento botón. Debería ver el asistente de verificación de preparación de Magento:

Comprobación de sistema listo

Ahora, haga clic en el próximo botón. Deberías ver la siguiente página:

Configuración de la base de datos

Proporcione los detalles de su base de datos y haga clic en el próximo botón. Deberías ver la siguiente página:

Configuración web

Ahora, proporcione su tienda Magento y la URL de administración, y haga clic en el próximo botón. Deberías ver la siguiente página:

Configurar moneda, zona horaria e idioma

Seleccione su zona horaria deseada, moneda, idioma y haga clic en el próximo botón. Deberías ver la siguiente página:

Configurar nombre de usuario

Ahora, proporcione su nombre de usuario y contraseña de administrador de Magento y haga clic en el próximo botón. Deberías ver la siguiente página:

Continuar con la instalación

Ahora, haga clic en el Instalar Ahora botón para iniciar la instalación de Magento. Una vez que la instalación se haya completado con éxito. Deberías ver la siguiente página:

instalación exitosa

Ahora, haga clic en el Dirección de su tienda botón. Debería ver su tienda Magento en la siguiente página:

Página de inicio de Magento

Para acceder a su interfaz de administración de Magento, escriba la URL https://magento.linuxbuz.com/admin_1teqss en su navegador web. Será redirigido a la página de inicio de sesión de Magento:

Inicio de sesión

Proporcione su nombre de usuario y contraseña de administrador de Magento y haga clic en el Señal en botón. Debería ver su interfaz de administración de Magento en la siguiente página:

Tablero Magento

Eso es todo por ahora. Su Magento ahora está protegido con SSL gratuito de Let’s Encrypt.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *