Cómo instalar Magento 2 en Ubuntu 20.04 LTS

Una guía completa sobre cómo configurar e implementar la tienda Magento2 en un servidor Ubuntu 20.04.

Magento es una popular plataforma de comercio electrónico creada y escrita en PHP, es utilizada por muchas empresas de pequeña escala para vender productos y crear una presencia en línea. Le permite crear una tienda en línea completa con características como administración de inventario, catálogos de productos, envío, facturación y mucho más.

Si está buscando construir una plataforma de compras elegante y de nivel empresarial para su negocio, Magento debería ser un excelente punto de partida. Entonces, en esta guía, veremos cómo configurar la versión 2.3 de la edición comunitaria de Magento con la pila LAMP en un servidor Ubuntu 20.04.

Prerrequisitos

Necesitará un servidor Ubuntu 20.04 LTS e inició sesión como sudo usuario habilitado. También necesitará un nombre de dominio que apunte a la IP de su servidor Ubuntu 20.04. Usaremos example.com siempre que se requiera un nombre de dominio, reemplácelo con su dominio. Antes de comenzar, actualice la lista de paquetes y luego actualice los paquetes en su servidor Ubuntu 20.04.

actualización de sudo apt && actualización de sudo apt

Instalar el servidor web Apache

Magento requiere un servidor web para funcionar, en esta guía hemos optado por ejecutar la aplicación Magento sobre la pila LAMP (Linux, Apache, MySQL, PHP). Entonces vamos a instalar todos los paquetes que consisten en la pila LAMP.

El servidor web Apache es uno de los servidores web más populares en Internet y tiene casi el 37,2% de la cuota de mercado total de servidores web. También puede optar por instalar Magento sobre la pila LEMP que usa el servidor web Nginx en lugar de apache. Pero en esta guía vamos a implementar nuestro servidor Megento con la ayuda de Apache.

Para instalar el servidor web Apache, ejecute el siguiente comando:

sudo apt instalar apache2

Ingrese su contraseña de usuario y presione Y si se le solicita. Cuando se completa la instalación, necesitamos configurar el cortafuegos sencillo (UFW) de Ubuntu para permitir el tráfico en el puerto 80 & 443.

El UFW viene con perfiles preconfigurados que se pueden alternar para permitir que la aplicación acceda a los puertos de su servidor Ubuntu 20.04. Entonces, cuando instaló el servidor web Apache, los perfiles UFW llamados "Apache", "Apache Full" y "Apache Secure" se agregaron a la lista de aplicaciones UFW. Permitir que el servidor web Apache sirva en el puerto 80 & 443 mediante la ejecución:

sudo ufw permite 'Apache completo'

Ahora, todo lo que tenemos que hacer es habilitar el UFW, pero antes de hacerlo, asegúrese de haber permitido el puerto 22 (SSH). Si no cambia las reglas SSH UFW, es posible que se bloquee su servidor Ubuntu 20.04.

sudo ufw permite 'OpenSSH'

Finalmente, habilite el firewall UFW ejecutando:

sudo ufw habilitar

imprenta Y si recibe un mensaje que dice que el comando podría interrumpir las conexiones SSH, ya que ya hemos agregado una regla para permitir que SSH lo atraviese. Ahora puede acceder al servidor web apache a través de su navegador, escriba la dirección IP de su servidor Ubuntu 20.04 en la barra de URL y presione enter.

página predeterminada de apache2 ubuntu

Instalar MySQL Server

También necesitará un servidor de base de datos para ejecutar Magento, ya que es donde se almacena todo el contenido de la tienda Magento. Vamos a instalar el servidor MySQL y crear un usuario llamado magentouser y una base de datos llamada magento para el Magento.

El paquete MySQL se llama como servidor mysql en repositorios de Ubuntu, instálelo ejecutando:

sudo apt instalar servidor mysql

A continuación, debemos configurar correctamente la configuración de seguridad de MySQL. Afortunadamente, el paquete MySQL viene con un script de seguridad que facilita la configuración del servidor MySQL. Entonces, ejecute este script ejecutando el siguiente comando:

sudo mysql_secure_installation

Se le solicitarán varias preguntas, estas son las configuraciones óptimas para el servidor MySQL:

  • ¿Le gustaría configurar el componente VALIDATE PASSWORD? [S / n]: Enter Y
  • Hay tres niveles de política de validación de contraseñas.
    • Ingrese 0 = BAJO, 1 = MEDIO y 2 = FUERTE: Ingrese 2
  • Establezca la contraseña de root aquí.
    • Nueva contraseña: introduzca una contraseña para el usuario root de MySQL.
    • Vuelva a ingresar la nueva contraseña: repita la contraseña elegida.
  • ¿Eliminar usuarios anónimos? [y / n]: Ingrese Y
  • ¿Deshabilitar el inicio de sesión de root de forma remota? [y / n]: Ingrese Y
  • ¿Eliminar la base de datos de prueba y acceder a ella? [y / n]: Ingrese Y
  • ¿Recargar tablas de privilegios ahora? [y / n]: Ingrese Y

Luego, para verificar y validar que el servidor MySQL esté instalado y funcionando correctamente, inicie sesión en el servidor MySQL como usuario root mediante:

sudo mysql

Entra tu sudo contraseña de usuario cuando se le solicite y presione enter. El usuario root de MySQL usa el unix_socket para autenticar el inicio de sesión. Lo que esto significa esencialmente es que debes ser un sudo usuario para iniciar sesión en el servidor MySQL como su usuario raíz.

Cree una nueva base de datos y un usuario para Magento

Ahora podemos, crear un usuario de MySQL para Magento y si ha seguido cada paso de esta guía, debe tener la consola de MySQL abierta. Crea una base de datos llamada magento ingresando la siguiente consulta en la consola MySQL:

CREAR BASE DE DATOS magento;

Para crear un nuevo usuario de MySQL llamado magentouser, ejecute esta consulta en la consola:

CREAR USUARIO 'magentouser' @ '%' IDENTIFICADO CON mysql_native_password POR 'contraseña';

Nota: Reemplace la contraseña en la consulta con una contraseña segura de su elección.

Entonces concede el nuevo magentouser acceso completo a la magento base de datos:

CONCEDER TODO EN magento. * A 'magentouser' @ '%' CON OPCIÓN DE CONCESIÓN;

Necesitamos configurar el log_bin_trust_function_creators parámetro como 1 ya que está deshabilitado en la última versión de MySQL y sin habilitarlo, Magento arroja algunos errores durante la instalación. Para hacerlo, ejecute la siguiente consulta:

SET GLOBAL log_bin_trust_function_creators = 1;

Finalmente, vuelva a cargar los privilegios y configuraciones de la base de datos que cambiamos y salga de la consola usando estas consultas:

PRIVILEGIOS DE FLUSH; SALIDA;

Instalar PHP y las extensiones necesarias

Magento requiere PHP y algunas extensiones PHP para funcionar. En el momento de escribir este artículo, la versión de la edición comunitaria de Magento 2.3 no funciona con la última versión de PHP 7.4 y por lo tanto necesitamos instalar la versión PHP 7.3.

Necesitamos agregar un PPA PHP de terceros para que podamos instalar la versión PHP 7.3 ya que los repositorios de Ubuntu solo tienen la última 7.4 paquetes. Agregue el PPA y actualice la lista de paquetes ejecutando estos comandos:

sudo add-apt-repository ppa: ondrej / php && sudo apt update

Luego instale PHP 7.3 y todos los módulos PHP que Magento requiere ejecutando el siguiente comando:

sudo apt install php7.3 php7.3-common php7.3-mysql php7.3-fpm php7.3-gmp php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc php7.3- gd php7.3-xml php7.3-cli php7.3-zip php7.3-bcmath php7.3-soap libapache2-mod-php7.3

Después de instalar PHP 7.3, necesitamos configurar algunos ajustes básicos recomendados por Magento para que funcionen correctamente. Ejecute este comando para abrir el archivo de configuración de la extensión FPM usando nano

sudo nano /etc/php/7.3/fpm/php.ini

Estas son algunas de las configuraciones recomendadas para la mayoría de los sitios web de Magento.

file_uploads = En allow_url_fopen = En short_open_tag = En memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360

Guarde los cambios presionando Ctrl + O luego salga del editor nano presionando Ctrl + X. Ahora tenemos PHP y todas las extensiones necesarias, por lo que podemos pasar a obtener Magento.

Instalar Composer

Composer es un administrador de dependencias de PHP que facilita la instalación de bibliotecas y marcos de trabajo PHP. Necesitamos Composer para descargar e instalar Magento en nuestro servidor Ubuntu 20.04.

Composer requiere un paquete llamado abrir la cremallera para extraer las bibliotecas y marcos descargados, instálelo ejecutando:

sudo apt install descomprimir

Luego, instale Composer a nivel de todo el sistema ejecutando este comando:

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

El comando anterior debería instalar el administrador de dependencias Composer en el servidor Ubuntu 20.04. Verifique que Composer esté instalado correctamente ejecutando:

compositor
 PRODUCCIÓN:  ______ / ____ / ___ ____ ___ ____ ____ ________ _____ / / / __ \ / __ `__ \ / __ \ / __ \ / ___ / _ \ / ___ / / / ___ / / _ / / / / / / / / _ / / / _ / (__) __ / / \ ____ / \ ____ / _ / / _ / / _ / .___ / \ ____ / ____ / \ ___ / _ / / _ / Compositor versión 1.10.8 2020-06- 24 21:23:30 Uso: comando [opciones] [argumentos] 

Descargue e instale Magento

Ahora podemos continuar con la descarga e instalación de Magento, ya que hemos instalado y configurado todos los paquetes necesarios requeridos por Magento.

Crear una cuenta de Magento

Para descargar Magento en su servidor Ubuntu 20.04, necesitará una clave de acceso Magento 2. Para obtener esta clave de acceso, necesitará una cuenta de Magento. Si no está registrado y no tiene una cuenta de Magento, diríjase a esta página y haga clic en "Registrarse".

Una vez que haya terminado de crear una cuenta de Magento, podrá crear una nueva clave de acceso para que pueda descargar Magento 2 en su máquina usando Composer. Puede ver todas sus claves de acceso de Magento en esta página. Si no hay una clave de acceso debajo de la pestaña Magento 2, haga clic en el botón "Crear una nueva clave de acceso", asígnele un nombre y luego presione "Aceptar".

Estas claves son sus credenciales utilizadas para descargar Magento 2 desde el repositorio de Magento a través de Composer. Usaremos estas claves cuando descarguemos Magento, pero antes de hacerlo, configuraremos la propiedad y los permisos del directorio.

Configuración de permisos y propiedad previa a la instalación

Los permisos de archivo pueden hacer o romper la seguridad de cualquier sitio web, por lo que es necesario establecer correctamente la propiedad y el permiso de la raíz del documento del servidor Apache.

El propietario predeterminado del / var / www / directorio es el usuario raíz, pero necesitamos acceder y modificar los archivos en este directorio. Además, el servidor web también necesita acceso a la raíz del documento para escribir y modificar el contenido del sitio de Magento.

Entonces, para resolver este problema, agregaremos el usuario actual al www-datos grupo, para hacerlo ejecute:

sudo usermod -a -G www-data $ USER

El -a-GRAMO las opciones son importantes ya que agregan www-datos como grupo secundario de la cuenta de usuario, lo que conserva el grupo principal del usuario. Después de agregar el usuario al grupo de servidores web, cambie el propietario de / var / www / y sus subdirectorios usando este comando:

sudo chown -R $ USUARIO: www-data / var / www /

Ahora que hemos configurado los permisos de preinstalación para Magento, podemos pasar a descargarlo en la raíz del documento del servidor web.

Descargando Magento

Ahora, en este punto, debería tener una cuenta de Magento con claves de acceso y permisos de preinstalación configurados correctamente. Entonces usaremos Composer para descargar Magento en la raíz del documento Apache y luego instalarlo.

Cambiar el directorio actual a / var / www / por lo que el terminal apunta hacia él ejecutando:

cd / var / www /

Ejecute el siguiente comando para crear un nuevo proyecto usando Composer conocido como magento.

composer create-project --repository = // repo.magento.com/ magento / project-community-edition magento

Se le pedirá el nombre de usuario y la contraseña después de usar el comando anterior. Las claves de acceso que creamos deben usarse aquí. Copie la clave pública y péguela como nombre de usuario, luego copie de manera similar su clave privada y péguela en el terminal como contraseña. Entonces presione Y para guardar las credenciales para uso futuro.

 Producción:  Creando un proyecto "magento / project-community-edition" en "./magento" Advertencia de repo.magento.com: No ha proporcionado sus claves de autenticación de Magento. Para obtener instrucciones, visite //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Se requiere autenticación (repo.magento.com): Nombre de usuario: e8b6120dce14c3d982a85525264897c4 Contraseña: ¿Desea almacenar las credenciales? para repo.magento.com en /home/ath/.config/composer/auth.json? [Yn] Y

Después de que Magento y todas sus dependencias se descargan a través de Composer, necesitamos establecer la propiedad y el permiso para el nuevo directorio del proyecto magento y sus archivos también. Cambie el directorio a la raíz del proyecto Magento de la siguiente manera:

cd / var / www / magento /

Luego, cambie el propietario del grupo del directorio del proyecto de Magento y sus subdirectorios ejecutando:

buscar proveedor generado por var pub / static pub / media app / etc -type f -exec chmod g + w {} + && buscar proveedor generado por var pub / static pub / media app / etc -type d -exec chmod g + ws {} + && chmod u + x bin / magento && sudo chown -R: www-data. 

Este comando le dará al grupo de servidores web (www-datos) permisos para escribir en los directorios y archivos del proveedor, pub / static, pub / media & app / etc dentro de ellos. Además, hará que el bin / magento archivo ejecutable, para que podamos ejecutarlo e instalar Magento en nuestro sistema.

Configuración de Apache para Magento

Vamos a instalar Magento a través de GUI, ya que es más intuitivo que la instalación CLI en este caso. Por lo tanto, necesitamos crear un host virtual para el servidor web Apache antes de poder continuar con la instalación de Magento.

Abra el archivo de host virtual predeterminado de Apache con nano usando el siguiente comando:

sudo nano /etc/apache2/sites-available/000-default.conf

Cambiar la raíz del documento a / var / www / magento y agregue el siguiente fragmento de código debajo.

 AllowOverride All ServerName example.com ServerAlias ​​www.example.com

Reemplace la example.com en ServerName y ServerAlias ​​con su nombre de dominio. Los cambios en tu 000-default.conf El archivo debe tener un aspecto similar al texto resaltado que se muestra a continuación. Guarde los cambios presionando Ctrl + O y salga del editor usando Ctrl + X teclas.

 ServerAdmin webmaster @ localhost DocumentRoot / var / www / magento AllowOverride All ServerName example.com ServerAlias ​​www.example.com ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log combinado 

A continuación, necesitamos habilitar un mod de Apache llamado como mod_rewrite requerido por Magento. Proporciona una forma flexible y poderosa de manipular URL, así que habilite el mod ejecutando:

sudo a2enmod reescribir

Reinicie el servidor Apache para que los cambios que hagamos se apliquen al servidor:

sudo systemctl reiniciar apache2

Instalación de Magento

Finalmente podemos continuar con la instalación de Magento, ya que tenemos todo lo que Magento requiere para funcionar. Escriba la dirección IP de su servidor Ubuntu 20.04 en la barra de URL de su navegador preferido.

Haga clic en "Aceptar y configurar Magento" para continuar con la instalación de Magento. El primer paso del instalador web de Magento es la verificación de preparación, verificará que se cumplan todos los requisitos de Magento. Haga clic en "Iniciar verificación de preparación" y, una vez que se complete el proceso, presione "Siguiente".

El siguiente paso es configurar los detalles y agregar una base de datos para Magento. Ya hemos creado un usuario de MySQL para Magento llamado magentouser y una base de datos llamada magento en la sección anterior. Complete los detalles correspondientes en esta sección, a saber, el nombre de usuario del servidor de la base de datos, su contraseña y el nombre de la base de datos y luego presione "Siguiente" para continuar.

El tercer paso en la configuración de Magento es la configuración web. Reemplace la dirección IP de la entrada "Dirección de la tienda" por su nombre de dominio si tiene uno. No olvide poner una barra inclinada (/) después de su nombre de dominio; de lo contrario, la URL de la dirección de administrador se vuelve inaccesible.

Luego haga clic en Opciones avanzadas y marque ambas opciones HTTPS si desea utilizar una conexión segura para su sitio Magento. Mantenga el resto de las configuraciones como están y presione Siguiente.

Nota: Si marca las opciones HTTPS, deberá obtener certificados SSL para ello. Veremos cómo obtener certificados SSL en la siguiente sección de este tutorial.

En la configuración de "Personalizar tu tienda", solo tendrá que cambiar la zona horaria, la moneda predeterminada utilizada en la tienda y el idioma predeterminado de la tienda de acuerdo con sus necesidades. Mire alrededor de estas configuraciones y configúrelas si es necesario; de lo contrario, haga clic en Siguiente para continuar.

En el quinto paso, deberá crear una cuenta de administrador para su panel de administración de Magento. Ingrese un nuevo nombre de usuario para su administrador e ingrese una dirección de correo electrónico proporcionada por su proveedor de nombre de dominio. Cree una contraseña segura para la cuenta de administrador y luego presione Siguiente cuando haya terminado.

El último y último paso es hacer clic en el botón "Instalar" para confirmar la configuración y comenzar el proceso de instalación. Cuando se complete la instalación, la configuración de Magento le mostrará el resumen y algunos detalles importantes sobre su sitio de Magento.

Anote estos detalles en un lugar seguro, como un registro en papel fuera de línea o en una base de datos segura. La dirección de administrador de Magento y la clave de cifrado nunca deben compartirse públicamente. La clave de cifrado se utiliza para cifrar la base de datos de Magento para que los datos del usuario estén seguros, incluso si hay una fuga de datos.

Cree un certificado SSL para su sitio Magento

El sitio de Magento está implementado y se puede acceder a él inmediatamente después de que se complete la instalación. Pero si desea entregar tráfico web a través de HTTPS, deberá configurar un certificado SSL para su dominio.

Letsencrypt es una autoridad certificadora sin fines de lucro que proporciona certificados TLS de forma gratuita. Vamos a utilizar un paquete llamado certbot lo que ayuda a obtener el certificado y configurar el host virtual Apache automáticamente. Ejecute este comando en la terminal para instalar certbot:

sudo apt instalar certbot python3-certbot-apache

Para obtener su certificado de Letsencrypt y configurar el host virtual Apache, ejecute el siguiente comando:

sudo certbot --apache

Certbot comenzará el proceso de obtención de certificados de Letsencrypt, proporcionará su dirección de correo electrónico cuando se le solicite y luego presione la tecla Intro. A continuación, escriba A aceptar los términos de servicio de Letsencrypt. Se le preguntará si desea compartir su dirección de correo electrónico con la EFF, escriba Y o norte dependiendo de su elección.

A continuación, se le dará una lista de nombres de dominio para los que desea activar HTTPS. Escriba el número apropiado correspondiente a su nombre de dominio y presione Enter.

Después de seleccionar su nombre de dominio, se le preguntará si desea redirigir el tráfico HTTP a HTTPS, escriba 2 y presione enter. Certbot ahora configurará automáticamente el host virtual Apache para el dominio example.com.

El paquete Certbot viene con cronjob que renueva los certificados de su servidor automáticamente antes de que caduquen.Pruebe si la renovación automática está funcionando ejecutando:

sudo certbot renovar --dry-run

El resultado anterior significa que el cronjob de renovación automática está funcionando correctamente. Para confirmar que Certbot funcionó, abra su navegador y visite su dominio //example.com.

Del mismo modo, puede acceder a la página de inicio de sesión de administrador utilizando el //example.com/admin_SecretString, esta URL estaba al final de la instalación de Magento.

Ahora ha instalado con éxito Magento en el servidor Ubuntu 20.04 LTS y ahora puede comenzar a personalizar su tienda de acuerdo con sus necesidades. Para saber más sobre Magento y aprender sobre el desarrollo de tiendas, diríjase a la página de Documentos de Magento.