Cómo instalar OpenCart con Nginx y Let’s Encrypt en Debian 10

Opencart es una popular solución de carrito de la compra de código abierto que te ayuda a alojar tu propio sitio web de comercio electrónico totalmente funcional. Opencart proporciona una interfaz sencilla y fácil de usar para vender tus productos en línea, como Amazon y Flipcart. Está diseñado específicamente para pequeñas y medianas empresas y tiene todas las características estándar de comercio electrónico necesarias para las tiendas online. Ofrece un rico conjunto de funciones, como multidivisa, idioma, categorías ilimitadas, productos, revisiones de productos, multitienda y muchas más.

En este tutorial, te mostraremos cómo instalar OpenCart con Nginx en Debian 10 y asegurarlo con Let’s Encrypt SSL.

Requisitos previos

  • Un servidor con Debian 10.
  • Una contraseña de root configurada en tu servidor.

Cómo empezar

Primero, actualiza tu sistema a la última versión con el siguiente comando:

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

Una vez actualizado tu servidor, reinícialo para aplicar los cambios.

Instalar el servidor LEMP

En primer lugar, instala el servidor web Nginx, el servidor de bases de datos MariaDB, PHP y otras extensiones PHP necesarias ejecutando el siguiente comando:

apt-get install nginx mariadb-server php-common php-cli php-fpm php-opcache php-gd php-mysql php-curl php-intl php-xsl php-mbstring php-zip php-bcmath php-soap unzip git -y

Una vez instalados todos los paquetes, edita el archivo php.ini y realiza algunos cambios:

nano /etc/php/7.3/fpm/php.ini

Cambia las siguientes líneas:

memory_limit = 256M
upload_max_filesize = 100M
opcache.save_comments=1
max_execution_time = 300
date.timezone = Asia/Kolkata

Guarda y cierra el archivo cuando hayas terminado.

Configurar la base de datos MariaDB

A continuación, tendrás que establecer una contraseña de root de MariaDB, ya que no está establecida en Debian 10.

Para ello, entra en el shell de MariaDB con el siguiente comando:

mysql

Una vez iniciada la sesión, establece una contraseña de root de MariaDB con el siguiente comando:

MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("yournewrootpassword");

A continuación, establece el plugin de autenticación de MariaDB como mysql_native_password con el siguiente comando:

MariaDB [(none)]> SET GLOBAL innodb_fast_shutdown = 0;
MariaDB [(none)]> UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root';

A continuación, vacía los privilegios y sal del shell de MariaDB con el siguiente comando

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

A continuación, inicia sesión en MariaDB con el usuario root:

mysql -u root -p

Proporciona tu contraseña de root y crea una base de datos y un usuario para OpenCart con el siguiente comando

MariaDB [(none)]> CREATE DATABASE opencartdb;
MariaDB [(none)]> GRANT ALL ON opencartdb.* TO 'opencart'@'localhost' IDENTIFIED BY 'password';

A continuación, vacía los privilegios y sal del intérprete de comandos de MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Una vez configurado MariaDB, puedes pasar al siguiente paso.

Descargar OpenCart

Puedes descargar la última versión de OpenCart desde el repositorio Git con el siguiente comando:

wget https://github.com/opencart/opencart/releases/download/3.0.3.2/opencart-3.0.3.2.zip

Después de descargar OpenCart, descomprime el archivo descargado con el siguiente comando:

unzip opencart-3.0.3.2.zip

A continuación, mueve el directorio de carga al directorio raíz de la web Nginx con el siguiente comando:

mv upload /var/www/html/opencart

A continuación, cambia el directorio a opencart y renombra el archivo config-dist.php:

cd /var/www/html/opencart/
mv config-dist.php config.php
mv admin/config-dist.php admin/config.php

A continuación, da los permisos adecuados al directorio opencart con el siguiente comando:

chown -R www-data:www-data /var/www/html/opencart/
chmod -R 775 /var/www/html/opencart/

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar Nginx para OpenCart

A continuación, tendrás que crear un archivo de configuración del host virtual Nginx para servir a OpenCart. Puedes crearlo con el siguiente comando:

nano /etc/nginx/sites-available/opencart.conf

Añade el siguiente contenido:

server {
    listen 80;
    server_name opencart.linuxbuz.com;
    root /var/www/html/opencart;
    index index.php;
    access_log /var/log/nginx/opencart_access.log;
    error_log /var/log/nginx/opencart_error.log;

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }

}

Guarda y cierra el archivo y luego comprueba si Nginx tiene algún error de sintaxis con el siguiente comando:

nginx -t

Deberías obtener la siguiente salida:

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

A continuación, habilita el archivo de host virtual de Nginx con el siguiente comando:

ln -s /etc/nginx/sites-available/opencart.conf /etc/nginx/sites-enabled/

A continuación, reinicia el servicio Nginx y PHP-FPM para aplicar los cambios:

systemctl restart nginx
systemctl restart php7.3-fpm

Una vez que hayas terminado, puedes pasar al siguiente paso.

Asegurar OpenCart con Let’s Encrypt SSL

A continuación, tendrás que instalar un cliente Certbot para instalar y configurar Let’s Encrypt para tu sitio web.

Por defecto, el Certbot no está disponible en el repositorio por defecto de Debian 10. Así que tendrás que añadir un repositorio de Certbot en tu sistema.

Puedes añadirlo con el siguiente comando:

echo "deb http://ftp.debian.org/debian buster-backports main" >> /etc/apt/sources.list

A continuación, actualiza el repositorio e instala el cliente Certbot para Nginx con el siguiente comando:

apt-get update -y
apt-get install python3-certbot-nginx -t buster-backports

Una vez instalado, ejecuta el siguiente comando para descargar Let’s Encrypt SSL y configurar Nginx para que utilice este SSL:

certbot --nginx -d opencart.linuxbuz.com

Se te pedirá que aceptes las condiciones del servicio y que proporciones tu dirección de correo electrónico válida, como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for opencart.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/nginx/sites-available/opencart-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/nginx/sites-available/opencart-le-ssl.conf
Enabling available site: /etc/nginx/sites-available/opencart-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.

A continuación, tendrás que elegir si quieres redirigir el tráfico HTTP a HTTPS, como se muestra a continuación:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Escribe 2 y pulsa Enter para continuar. Una vez completada la instalación, deberías obtener la siguiente salida:

Redirecting vhost in /etc/nginx/sites-enabled/opencart.conf to ssl vhost in /etc/nginx/sites-available/opencart-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://opencart.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=opencart.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/opencart.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/opencart.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-04-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

En este punto, OpenCart está protegido con Let’s Encrypt SSL.

Acceder a la interfaz web de OpenCart

Ahora, abre tu navegador web y escribe la URL https://opencart.linuxbuz.com. Serás redirigido a la página del Acuerdo de Licencia de OpenCart:

Licencia OpenCart / GPL

Haz clic en el botón Continuar para aceptar el Acuerdo de Licencia. Deberías ver la siguiente página:

Comprobación previa a la instalación

Otras comprobaciones

Asegúrate de que todas las extensiones PHP necesarias están instaladas y luego haz clic en el botón CONTINUAR. Deberías ver la siguiente página:

Configuración de la base de datos

Proporciona tus credenciales de la base de datos, nombre de usuario y contraseña de administrador y haz clic en el botón CONTINUAR. Una vez completada la instalación, deberías ver la siguiente página:

Instalación de OpenCart completa

Ahora, abre tu terminal y elimina el directorio de instalación con el siguiente comando:

rm -rf /var/www/html/opencart/install/

A continuación, haz clic en el botón IR A TU TIENDA ONLINE. Deberías ver tu tienda OpenCart en la siguiente página:

Frontend de la tienda OpenCart

A continuación, haz clic en el botón INGRESAR A TU ADMINISTRACIÓN. Deberías ver la página de inicio de sesión de OpenCart:

Inicio de sesión del administrador de OpenCart

Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón Iniciar sesión. Deberías ver tu panel de administración de OpenCart en la siguiente página:

Panel de control de OpenCart

Conclusión

Enhorabuena! has instalado y asegurado con éxito OpenCart en Debian 10. Ahora puedes alojar tu propio carrito de la compra online con OpenCart. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...