GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo configurar Magento 2 con Varnish y Apache en Ubuntu 16.04

Magento es un sistema de gestión de contenido gratuito y de código abierto integrado en PHP, Zend framework y base de datos MySQL. Es una aplicación web de comercio electrónico muy popular que se ejecuta sobre muchas aplicaciones de código abierto como Apache, MySQL y muchas más. Magento viene con muchos módulos integrados que se utilizan para agregar más funciones.

Varnish Cache es un potente acelerador de aplicaciones web de código abierto, también conocido como proxy inverso HTTP de almacenamiento en caché. Se utiliza para acelerar su sitio web almacenando en caché una copia de una página web la primera vez que un usuario la visita. Magento y Varnish es una combinación conocida para aumentar significativamente el rendimiento del sitio. Varnish está integrado por defecto en Magento 2. Solo necesitarás hacer algunos cambios de configuración para que funcione.

En este tutorial, aprenderemos a instalar Magento 2 con Varnish como caché de página completa en el servidor Ubuntu 16.04.

Requisitos

  • Un servidor con Ubuntu 16.04.
  • Apache, PHP y MariaDB.
  • Un usuario no root con configuración de privilegios sudo en su servidor.

1 Primeros pasos

Antes de comenzar, se recomienda actualizar su sistema con el último paquete ejecutando el siguiente comando:

sudo apt-get update -y
sudo apt-get upgrade -y

Una vez que su sistema esté actualizado, reinícielo e inicie sesión con el usuario sudo.

2 Instalar servidor LAMP

Magento no funcionará sin instalar la pila LAMP (Apache, PHP, MariaDB). Primero, instale el servidor web Apache y barniz ejecutando el siguiente comando:

sudo apt-get install apache2 varnish -y

Después de instalar Apache, inicie el servicio Apache y habilítelo para que se inicie en el momento del arranque ejecutando el siguiente comando:

sudo systemctl start apache2
sudo systemctl enable apache2

Magento está escrito en lenguaje PHP, por lo que también debe instalar PHP con todas las bibliotecas en su sistema. Puede instalarlos todos ejecutando el siguiente comando:

sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-mbstring php7.0-mysql php7.0-mcrypt php7.0-xsl php-imagick php7.0-gd php7.0-cli php-pear php7.0-intl php7.0-curl php7.0-zip php7.0-gd php7.0-soap php7.0-xml -y

Después de instalar PHP junto con todas las bibliotecas requeridas, deberá cambiar algunas configuraciones predeterminadas de PHP. Puede hacer esto editando el archivo php.ini:

sudo nano /etc/php/7.0/cli/php.ini

Cambie las siguientes líneas:

memory_limit = 512
upload_max_filesize = 128M
zlib.output_compression = on
max_execution_time = 15000

Guarde y cierre el archivo cuando haya terminado.

3 Instalar y configurar MariaDB

Magento utiliza MariaDB como base de datos. Por lo tanto, deberá instalarlo en su servidor. Puede instalarlo simplemente ejecutando el siguiente comando:

sudo apt-get install mariadb-server -y

Después de instalar MariaDB, inicie el servicio MariaDB y habilítelo para que se inicie en el momento del arranque ejecutando el siguiente comando:

sudo systemctl start mysql
sudo systemctl enable mysql

De forma predeterminada, MariaDB no está protegida, por lo que deberá protegerla. Puede asegurarlo ejecutando el siguiente comando:

sudo mysql_secure_installation

Responda todas las preguntas como se muestra a continuación:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] n

 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

A continuación, inicie sesión en el shell de MariaDB con el siguiente comando:

mysql -u root -p

Ingrese su contraseña raíz cuando se le solicite, luego cree una base de datos para Magento con el siguiente comando:

MariaDB [(none)]>CREATE DATABASE magento_db;

Después de crear la base de datos para Magento, cree un nombre de usuario y una contraseña con el siguiente comando:

MariaDB [(none)]>CREATE USER 'magento'@'localhost' IDENTIFIED BY 'password';

A continuación, otorgue privilegios a la base de datos de Magento con el siguiente comando:

MariaDB [(none)]>GRANT ALL PRIVILEGES ON magento_db.* TO 'magento'@'localhost';

A continuación, ejecute el comando FLUSH PRIVILEGES y vuelva a cargar los privilegios:

MariaDB [(none)]>FLUSH PRIVILEGES;

Finalmente, salga de la consola de MariaDB con el siguiente comando:

MariaDB [(none)]>\q

4 Descargar Magento

Primero, deberá descargar la última versión de Magento desde su sitio web oficial.

Después de descargar Magento, extraiga el archivo zip descargado en el directorio raíz web de apache con el siguiente comando:

sudo mkdir /var/www/html/magento/
sudo unzip magento2-develop.zip -d /var/www/html/magento

A continuación, cambie la propiedad del directorio magento y otorgue el permiso adecuado:

sudo chown -R www-data:www-data /var/www/html/magento
sudo chmod -R 777 /var/www/html/magento

A continuación, deberá instalar Composer en su sistema. Composer es un administrador de dependencias que se usa para instalar todas las dependencias PHP requeridas. Puede descargar e instalar Composer binario con el siguiente comando:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/bin/composer

A continuación, ejecute el comando composer para instalar todas las dependencias requeridas por Magento:

cd /var/www/html/magento
sudo composer install

Una vez que todas las dependencias estén instaladas, puede proceder a configurar Apache para Magento.

5 Configurar Apache para Magento

A continuación, deberá crear un archivo de host virtual de Apache para Magento. Cree un nuevo archivo de configuración de Apache llamado magento.conf con el siguiente comando:

sudo nano /etc/apache2/sites-available/magento.conf

Agregue las siguientes líneas:

<VirtualHost *:8080>
ServerAdmin [email protected]
DocumentRoot /var/www/html/magento
ServerName 192.168.15.189
ServerAlias www.example.com
<Directory "/var/www/html/magento/">
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/magento-error_log
CustomLog /var/log/apache2/magento-access_log common
</VirtualHost>

Guarde el archivo, luego habilite su host virtual con el módulo de reescritura de Apache con el siguiente comando:

sudo a2ensite magento
sudo a2enmod rewrite

A continuación, también deberá cambiar el puerto de escucha de Apache de 80 a 8080. Porque reservaremos el puerto 80 para el barniz. Para hacerlo, abra el archivo ports.conf:

sudo nano /etc/apache2/ports.conf

Cambie el archivo como se muestra a continuación:

Listen 8080

Finalmente, reinicie el servicio Apache para aplicar estos cambios con el siguiente comando:

sudo systemctl restart apache2

6 Acceda al asistente de instalación web de Magento

Magento ahora está instalado, ahora es el momento de instalar Magento a través del navegador web.

Para hacerlo, abra su navegador web y escriba la URL http://192.168.15.189:8080, debería ver la siguiente página:

Ahora, acepte los Términos y condiciones y luego haga clic en el botón "Aceptar y configurar Magento", debería ver la siguiente página:

Verifique toda la preparación y haga clic en el botón "Siguiente", debería ver la siguiente página:

Proporcione los detalles de su base de datos, como el nombre de la base de datos, el nombre de usuario y la contraseña de la base de datos, luego haga clic en el botón "Siguiente", debería ver la siguiente página:

Proporcione los detalles de su sitio web y haga clic en el botón "Siguiente", debería ver la siguiente página:

Personalice Magento según sus necesidades y haga clic en el botón "Siguiente", debería ver la siguiente página:

Proporcione los detalles de su usuario administrador y haga clic en el botón "Siguiente", debería ver la siguiente página:

Ahora, haga clic en el botón "Instalar ahora" para iniciar la instalación de Magento. Una vez que se complete la instalación, debería ver la siguiente página:

Nota:Recuerde su URL de administrador de Magento:http://192.168.15.189/admin_wczta4. Esto se usará para acceder al administrador de Magento.

Ahora, haga clic en el botón "Iniciar Magento Admin", debería ver la página de inicio de sesión de Magento como se muestra a continuación:

Proporcione sus credenciales de administrador de Magento y haga clic en el botón "Iniciar sesión", debería ver el panel de Magent-o como se muestra a continuación:

Desde su panel de administración de Magento, haga clic en el botón TIENDAS (lado izquierdo)> Configuración> AVANZADO> Sistema> Caché de página completa , luego deseleccione el valor del sistema de uso y seleccione Varnish Cache de la lista de aplicaciones de almacenamiento en caché, guarde la configuración, haga clic en el vínculo Configuración de Varnish y haga clic en el botón Exportar VCL para Varnish 4 (esto exportará el archivo varnish.vcl en /var/www /html/magento/var directorio) como se muestra a continuación:

Finalmente, vacíe el caché de Magento con el siguiente comando:

cd /var/www/html/magento
sudo php bin/magento cache:flush

Una vez que haya terminado, puede proceder a configurar el barniz.

6 Configurar barniz

Magento ahora está instalado y configurado. Es hora de configurar el barniz.

Primero, elimine el archivo /etc/varnish/default.vcl y cree un enlace simbólico a partir de la configuración de barniz exportada:

sudo rm -rf /etc/varnish/default.vcl
sudo ln -s /var/www/html/magento/var/varnish.vcl /etc/varnish/default.vcl

A continuación, deberá crear un archivo de servicio systemd para barniz. Puede hacer esto copiando varnish.service desde /lib/systemd/system/ al directorio /etc/systemd/system/:

sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/

Después de copiar este archivo, deberá realizar algunos cambios en el archivo varnish.service:

sudo nano /etc/systemd/system/varnish.service

Realice los siguientes cambios:

[Unit]
Description=Varnish HTTP accelerator
Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd

[Service]
Type=simple
LimitNOFILE=131072
LimitMEMLOCK=82000
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
ExecReload=/usr/share/varnish/reload-vcl
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
PrivateDevices=true

[Install]
WantedBy=multi-user.target

Guarde el archivo cuando haya terminado, luego reinicie el servicio de barniz con el siguiente comando:

sudo systemctl daemon-reload
sudo systemctl reload varnish.service

Si todo funciona bien, debería poder iniciar sesión en su back-end de Magento escribiendo la siguiente URL en su navegador web:

http://192.168.15.189/admin_wczta4

También puede verificar si el barniz está habilitado o no ejecutando el siguiente comando:

curl -I http://192.168.15.189/admin_wczta4

Deberías ver que el barniz está activado:

Date: Fri, 07 Jul 2017 17:10:01 GMT
Server: Apache/2.4.18 (Ubuntu)
Set-Cookie: store=default; expires=Sat, 07-Jul-2018 17:10:03 GMT; Max-Age=31536000; path=/; HttpOnly
Set-Cookie: PHPSESSID=irp2k8cmrhct0dfh18qk7ap0i4; expires=Fri, 07-Jul-2017 18:10:04 GMT; Max-Age=3600; path=/; domain=192.168.15.189; HttpOnly
Expires: Thu, 07 Jul 2016 17:10:04 GMT
Cache-Control: max-age=0, must-revalidate, no-cache, no-store
Pragma: no-cache
Location: http://192.168.15.189/admin_wczta4/?SID=irp2k8cmrhct0dfh18qk7ap0i4
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Content-Length: 0
Content-Type: text/html; charset=UTF-8
X-Varnish: 2
Age: 0
Via: 1.1 varnish-v4
Connection: keep-alive

¡Felicidades! Ha configurado correctamente Magento con Varnish en el servidor Ubuntu 16.04.


Ubuntu
  1. Cómo instalar Apache en Ubuntu 18.04

  2. Cómo instalar y configurar Nextcloud con Apache en Ubuntu 18.04

  3. Cómo instalar Joomla con Apache en Ubuntu 18.04

  4. Cómo configurar Opencart con LAMP (PHP, Apache, Mariadb) en Ubuntu 20.04

  5. ¿Cómo instalar y configurar Varnish en Ubuntu 20.04?

Cómo instalar y configurar el cortafuegos UFW en Ubuntu 20.04

Cómo instalar Lighttpd con PHP y MariaDB en Ubuntu 15.04

Cómo instalar Lighttpd con MariaDB y PHP en Ubuntu 18.04 LTS

Cómo configurar el host virtual Apache en Ubuntu 20.04 LTS

Cómo instalar y configurar Apache Spark en Ubuntu/Debian

Cómo instalar Magento 2.4.3 en Ubuntu 20.04 con LAMP