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.