Cómo instalar Magento en CentOS 8
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:
Haga clic en el Aceptar y configurar Magento botón. Debería ver el asistente de verificación de preparación de Magento:
Ahora, haga clic en el próximo botón. Deberías ver la siguiente página:
Proporcione los detalles de su base de datos y haga clic en el próximo botón. Deberías ver la siguiente página:
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:
Seleccione su zona horaria deseada, moneda, idioma y haga clic en el próximo botón. Deberías ver la siguiente página:
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:
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:
Ahora, haga clic en el Dirección de su tienda botón. Debería ver su tienda Magento en la siguiente página:
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:
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:
Eso es todo por ahora. Su Magento ahora está protegido con SSL gratuito de Let’s Encrypt.