GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar y configurar Magento 2 en Ubuntu 18.04

Magento 2 es el sucesor de la poderosa plataforma de comercio electrónico de código abierto Magento disponible en sus distribuciones de Linux. Este tutorial le dará los pasos para instalar Magento 2 con Nginx en Ubuntu 18.04. Este software está escrito en PHP y utiliza Mysql o MariaDB para la base de datos, lo que significa que la configuración se puede realizar con LEMP.

Magento 2 es la última actualización de Magento que ofrece algunas mejoras como

  • tanto frontend como backend, uno para administración y otro para clientes de tienda
  • flexibilidad y soporte total
  • la velocidad del sitio y los complementos integrados...

El diagrama de la base de datos de Magento 2 es diferente al de Magento 1. Algunas tablas han sido renombradas o cambiadas de Magento 1 a Magento 2

  • core_website - store_website (se cambia la estructura)
  • core_store - tienda (la estructura no cambia)
  • core_translate - traducción
  • core_url_rewrite - url_rewrite
  • core_store_group - store_group (la estructura no cambia)
  • core_email_template - plantilla_de_correo electrónico
  • admin_role - Authorization_role (se cambia la estructura)
  • admin_rule -authorization_rule (se cambia la estructura)
  • pedido_plano_de_ventas - pedido_de_ventas
  • dirección_de_pedido_plano_de_ventas - dirección_de_pedido_de_ventas
  • sales_flat_order_grid - sales_order_grid
  • sales_flat_order_item - sales_order_item
  • pago_pedido_plano_ventas - pago_pedido_ventas
  • sales_flat_order_status_history - sales_order_status_history
  • cupón_agregado_pedido - regla_venta_cupón_agregado_pedido

Magento parece no ser totalmente compatible con php 7.2 que es el predeterminado instalado en Ubuntu 18.04. Hay una comunidad de magento disponible en GitHub donde intentan implementar el soporte de php-7.2 en Magento.

A continuación puede ver las diferentes versiones de php realmente compatibles con magento 2. Puede ver los demás requisitos en el sitio oficial de magento

1) Instalar los requisitos previos

En nuestro tutorial, instalaremos Magento 2 con Nginx en Ubuntu 18.04 y usaremos la base de datos MySQL. Esto significa que necesitará tener un servidor LEMP en ejecución en su servidor. Magento requiere algunas extensiones de PHP que deberá instalar

  • bc-matemáticas
  • tipoc
  • rizo
  • dom
  • gd, ImageMagick 6.3.7 (o posterior) o ambos
  • intl
  • mbcadena
  • mcrypt
  • hachís
  • openssl
  • PDO/MySQL
  • XML simple
  • jabón
  • spl
  • libxml
  • xsl
  • cremallera
  • json
  • icono

Debe tener software-properties-common paquete que ya está presente en Ubuntu 18.04 y el ondrej/php repositorio que agregaremos

# add-apt-repository ppa:ondrej/php -y

Ahora instala php 7.1 con las dependencias

# apt install php7.1-fpm php7.1-mcrypt php7.1-curl php7.1-cli php7.1-mysql php7.1-gd php7.1-xsl php7.1-json php7.1-intl php-pear php7.1-dev php7.1-common php7.1-mbstring php7.1-zip php7.1-soap php7.1-bcmath
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  autoconf automake autopoint autotools-dev binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-7 debhelper dh-autoreconf
  dh-php dh-strip-nondeterminism dpkg-dev fakeroot g++ g++-7 gcc gcc-7
...
...

Tenga en cuenta que si no instala todas estas dependencias de php, será bloqueado en un paso futuro de nuestro tutorial.

Luego edite las líneas del archivo /etc/php/7.1/fpm/php.ini para tener algo como a continuación y asegúrese de adaptar los valores a los suyos

# vim /etc/php/7.1/fpm/php.ini
file_uploads = On
upload_max_filesize = 150M
memory_limit = 256M
cgi.fix_pathinfo=0
date.timezone = Cameroon/Douala

Reiniciar php 7.1-fpm

# systemctl restart php7.1-fpm

2) Crear la base de datos de Magento 2

Ahora debemos conectarnos a la base de datos MySQL para crear la base de datos para Magento

# mysql -u root -p
Enter password:

Luego cree la base de datos de magento, el usuario y otorgue los privilegios

mysql> CREATE DATABASE magentodb;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER 'magento'@'localhost' IDENTIFIED BY 'magentodb-password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON magentodb.* TO 'magento'@'localhost' IDENTIFIED BY 'magentodb-password';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

3) Descarga y configura Magento 2

Este tutorial mostrará la instalación de Magento 2.2.5 que es en realidad la última versión de lanzamiento disponible. Lo descargaremos directamente desde el repositorio oficial de GitHub de Magento

# wget https://github.com/magento/magento2/archive/2.2.5.tar.gz
--2018-07-13 08:24:37-- https://github.com/magento/magento2/archive/2.2.5.tar.gz
Resolving github.com (github.com)... 192.30.253.112, 192.30.253.113
Connecting to github.com (github.com)|192.30.253.112|:443... connected.
HTTP request sent, awaiting response... 302 Found
...
...

Ahora descomprímelo

# tar xvf 2.2.5.tar.gz

Luego muévalo a la carpeta raíz de su servidor nginx

# mv magento2-2.2.5/ /var/www/html/magento

Asegúrese de actualizar el permiso con el comando chmod y la propiedad con el comando chown como se muestra a continuación:

# chown -R www-data:www-data /var/www/html/ && chmod -R 755 /var/www/html/

También puede necesitar composer si planea desarrollar extensiones de Magento. También lo necesitará si desea contribuir al código base de Magento 2.

# apt install composer -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
jsonlint php-cli-prompt php-composer-ca-bundle 
....
....

Entonces comprueba

# composer -V
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Composer 1.6.3 2018-01-31 16:28:17

Ahora podemos instalar los componentes de magento con composer. Esto solo se puede hacer si ha instalado todos los requisitos de php

# cd /var/www/html/magento/ && composer install -v
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Dependency resolution completed in 0.001 seconds
Analyzed 177 packages to resolve dependencies
Analyzed 482 rules to resolve dependencies
Package operations: 117 installs, 0 updates, 0 removals
Installs: magento/magento-composer-installer:0.1.13, braintree/braintree_php:3.28.0, colinmollenhour/cache-backend-file:1.4, colinmollenhour/cache-bac
kend-redis:1.10.4, colinmollenhour/credis:1.8.2
...
...

4) Configurar nginx para magento

Ahora configuraremos Nginx para Magento. Verifique la ubicación del socket PHP al que se conectará Nginx. Así que lista el contenido del directorio /var/run/php/

# ls /var/run/php/
php7.1-fpm.pid php7.1-fpm.sock

Ahora edite el archivo de configuración

# vim /etc/nginx/sites-available/magento

upstream fastcgi_backend {
        server unix:/var/run/php/php7.1-fpm.sock;
}       
        
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        server_name www.mywebstore.com;

        set $MAGE_ROOT /var/www/html/magento;
        set $MAGE_MODE developer;
        include /var/www/html/magento/nginx.conf.sample; 
}

Puede guardar la configuración, salir y activar el host virtual creando el enlace simbólico como se muestra a continuación

# ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/

Para evitar algunos errores sobre el uso del host virtual predeterminado, asegúrese de editar el bloque del servidor de la configuración predeterminada de nginx /etc/nginx/sites-available/default para eliminar el default_server mencionar a continuación

#vim /etc/nginx/sites-available/default

server {
        listen 80;
        listen [::]:80;
        # your others line below
}

Si no lo hace, tendrá un error similar al siguiente

[emerg] 2369#2369: a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/magento:22

mostrando que los dos hosts virtuales se consideran como el host virtual predeterminado para usar. Verifique la configuración

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ahora reinicie el servidor nginx

# systemctl restart nginx

4) Instalación web completa del asistente de magento

Ahora puede iniciar su navegador web para continuar con la instalación de Magento http://www.yourwebstore.com y luego aceptar

Verifique el entorno php

Si tu entorno es correcto, lo tendrás todo en verde

Ahora configure la base de datos ya creada con la información utilizada anteriormente con la línea de comandos mysql

Configurar el acceso web. Asegúrese de mantener la dirección de administrador de Magento. Puedes echar un vistazo a las opciones avanzadas

Ahora elija la moneda, el idioma y la zona horaria que utilizará su tienda

Puede ver la opción avanzada que muestra los módulos que se instalarán

Configurar la cuenta de administrador

Ahora la instalación puede comenzar

Ahora puede ver un resumen de la configuración. No se olvide de las menciones importantes en esta página por razones de seguridad

Ahora verá la página de inicio de sesión. Ingrese sus parámetros de administrador creados antes

Puede ver la página de inicio del panel de control de su tienda web de Magento. Siéntase libre de explorar cada función proporcionada por magento2

Puede abrir la página de inicio de su tienda web. Es la página para el cliente

Puede enfrentar algunos errores durante el proceso, cubriremos los posibles errores que pueden ocurrir.

5) Corregir algunos posibles errores

Durante el proceso, puede enfrentar algunos problemas que pueden detener la instalación de su Magento 2. Por lo tanto, hemos enumerado algunos errores con las correcciones que podrían aplicarse

php FastCGI denegado

Puede tener un permiso denegado debido al archivo de configuración nginx predeterminado de Magento 2 que no puede funcionar. Al revisar su registro de nginx, puede ver el error a continuación

Para resolverlo, edite el /var/www/html/magento/nginx.conf.sample /configurar bloque de ubicación agregando una línea específica como se muestra a continuación

 # vim /var/www/html/magento/nginx.conf.sample

location ~* ^/setup($|/) {
    root $MAGE_ROOT;
    location ~ ^/setup/index.php {

        ### The only line to add is the one below:
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        ###################
        ## Don't change anything else in the file

Luego reinicie nginx. Puede seguir un hilo en Magento Github sobre ese problema si no puede ejecutar la configuración web en nginx

Uno o más indexadores no son válidos. Asegúrese de que su trabajo cron de Magento se esté ejecutando

Al acceder al panel de administración por primera vez, puede recibir un mensaje sobre los índices no válidos y el trabajo cron de Magento que no funciona correctamente como se muestra a continuación

Aquí debe volver a indexar toda la indexación disponible en Magento 2. Para eso, vaya al directorio raíz del proyecto

# cd /var/www/html/magento

y ejecute la CLI de magento

# php bin/magento indexer:reindex
Design Config Grid index has been rebuilt successfully in 00:00:00
Customer Grid index has been rebuilt successfully in 00:00:00
Category Products index has been rebuilt successfully in 00:00:00
Product Categories index has been rebuilt successfully in 00:00:00
Catalog Rule Product index has been rebuilt successfully in 00:00:00
Product EAV index has been rebuilt successfully in 00:00:00
Stock index has been rebuilt successfully in 00:00:00
Product Price index has been rebuilt successfully in 00:00:00
Catalog Product Rule index has been rebuilt successfully in 00:00:00
Catalog Search index has been rebuilt successfully in 00:00:00

Ahora, para configurar y ejecutar cron para Magento 2, use el comando

# php bin/magento cron:run
Ran jobs by schedule.

Los tipos de caché están invalidados

Puede enfrentar los tipos de caché que están invalidados. El mensaje aparecerá en la parte superior

Uno o más de los tipos de caché están invalidados:Caché de página. Vaya a Administración de caché y actualice los tipos de caché.
Los motivos de la invalidación de la caché de bloques pueden deberse a actualizaciones de productos, cambios en las reglas de precios del catálogo y también extensiones de terceros. Algunos cronjobs en ejecución también pueden invalidar las cachés de bloques. La resolución se indica en el mensaje, vaya a sistema> administración de caché

Verá todos los tipos de caché. Ahora haga clic en M al ras caché de agente

Lea también:

  • Cómo instalar LAMP Stack en Ubuntu 18.04
  • Cómo instalar PhpMyAdmin con LAMP en Ubuntu 18.04

Tienes los diferentes pasos para tener un Magento 2 funcional en Ubuntu 18.04. El soporte de php-7.2 parece no estar listo pero una comunidad de magento está trabajando en este propósito. Puede forzar el intento de adaptar Magento 2 con php-7.2 pero, cuando el soporte oficial esté listo, es posible que su parche ya no funcione.


Ubuntu
  1. Cómo instalar y configurar Redis en Ubuntu 18.04

  2. Cómo instalar y configurar Redmine en Ubuntu 18.04

  3. Cómo instalar Magento 2 en Ubuntu 18.04

  4. Cómo instalar y configurar Samba en Ubuntu 18.04

  5. Cómo instalar y configurar Redis en Ubuntu 20.04

Cómo instalar y configurar Magento 2.3.0 en Ubuntu 18.04

Cómo instalar y configurar OpenVAS 9 en Ubuntu

Cómo instalar y configurar Redis en Ubuntu 20.04

Cómo instalar y configurar Neo4j en Ubuntu 20.04

Cómo instalar y configurar Ubuntu SDK en Ubuntu 16.04 y 14.04

Cómo instalar y configurar PostgreSQL en Ubuntu