GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Magento 2 en Ubuntu 18.04

Magento es la plataforma líder de comercio electrónico de clase empresarial basada en tecnología de código abierto que combina funciones potentes con flexibilidad y una interfaz fácil de usar.

Con funciones como Experiencias de compra atractivas, Arquitectura modular flexible y Escalabilidad y rendimiento de nivel empresarial, Magento es una plataforma elegida por la mayoría de los comerciantes en línea.

En este tutorial, le mostraremos cómo instalar Magento 2.3 en una máquina con Ubuntu 18.04. Usaremos Nginx como servidor web, el último PHP 7.2 y MySQL/MariaDB como servidor de base de datos.

Requisitos previos #

Asegúrese de cumplir con los siguientes requisitos previos antes de continuar con este tutorial:

  • Tenga un nombre de dominio que apunte a la IP de su servidor público. Usaremos example.com .
  • Nginx se instala en su servidor Ubuntu siguiendo estas instrucciones.
  • Un certificado SSL instalado para su dominio para encriptar la información del usuario. Puede instalar un certificado SSL gratuito de Let's Encrypt siguiendo estas instrucciones.

Para poder acceder al repositorio de códigos de Magento 2, deberá generar claves de autenticación. Si no tiene una cuenta de Magento Marketplace, puede crear una aquí. Una vez que haya creado la cuenta, consulte estas instrucciones sobre cómo generar un nuevo conjunto de claves de autenticación.

Actualice los paquetes del sistema a las últimas versiones e instale la utilidad de descompresión:

sudo apt update && sudo apt upgradesudo apt install unzip

Creando base de datos MySQL #

Si tiene instalado MySQL o MariaDB en su servidor, puede omitir este paso; si no, puede instalar el paquete del servidor MySQL 5.7 desde los repositorios predeterminados de Ubuntu escribiendo:

sudo apt install mysql-server mysql-client
Para instalaciones nuevas de MySQL, se recomienda ejecutar mysql_secure_installation comando para mejorar la seguridad de su servidor MySQL.

Inicie sesión en el shell de MySQL usando el siguiente comando:

sudo mysql

Desde el shell de MySQL, ejecute la siguiente instrucción SQL para crear una nueva base de datos llamada magento :

CREATE DATABASE magento;

A continuación, cree una cuenta de usuario de MySQL llamada magento y otorgue los permisos necesarios al usuario ejecutando el siguiente comando:

GRANT ALL ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Asegúrate de cambiar change-with-strong-password con una contraseña segura.

Una vez hecho esto, salga de la consola de MySQL escribiendo:

EXIT;

Creando número de usuario del sistema

Cree un nuevo usuario y grupo, que será el propietario del sistema de archivos de Magento, por simplicidad llamaremos al usuario magento :

sudo useradd -m -U -r -d /opt/magento magento

Agrega los www-data usuario al magento grupo y cambie el /opt/magento permisos de directorio para que Nginx pueda acceder a la instalación de Magento:

sudo usermod -a -G magento www-datasudo chmod 750 /opt/magento

Instalación y configuración de PHP #

PHP 7.2, que es la versión predeterminada de PHP en Ubuntu 18.04, es totalmente compatible y recomendado para Magento 2.3. Dado que usaremos Nginx como servidor web, también instalaremos el paquete PHP-FPM.

Ejecute el siguiente comando para instalar PHP y todos los módulos PHP necesarios:

sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap

El servicio PHP-FPM se iniciará automáticamente después de que se complete el proceso de instalación, puede verificarlo imprimiendo el estado del servicio:

sudo systemctl status php7.2-fpm

El resultado debe indicar que el servicio fpm está activo y ejecutándose.

● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-12-12 15:47:16 UTC; 5s ago
     Docs: man:php-fpm7.2(8)
 Main PID: 16814 (php-fpm7.2)
   Status: "Ready to handle connections"
    Tasks: 3 (limit: 505)
   CGroup: /system.slice/php7.2-fpm.service

Configure las opciones PHP requeridas y recomendadas editando el php.ini archivo con sed ::

sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.inisudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.inisudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.inisudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.inisudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.inisudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini

A continuación, debemos crear un grupo de FPM para el magento usuario.

Abre tu editor de texto y crea el siguiente archivo:

sudo nano /etc/php/7.2/fpm/pool.d/magento.conf
/etc/php/7.2/fpm/pool.d/magento.conf
[magento]
user = magento
group = www-data
listen.owner = magento
listen.group = www-data
listen = /var/run/php/php7.2-fpm-magento.sock
pm = ondemand
pm.max_children =  50
pm.process_idle_timeout = 10s
pm.max_requests = 500
chdir = /

Reinicie el servicio PHP-FPM para que los cambios surtan efecto:

systemctl restart php7.2-fpm

Verifique si el socket de PHP se creó correctamente ejecutando el siguiente comando ls:

ls -al /var/run/php/php7.2-fpm-magento.sock

La salida debería verse así:

srw-rw---- 1 magento www-data 0 Dec 12 16:07 /var/run/php/php7.2-fpm-magento.sock=

Instalando Composer #

Composer es un administrador de dependencias para PHP y lo usaremos para descargar el núcleo de Magento e instalar todos los componentes de Magento necesarios.

Para instalar composerglobalmente, descargue el instalador de Composer con curly mueva el archivo a /usr/local/bin directorio:

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

Verifique la instalación imprimiendo la versión del compositor:

composer --version

La salida debería verse así:

Composer version 1.8.0 2018-12-03 10:31:16

Instalando Magento #

Hay varias formas de instalar Magento 2. Evite instalar Magento desde el repositorio de Github porque esa versión está diseñada para desarrollo y no para instalaciones de producción.

Al momento de escribir este artículo, la última versión estable de Magento es la versión 2.3.0 . En este tutorial, instalaremos Magento desde sus repositorios usando composer.

Cambiar al usuario magento escribiendo:

sudo su - magento

Inicie la instalación descargando los archivos de magento en el directorio /opt/magento/public_html:

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /opt/magento/public_html

Se le pedirá que ingrese las claves de acceso, copie las claves de su cuenta del mercado de Magento y guárdelas en auth.json archivo, por lo que más adelante, al actualizar su instalación, no tendrá que volver a agregar las mismas claves.

    Authentication required (repo.magento.com):
      Username: e758ec1745d190320ca246e4e832e12c
      Password: 
Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn] Y

El comando anterior obtendrá todos los paquetes PHP requeridos. El proceso puede tardar unos minutos y, si tiene éxito, el final de la salida debería tener el siguiente aspecto:

Writing lock file
Generating autoload files

Una vez creado el proyecto podemos iniciar la instalación de Magento. Podemos instalar Magento desde la línea de comandos o usando el Asistente de configuración web. En este tutorial, instalaremos Magento usando la línea de comando.

Usaremos las siguientes opciones para instalar la tienda Magento:

  • Las URL seguras base y base están configuradas en https://example.com , cámbielo con su dominio.
  • Administrador de Magento:
    • John Doe como nombre y apellido.
    • [email protected] como correo electrónico.
    • john como nombre de usuario y j0hnP4ssvv0rD como contraseña.
  • Nombre de la base de datos magento , nombre de usuario magento , contraseña change-with-strong-password y el servidor de la base de datos está en el mismo host que el servidor web.
  • en_US , inglés estadounidense como idioma predeterminado.
  • USD dólares como moneda predeterminada.
  • America/Chicago como zona horaria.
Puede encontrar todas las opciones de instalación aquí.

Cambie a Magento ~/public_html directorio:

cd ~/public_html

Ejecute el siguiente comando para iniciar la instalación:

php bin/magento setup:install --base-url=https://example.com/ \
        --base-url-secure=https://example.com/ \
        --admin-firstname="John" \
        --admin-lastname="Doe" \
        --admin-email="[email protected]" \
        --admin-user="john" \
        --admin-password="j0hnP4ssvv0rD" \
        --db-name="magento" \
        --db-host="localhost" \
        --db-user="magento" \
        --currency=USD \
        --timezone=America/Chicago \
        --use-rewrites=1 \
        --db-password="change-with-strong-password"
No olvides cambiar la contraseña (j0hnP4ssvv0rD ) a algo más seguro.

El proceso puede tardar unos minutos y, una vez completado, se le presentará un mensaje que contiene el URI en el panel de administración de Magento.

[Progress: 773 / 773]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_13nv5k
Nothing to import.

Creando Magento crontab #

Magento usa trabajos cron para programar tareas como reindexación, notificaciones, mapas del sitio, correos electrónicos y más.

Para crear el crontab de Magento, ejecute el siguiente comando como magento usuario:

php ~/public_html/bin/magento cron:install
Crontab has been generated and saved

Verifique que crontab esté instalado escribiendo:

crontab -l
#~ MAGENTO START adc062915d7b30804a2b340095af072d
* * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /opt/magento/public_html/var/log/magento.cron.log
* * * * * /usr/bin/php7.2 /opt/magento/public_html/update/cron.php >> /opt/magento/public_html/var/log/update.cron.log
* * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento setup:cron:run >> /opt/magento/public_html/var/log/setup.cron.log
#~ MAGENTO END adc062915d7b30804a2b340095af072d

Configuración de Nginx #

A estas alturas, ya debería tener Nginx con certificado SSL instalado en su servidor Ubuntu, si no, verifique los requisitos previos para este tutorial.

Vamos a incluir la configuración predeterminada de Nginx enviada con Magento.

Cambie a su usuario sudo, abra su editor de texto y cree el siguiente archivo:

sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
upstream fastcgi_backend {
  server   unix:/var/run/php/php7.2-fpm-magento.sock;
}

server {
    listen 80;
    server_name example.com www.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    set $MAGE_ROOT /opt/magento/public_html;
    set $MAGE_MODE developer; # or production

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log;

    include /opt/magento/public_html/nginx.conf.sample;
}
No olvide reemplazar example.com con su dominio Magento y establezca la ruta correcta a los archivos del certificado SSL. Los fragmentos utilizados en esta configuración se crean en esta guía.

Antes de reiniciar el servicio Nginx, haga una prueba para asegurarse de que no haya errores de sintaxis:

sudo nginx -t

Si no hay errores, la salida debería verse así:

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

Finalmente, reinicie el servicio Nginx escribiendo:

sudo systemctl restart nginx

Verificando la Instalación #

Abra su navegador, escriba su dominio y suponiendo que la instalación sea exitosa, aparecerá una pantalla similar a la siguiente:

Ahora puede ir al URI de administrador de Magento, iniciar sesión como usuario administrador y comenzar a personalizar su nueva instalación de Magento.


Ubuntu
  1. Cómo instalar PHP 7.4/7.3/7.2 en Ubuntu 18.04/Ubuntu 16.04

  2. Cómo instalar Magento2 en Ubuntu 16.04

  3. Cómo instalar PHP 7 en Ubuntu 14.04

  4. Cómo instalar PHP 7 en Ubuntu 15.04

  5. Cómo instalar Magento en Ubuntu 18.04

Cómo instalar Magento en Ubuntu 15.10

Cómo instalar Magento en Ubuntu 16.04 LTS

Cómo instalar Magento en Ubuntu 18.04 LTS

Cómo instalar OwnCloud en Ubuntu 18.04

Cómo instalar Joomla en Ubuntu 18.04

Cómo instalar Magento en Ubuntu 20.04