GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Magento 2 con Nginx y Letsencrypt en Ubuntu 18.04

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. Varien inició el desarrollo de Magento en 2008.

En este tutorial, le mostraré cómo instalar Magento 2 con Nginx, PHP 7.1 FPM y MySQL como base de datos. Usaré ubuntu 18.04 (Bionic Beaver) como sistema operativo de servidor. Si aún no tiene una configuración de servidor mínima, consulte este tutorial para obtener una configuración básica adecuada.

Requisitos

  • Ubuntu 18.04
  • 2 GB o más de memoria RAM
  • Privilegios de raíz

Lo que haremos

  1. Instalar Nginx en Ubuntu 18.04
  2. Instalar y configurar PHP-FPM 7.1
  3. Instalar y configurar el servidor MySQL
  4. Instalar y configurar Magento 2
    1. Instalar PHP Composer
    2. Descargar Magento 2
    3. Instalar los componentes de Magento
    4. Generar SSL Letsencrypt
    5. Configurar el host virtual de Nginx para Magento
    6. Posterior a la instalación de Magento
  5. Pruebas

Paso 1:instalar Nginx en Ubuntu 18.04 LTS

En este tutorial, usaremos el servidor web Nginx para nuestra instalación de Magento.

Inicie sesión en el servidor, actualice el repositorio y actualice todos los paquetes.

sudo apt update
sudo apt upgrade

Ahora instale el servidor web Nginx usando el comando apt a continuación.

sudo apt install nginx -y

Una vez completada la instalación, inicie el servicio Nginx y permita que se inicie cada vez que se inicia el sistema.

systemctl start nginx
systemctl enable nginx

Se ha instalado el servidor web Nginx, verifíquelo con el comando netstat y asegúrese de que el puerto HTTP 80 esté en el estado 'ESCUCHAR'. Otra forma es usando el comando curl como se muestra a continuación.

netstat -plntu
curl -I localhost

Paso 2:instalar y configurar PHP-FPM 7.1

Después de la instalación del servidor web Nginx, instalaremos PHP 7.1 en el servidor ya que Magento aún no es compatible con PHP 7.2. Instalaremos PHP-FPM con todas las extensiones que necesita Magento 2.

Lista de extensiones de PHP necesarias para la instalación de Magento 2:

  • 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

Para esta guía, instalaremos paquetes PHP-FPM desde el repositorio de PPA. Usaremos el repositorio 'ondrej/php'.

Instale el paquete 'software-properties-common' y agregue el repositorio 'ondrej/php' usando los comandos a continuación.

sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y

Ahora instale PHP-FPM 7.1 con todas las extensiones necesarias.

sudo 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 -y

Una vez completada la instalación, verifique la versión de PHP y las extensiones instaladas usando los comandos de PHP.

php -v
php -me

A continuación, configuraremos el archivo php.ini para PHP-FPM y PHP-CLI.

Edite los archivos php.ini usando vim.

vim /etc/php/7.1/fpm/php.ini
vim /etc/php/7.1/cli/php.ini

Cambie el valor de esas líneas como se muestra a continuación.

memory_limit = 512M
max_execution_time = 180
zlib.output_compression = On

Guardar y salir.

Ahora reinicie el servicio PHP-fpm y permita que se inicie cada vez que se inicie el sistema.

systemctl restart php7.1-fpm
systemctl enable php7.1-fpm

La instalación y configuración de PHP-FPM 7.1 se completó, verifique el servicio usando el comando netstat.

netstat -pl | grep php

Y obtendrá el archivo de calcetines PHP-fpm como se muestra a continuación.

Paso 3:instalar y configurar el servidor MySQL

El software Magento requiere MySQL 5.6.x, y Magento 2.1.2 o posterior requiere MySQL 5.7.x. En este tutorial, instalaremos el último servidor MySQL 5.8 en el sistema Ubuntu 18.04.

Instale MySQL 5.8 con el siguiente comando apt.

sudo apt install mysql-server mysql-client -y

Una vez completada la instalación, inicie el servicio MySQL y habilítelo para que se inicie cada vez que se inicie el sistema.

systemctl start mysql
systemctl enable mysql

Ahora configuraremos la contraseña raíz de MySQL usando el comando 'mysql_secure_installation'.

mysql_secure_installation

En esta versión de MySQL 5.8, hay una mejora de seguridad para la política de contraseñas de MySQL. Debe elegir la política de contraseña:0 para la política BAJA, 1 para la política MEDIA y 2 para una política de contraseña FUERTE.

Para esta guía, usaremos la política de contraseñas 'MEDIA' y se recomienda usar la política de contraseñas 'FUERTE' en el servidor de producción.

Elija el número '1' y presione Enter, luego escriba su nueva contraseña 'root' de MySQL.

 Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

Se ha configurado la contraseña raíz de MySQL.

A continuación, crearemos una nueva base de datos para nuestra instalación de Magento. Crearemos una nueva base de datos llamada  'magentodb' con el usuario 'magentouser' y la contraseña es '[email protected]#'.

Inicie sesión en el shell de MySQL con el usuario root.

mysql -u root -p

Ahora ejecute las consultas de MySQL a continuación para crear la base de datos y el usuario.

create database magentodb;
create user [email protected] identified by '[email protected]#';
grant all privileges on magentodb.* to [email protected] identified by '[email protected]#';
flush privileges;

Se completó la instalación y configuración del servidor MySQL para la instalación de Magento.

Paso 4:instalar y configurar Magento 2

En este paso, instalaremos la última versión de Magento 2.2.4 desde el repositorio de Github. Instalaremos el compositor PHP para instalar los componentes de Magento, descargaremos Magento desde el repositorio de Github, configuraremos el host virtual Nginx para Magento e instalaremos Magento mediante la instalación posterior basada en la web.

- Instalar PHP Composer

Instale PHP Composer en ubuntu 18.04 usando el comando apt a continuación.

sudo apt install composer -y

Una vez completada la instalación, verifique la versión del compositor instalada en el sistema.

composer -V

Se ha instalado la última versión de PHP Composer.

- Descargar Magento 2

Vaya al directorio '/var/www' y descargue el código fuente del archivo Magento de Github usando el comando wget.

cd /var/www/
wget https://github.com/magento/magento2/archive/2.2.4.tar.gz

Ahora extraiga el archivo de almacenamiento de Magento y cambie el nombre del directorio a 'magento2'.

tar -xf 2.2.4.tar.gz
mv magento2-2.2.4/ magento2/

El código fuente de Magento se ha descargado y el directorio '/var/www/magento2' será la raíz web del sitio de Magento.

- Instalar los componentes de Magento

Instale los componentes de Magento usando PHP composer. Vaya al directorio 'magento2' e instale todos los componentes de PHP que necesita Magento usando el comando 'compositor'.

cd /var/www/magento2
composer install -v

Una vez completada la instalación, obtendrá el resultado que se muestra a continuación.

- Genera SSL Letsencrypt

Protegeremos nuestra instalación de Magento usando SSL de Letsencrypt. Instale Letsencrypt usando el comando apt a continuación.

sudo apt install letsencrypt -y

Una vez completada la instalación, detenga el servicio nginx.

systemctl stop nginx

Ahora genere los certificados SSL para el nombre de dominio usando el comando certbot como se muestra a continuación.

certbot certonly --standalone -d magento.hakase-labs.pw

Escriba su dirección de correo electrónico, acepte los TOS de Letsencrypt, luego escriba 'N' para compartir correo electrónico.

Cuando esté completo, obtendrá el siguiente resultado.

Los archivos del certificado Letsencrypt SSL se generaron en el directorio '/etc/letsencrypt/live'.

- Configurar el host virtual de Nginx

Vaya al directorio '/etc/nginx/sites-available' y cree un nuevo archivo de host virtual 'magento' usando vim.

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

Pegue la siguiente configuración allí.

upstream fastcgi_backend {
        server  unix:/run/php/php7.1-fpm.sock;
}

server {
    listen 80;
    listen [::]:80;
    server_name magento.hakase-labs.pw;
    return 301 https://$server_name$request_uri;
}

server {

        listen 443 ssl;
        server_name magento.hakase-labs.pw;

        ssl on;
        ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.pw/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.pw/privkey.pem;

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

Guarde la configuración y salga.

Ahora active el host virtual creando el enlace simbólico para el archivo de host virtual de Magento al directorio 'habilitado para sitios'.

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

Pruebe el archivo de configuración de nginx y asegúrese de que no haya ningún error.

nginx -t

Ahora reinicie el servicio PHP-FPM y Nginx.

systemctl restart php7.1-fpm
systemctl restart nginx

Y cambie el propietario del directorio raíz web de Magento al usuario y grupo 'www-data'.

chown -R www-data:www-data /var/www/magento2/

Se ha agregado el host virtual nginx para Magento.

- Posinstalación de Magento

Abra el navegador web y escriba la URL de Magento. El mío es:

https://magento.hakase-labs.pw/

Para los 'Términos y Acuerdo', haga clic en el botón 'Aceptar y configurar Magento'.

Ahora verifique toda la configuración del sistema y del servidor para Magento 'Readlines Check', y asegúrese de que 'pasa' todas las verificaciones del sistema y la configuración como se muestra a continuación.

Ahora haga clic en el botón 'Siguiente'.

Configuración de la base de datos para Magento:escriba toda la información de nuestra base de datos y haga clic en 'Siguiente'.

Para la configuración web, cambie la 'dirección de la tienda' a HTTPS, 'Dirección de administrador de Magento' con la URL de su ruta de administrador y desmarque 'Reescrituras de Apache', porque estamos usando el servidor web Nginx.

Haga clic en el botón 'Siguiente' nuevamente.

Deje 'Personalizar su tienda' como predeterminado y haga clic en 'Siguiente'.

Escriba su usuario y contraseña de administrador, luego haga clic en 'Siguiente'.

Y haga clic en el botón 'Instalar ahora' para instalar Magento.

Y cuando se complete la instalación, obtendrá el resultado de "éxito" como se muestra a continuación.

Ahora necesitamos deshabilitar el acceso de escritura para el directorio '/var/www/magento2/app/etc'. Ejecute el siguiente comando.

sudo chmod -w /var/www/magento2/app/etc

Magento se ha instalado en el servidor Ubuntu 18.04 Bionic Beaver.

Paso 5 - Prueba

Escriba la dirección de inicio de la URL de Magento y asegúrese de obtener la página de inicio predeterminada de Magento. El mío es:https://magento.hakase-labs.pw/

Ahora inicie sesión en el panel de administración de Magento visitando la URL definida durante la instalación 'admin_hakase'. El mío es:

https://magento.hakase-labs.pw/admin_hakase/

Escriba el nombre de usuario y la contraseña, luego haga clic en el botón 'Iniciar sesión'.

Y obtendrá el panel de administración de Magento como se muestra a continuación.

Magento 2 se instaló en Ubuntu 18.04 con servidor web Nginx, base de datos MySQL y PHP-FPM 7.1.

Adicional:

Si recibe un error sobre un cronjob indexador de Magento que falta, entonces puede resolverlo generando el script crontab usando el siguiente comando:

cd /var/www/magento2
sudo -u www-data php bin/magento cron:install --force

Ahora verifique la secuencia de comandos list crontab para el usuario 'www-data'.

crontab -u www-data -l


Ubuntu
  1. Cómo instalar y configurar ownCloud con Apache en Ubuntu 18.04

  2. Cómo instalar Magento 2 en Ubuntu 18.04

  3. Cómo instalar Nextcloud con Nginx en Ubuntu 18.04 LTS

  4. Cómo instalar Magento 2 con Nginx y Lets Encrypt SSL en Ubuntu 20.04 LTS

  5. Cómo instalar Nginx con PHP5 y MySQL en Ubuntu 11.10

Cómo instalar Django con PostgreSQL y Nginx en Ubuntu 16.04

Cómo instalar Bolt CMS con Nginx en Ubuntu 20.04

Cómo instalar múltiples WordPress con Nginx en Ubuntu 18.04

Cómo instalar y configurar Magento 2 en Ubuntu 18.04

Cómo instalar y configurar Magento 2.3.0 en Ubuntu 18.04

Cómo instalar LetsEncrypt con Nginx en Ubuntu 15.04