Cómo instalar Magento 2 con Nginx y Let’s Encrypt SSL en Ubuntu 20.04 LTS

Magento es un software de comercio electrónico de código abierto ampliamente utilizado y un sistema de gestión de contenido para sitios web de comercio electrónico basado en PHP Zend Framework. Utiliza MySQL o MariaDB como base de datos. El desarrollo de Magento fue iniciado en 2008 por Varien.
En este tutorial, le mostraremos paso a paso cómo instalar Magento 2 en la última versión de Ubuntu 20.04. Instalaremos Magento bajo la pila LEMP, el servidor web Nginx, PHP-FPM 7.3 y el servidor MariaDB.
Requisitos
Para este tutorial, instalaremos Magento 2 en el sistema Ubuntu 20.04 con 2 GB de RAM, 50 GB de espacio libre en disco y 2 CPU.
¿Lo que haremos?
- Instalar el servidor web Nginx
- Instalar y configurar PHP-FPM 7.3
- Instalar y configurar el servidor MySQL
- Instalar PHP Composer
- Descargar e instalar Magento
- Generar SSL Letsencrypt
- Configurar Nginx Virtualhost para Magento
- Posinstalación de Magento
Paso 1: instale el servidor web Nginx
Primero, instalaremos el servidor web Nginx en el sistema Ubuntu 20.04.
Instale Nginx usando el comando apt a continuación.
sudo apt install nginx
Una vez que se complete toda la instalación, inicie el servicio Nginx y agréguelo al inicio del sistema.
systemctl start nginx systemctl enable nginx
Después de eso, verifique el estado del servicio Nginx usando el siguiente comando.
systemctl status nginx
El servidor web Nginx está funcionando en el servidor Ubuntu 20.04.
A continuación, abriremos los puertos HTTP y HTTPS en nuestro sistema Ubuntu.
Ejecute el comando ufw a continuación.
for svc in ssh http https do ufw allow $svc done
Como resultado, los servicios SSH, HTTP y HTTPS se agregaron a la regla de firewall ufw.
Ahora ejecute habilitar el firewall ufw usando el siguiente comando.
ufw enable
Escribe ‘y’ y presione Entrar, y ha habilitado el firewall ufw.
Paso 2: instalar y configurar PHP-FPm 7.3
Después de instalar el servidor web Nginx, instalaremos PHP-FPM en nuestro servidor Ubuntu 20.04.
De forma predeterminada, Ubuntu 20.04 viene con la versión más reciente de PHP/PHP-FPM 7.4. Pero por ahora, Magento solo funciona con PHP/PHP-FPM 7.3. Y en este paso, instalaremos PHP-FPM 7.3 desde el repositorio de PPA.
Antes de continuar, instale el paquete ‘software-properties-common’ y agregue el repositorio PPA para PHP 7.3 usando el siguiente comando.
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php
El ‘repositorio add-apt’ actualizará automáticamente todos los repositorios en el sistema.
Ahora instale los paquetes PHP-FPM 7.3 desde el repositorio de PPA usando el comando apt a continuación.
sudo apt install php7.3-fpm php7.3-common php7.3-curl php7.3-cli php7.3-mysql php7.3-gd php7.3-xml php7.3-json php7.3-intl php-pear php7.3-dev php7.3-common php7.3-mbstring php7.3-zip php7.3-soap php7.3-bcmath php7.3-opcache -y
Y la instalación de PHP-FPM 7.3 se ha completado.
Después de eso, vaya al directorio ‘/etc/php/7.3’ y edite la configuración ‘php.ini’ para PHP-FPM.
cd /etc/php/7.3/ vim fpm/php.ini
Descomente y cambie la configuración como se muestra a continuación.
date.timezone = Asia/Singapore memory_limit = 1G max_execution_time = 1800 zlib.output_compression = On cgi.fix_pathinfo = 0 opcache.enable=1 opcache.save_comments = 1
Guardar y cerrar.Publicidad
A continuación, inicie el servicio PHP-FPM y agréguelo al inicio del sistema.
systemctl start php7.3-fpm systemctl enable php7.3-fpm
El servicio PHP-FPM está en funcionamiento, verifíquelo con el siguiente comando.
ss -xa | grep php systemctl status php7.3-fpm
Como resultado, PHP-FPM está funcionando en el servidor Ubuntu 20.04, se ejecuta en el archivo sock ‘/run/php/php7.3-fpm.sock’.
Paso 3: instalar y configurar el servidor MariaDB
En este paso, instalaremos el servidor de la base de datos MariaDB, configuraremos la contraseña raíz predeterminada para MariaDB y crearemos una nueva base de datos y un usuario para Magento.
Instale los paquetes del servidor MariaDB en Ubuntu 20.04 usando el comando apt a continuación.
sudo apt install mariadb-server
Una vez completada toda la instalación, inicie el servicio MariaDB y agréguelo al inicio del sistema.
systemctl start mariadb systemctl enable mariadb
El servicio MariaDB está en funcionamiento.
A continuación, configuraremos la contraseña raíz de MariaDB usando la utilidad ‘mysql_secure_installaltion’.
Ejecute el comando ‘mysql_secure_installaltion’ a continuación.
mysql_secure_installation
Escriba su contraseña segura para el usuario root de MariaDB y escriba ‘Y’ para toda la configuración.
Set a root password? [Y/n] Y 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
Como resultado, se configuró la contraseña raíz de MariaDB.
A continuación, crearemos una nueva base de datos y un nuevo usuario para la instalación de Magento.
Inicie sesión en el shell de MariaDB/MySQL utilizando el siguiente comando mysql.
mysql -u root -p
Ahora cree una nueva base de datos para nuestra instalación de Magento. Cree la base de datos ‘magentodb’ y el usuario ‘magentouser’ con la contraseña ‘magentodbpass’.
Ejecute las consultas de MySQL a continuación.
create database magentodb; create user [email protected]'localhost' identified by 'magentopassdb'; grant all privileges on magentodb.* to [email protected]'localhost'; flush privileges;
Ahora escriba ‘salir’ para cerrar sesión en el shell de MySQL.
Como resultado, se ha completado la nueva base de datos y usuario para la instalación de Magento.
Paso 4 – Instalar Composer
Composer es un administrador de dependencias para PHP. es un administrador de paquetes a nivel de aplicación para PHP que le permite descargar dependencias y bibliotecas PHP adicionales a su proyecto PHP.
En este paso, instalaremos PHP Composer desde el repositorio de Ubuntu.
Instale Composer usando el comando apt a continuación.
sudo apt install composer -y
Una vez completada la instalación, verifique la versión del compositor a continuación.
composer --version
A continuación se muestra la respuesta que obtendrá.
Composer 1.10.1 2020-03-13 20:34:27
Como se puede ver, Composer 1.10 se ha instalado en el servidor ubuntu 20.04.
Paso 5: descargue e instale Magento 2
En este paso, descargaremos e instalaremos Magento 2 y todos los paquetes de PHP necesarios con Composer.
Primero, vaya al directorio ‘/var/www/’ y descargue el código fuente de Magento 2.3.5 CE (Community Edition) usando el comando wget como se muestra a continuación.
cd /var/www/ wget -q https://github.com/magento/magento2/archive/2.3.5.tar.gz
Una vez que todo esté completo, extraiga el código fuente de Magento y cambie el nombre del directorio extraído a directorio ‘magento2’.
tar -xf 2.3.5.tar.gz mv magento2-*/ magento2/
A continuación, vaya al directorio de instalación de Magento ‘/var/www/magento2’ e instale todas las dependencias de paquetes de PHP para Magento usando el comando Composer como se muestra a continuación.
cd /var/www/magento2/ composer install
Una vez completada toda la instalación, fije la propiedad del directorio de instalación de Magento 2 al usuario ‘www-data’.
chown -R www-data:www-data /var/www/magento2
Como resultado, se completó la instalación de Magento 2 y todas las dependencias de los paquetes.
Paso 6 – Genera SSL Letsencrypt
Para este tutorial, aseguraremos la instalación de Magento 2 utilizando SSL Letsencrypt. Y en este paso, generaremos el SSL Letsencrypt usando el comando certbot. Además, asegúrese de que su nombre de dominio se resuelva en la dirección IP del servidor.
Instale la herramienta certbot usando el comando apt a continuación.
sudo apt install certbot
Una vez completada la instalación, detenga el servicio Nginx.
systemctl stop nginx certbot certonly --standalone --agree-tos --no-eff-email --email [email protected] -d magento.hakase-labs.io
Una vez que todo esté completo, obtendrá sus certificados SSL en el directorio ‘/etc/letsencrypt/live/magento.your-domain.com’.
Como resultado, se ha generado la instalación de SSL Letsencrypt para Magento 2.
Paso 7: configure Nginx Virtualhost para Magento 2
En este paso, agregaremos una nueva configuración de host virtual de Nginx para Magento 2.
Vaya al directorio ‘/etc/nginx/sites-available/’ y cree una nueva configuración ‘magento’ usando el editor vim.
cd /etc/nginx/sites-available/ vim magento
Pegue la siguiente configuración en él.
upstream fastcgi_backend { server unix:/run/php/php7.3-fpm.sock; } server { listen 80; listen [::]:80; server_name magento.hakase-labs.io; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name magento.hakase-labs.io; ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.io/privkey.pem; set $MAGE_ROOT /var/www/magento2; set $MAGE_MODE developer; include /var/www/magento2/nginx.conf.sample; }
Guardar y cerrar.
A continuación, active el host virtual Magento Nginx y pruebe la configuración de nginx, y asegúrese de que no haya ningún error.
ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/ nginx -t
Ahora reinicie el servicio Nginx usando el siguiente comando.
systemctl restart nginx
Como resultado, se ha creado y habilitado la configuración de host virtual de Nginx para Magento 2.
Paso 8 – Posinstalación de Magento
Abra su navegador web y escriba su nombre de dominio de instalación de Magento en la barra de direcciones.
https://magento.hakase-labs.io/
Ahora será redirigido a la conexión segura HTTPS y obtendrá la página de bienvenida y los Términos de servicio de Magento.
Haga clic en ‘Aceptar y configurar Magento‘botón para continuar.
En la página ‘Verificación de preparación’, asegúrese de que todos los requisitos estén en verde y haga clic en ‘próximo‘ botón.
Escriba los detalles de la base de datos MariaDB y el usuario que creamos arriba y haga clic en ‘próximo‘.
Para la ‘Configuración web’, cambie todo el protocolo HTTP a HTTPS y asegúrese de cambiar la ‘Dirección de administración de Magento’.
Ahora haga clic en ‘Opciones avanzadas’ y marque todas las opciones de HTTPS, luego desmarque la opción ‘Reescrituras de Apache’ y haga clic en ‘próximo‘botón de nuevo.
A continuación, en la configuración de Magento ‘Personalizar su tienda’, déjela como predeterminada y haga clic en ‘próximo‘ botón.
Ahora escriba los detalles del usuario administrador, el correo electrónico y la contraseña. Luego haga clic en el próximo botón.
Haga clic en el ‘Instalar ahora’ botón para instalar tu tienda Magento 2.
Ahora haz que toda la instalación no tenga ningún error.
Una vez finalizada toda la instalación, obtendrá ‘Éxito‘ página como se muestra a continuación.
Haga clic en el ‘Inicie el administrador de Magento‘ para iniciar sesión en su panel de administración de Magento.
Ahora escriba su usuario y contraseña de administrador de Magento, luego haga clic en el ‘Registrarse’ y obtendrá el panel de administración de Magento como se muestra a continuación.
Para la página de índice predeterminada de Magento, abra una nueva pestaña y escriba su nombre de dominio en la barra de direcciones.
A continuación se muestra la página de índice predeterminada de Magento.
Como resultado, se completó la instalación de Magento 2.
A continuación, regrese al shell de su servidor y configuraremos Magento Cron y eliminaremos el permiso para escribir de algún directorio de instalación de Magento.
Para configurar el cron de Magento, ejecute el siguiente comando.
cd /var/www/magento2 sudo -u www-data php bin/magento cron:install --force
El cron de Magento se ejecutará bajo el usuario ‘www-data’, verifíquelo con el siguiente comando.
crontab -u www-data -l
Como resultado, el Magento Cron se ha agregado al sistema.
A continuación, debemos eliminar el permiso de escritura del directorio ‘/var/www/magento2/app/etc’.
Ejecute el comando chmod a continuación.
chmod u-w /var/www/magento2/app/etc
Y finalmente, la instalación de Magento 2 con el servidor web Nginx, el servidor MariaDB, PHP-FPM 7.3 en la última versión de Ubuntu 20.04 se completó con éxito.