Cómo instalar la plataforma de comercio electrónico X-cart en Debian 9

Este tutorial te guiará sobre cómo instalar y configurar la última versión de la plataforma de comercio electrónico X-Cart en la versión 9.2 de Debian, para crear una tienda de compras en línea gratuita.

X-Cart es una potente y compleja plataforma comercial de comercio electrónico de código abierto para carritos de la compra, con la mayoría de sus partes escritas en lenguaje de programación PHP y a menudo desplegada como una solución de software como servicio (SaaS). La plataforma de compras X-cart también se puede instalar en Linux bajo servidores web Apache/Nginx, PHP y el sistema de gestión de bases de datos MySQL/MariaDB, también conocido como pila LAMP o LEMP. La plataforma de comercio electrónico en línea X-Cart CMS es muy utilizada para crear tiendas en línea para diferentes negocios y anunciar y vender servicios y mercancías.

Requisitos

  • Instalación del servidor Debian 9 en una máquina bare-metal o en un servidor virtual privado
  • Privilegios sudo root para una cuenta local o remota o acceso directo a la cuenta root
  • Una dirección IP estática configurada para una de las tarjetas de interfaz de red de tu sistema
  • Un nombre de dominio, privado o público, dependiendo de tu implantación, con los registros DNS adecuados configurados para los servicios web. Si no tienes un nombre de dominio válido o registrado, puedes realizar la instalación y acceder al sitio web a través de la dirección IP de tu servidor
  • Si quieres utilizar el registro en el sitio web, la moderación de comentarios y otras funciones, debes tener un servidor de correo en funcionamiento correctamente configurado en tus instalaciones con acceso remoto a sus servicios IMAP y SMTP.

Requisitos previos

Antes de empezar a instalar y configurar X-Cart desde las fuentes en tu propio servidor, asegúrate primero de que el sistema cumple todos los requisitos de software para compilar e instalar la aplicación. En el primer paso, actualiza los repositorios de tu sistema y los paquetes de software ejecutando el comando que se indica a continuación.

apt update
apt upgrade

Una vez que el sistema esté totalmente actualizado, configura el nombre de tu sistema ejecutando el siguiente comando. Sustituye tu variable hostname en consecuencia.

hostnamectl set-hostname xcart

Verifica el nombre de host de la máquina y el archivo hosts ejecutando los siguientes comandos.

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

Por último, reinicia el servidor Debian para que se apliquen correctamente las actualizaciones del núcleo y los cambios de nombre de host.

systemctl reboot

En el siguiente paso, ejecuta el siguiente comando para instalar algunas utilidades necesarias que se utilizarán para seguir gestionando tu sistema desde la línea de comandos.

apt install wget bash-completion zip unzip

X-Cart es una plataforma de comercio electrónico CMS basada en web y escrita principalmente en lenguaje de programación del lado del servidor PHP. Para ejecutar los scripts del archivo PHP de la aplicación, es necesario instalar y poner en funcionamiento en el sistema un servidor web, como el servidor HTTP Apache, y una pasarela de procesamiento PHP. Para instalar el servidor web Apache y el intérprete PHP junto con todos los módulos PHP necesarios para que la aplicación funcione correctamente, emite el siguiente comando en la consola de tu servidor.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-mbstring php7.0-curl php7.0-gd php7.0-xml php7.0-opcache

Una vez instalados Apache y PHP, comprueba si el servidor web está en funcionamiento y a la escucha de conexiones de red en el puerto 80 emitiendo el siguiente comando con privilegios de root.

netstat –tlpn

En caso de que la utilidad de red netstat no esté instalada por defecto en tu sistema Debian, ejecuta el siguiente comando para instalarla.

apt install net-tools

Inspeccionando la salida del comando netstat puedes ver que el servidor web Apache está a la escucha de conexiones de red entrantes en el puerto 80. Para la misma tarea también puedes utilizar el comando ss, que se instala automáticamente por defecto en Debian 9.

ss- tulpn

En caso de que tengas un cortafuegos habilitado en tu sistema, como la aplicación de cortafuegos UFW, deberías añadir una nueva regla para permitir que el tráfico HTTP pase a través del cortafuegos mediante el siguiente comando

ufw allow WWW

o

ufw allow 80/tcp

Si utilizas reglas iptables raw para gestionar las reglas del cortafuegos en tu servidor Debian, añade la siguiente regla para permitir el tráfico entrante del puerto 80 en el cortafuegos, de forma que los visitantes puedan navegar por la tienda online.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

A continuación, habilita y aplica los siguientes módulos de Apache necesarios para que la aplicación de comercio electrónico funcione correctamente, ejecutando el siguiente comando.

a2enmod rewrite
systemctl restart apache2

Por último, comprueba si la página web predeterminada del servidor web Apache puede mostrarse en los navegadores de tus clientes visitando la dirección IP de tu máquina Debian o tu nombre de dominio o FQDN de servidor mediante el protocolo HTTP, como se muestra en la imagen siguiente. Si no conoces la dirección IP de tu máquina, ejecuta los comandos ifconfig o ip a para revelar la dirección IP de tu servidor.

http://your_domain.tld

Para instalar y acceder al backend del panel de administración web de X-Cart y al sitio web del frontend a través del protocolo HTTPS, que protegerá el tráfico para tus clientes, ejecuta el siguiente comando para activar el módulo SSL del servidor web Apache y el archivo de configuración del sitio SSL.

a2enmod ssl
a2ensite default-ssl.conf

A continuación, abre el archivo de configuración del sitio SSL predeterminado de Apache con un editor de texto y habilita las reglas de reescritura de URL añadiendo las siguientes líneas de código después de la directiva DocumentRoot, como se muestra en el siguiente ejemplo:

nano /etc/apache2/sites-enabled/default-ssl.conf

Extracto del archivo de configuración del sitio SSL:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Además, realiza el siguiente cambio en la línea VirtualHost para que quede como se muestra en el siguiente extracto:

<VirtualHost *:443>

Cierra el archivo Apache SSL y abre el archivo /etc/apache2/sites-enabled/000-default.conf para editarlo y añade las mismas reglas de reescritura de URL que para el archivo de configuración SSL. Inserta las líneas de código después de la sentencia DocumentRoot como se muestra en el ejemplo siguiente.

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Por último, reinicia el demonio Apache para aplicar todas las reglas configuradas hasta ahora y visita tu dominio a través del protocolo HTTP. Como estás utilizando los pares de certificados autofirmados automáticamente emitidos por Apache en la instalación, debería aparecer una advertencia de error en el navegador.

systemctl restart apache2

https://yourdomain.tld

Acepta la advertencia para continuar y ser redirigido a la página web predeterminada de Apache, como se muestra en la imagen siguiente.

En caso de que la aplicación de cortafuegos UFW bloquee las conexiones de red entrantes al puerto HTTPS, debes añadir una nueva regla para permitir que el tráfico HTTPS pase a través del cortafuegos mediante el siguiente comando.

ufw allow 'WWW Full'

o

ufw allow 443/tcp

Si iptables es la aplicación de cortafuegos instalada por defecto para proteger tu sistema Debian a nivel de red, añade la siguiente regla para permitir el tráfico entrante del puerto 443 en el cortafuegos para que los visitantes puedan navegar por tu nombre de dominio.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

En el siguiente paso, tenemos que hacer algunos cambios más en el archivo de configuración por defecto de PHP para asegurarnos de que las siguientes variables de PHP están habilitadas y la configuración de la zona horaria de PHP está correctamente configurada y coincide con la ubicación geográfica de tu sistema. Abre el archivo /etc/php/7.0/apache2/php.ini para editarlo y asegúrate de que las siguientes líneas están configuradas como se indica a continuación. Además, inicialmente, haz una copia de seguridad del archivo de configuración PHP.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Busca, edita y cambia las siguientes variables en el archivo php.iniarchivo de configuración:

file_uploads = On
allow_url_fopen = On
memory_limit = 128 M
upload_max_file_size = 64M
date.timezone = Europe/London

Aumenta la variable memory_limit según convenga para soportar archivos adjuntos de gran tamaño y sustituye la variable time.zone según tu hora física consultando la lista de zonas horarias proporcionada por PHP docs en el siguiente enlace http://php.net/manual/en/timezones.php.

Si quieres aumentar la velocidad de carga de las páginas de tu sitio web mediante el plugin OPCache disponible para PHP7, añade los siguientes ajustes de OPCache en la parte inferior del archivo de configuración del intérprete PHP, como se detalla a continuación:

opcache.enable=1 
opcache.enable_cli=1 
opcache.interned_strings_buffer=8 
opcache.max_accelerated_files=10000 
opcache.memory_consumption=128 
opcache.save_comments=1
opcache.revalidate_freq=1

Cierra el archivo de configuración php.ini y verifica el final del archivo de configuración PHP para comprobar si las variables se han añadido correctamente mediante el siguiente comando.

tail /etc/php/7.0/apache2/php.ini

Una vez que hayas realizado todos los cambios explicados anteriormente, reinicia el demonio apache para aplicar los nuevos cambios emitiendo el siguiente comando.

systemctl restart apache2

Por último, crea un archivo PHP info ejecutando el siguiente comando y comprueba si la zona horaria PHP se ha configurado correctamente visitando el archivo PHP info script desde un navegador en la siguiente URL, como se ilustra en la siguiente imagen. Desplázate hasta la configuración de la fecha para comprobar la configuración de la zona horaria de PHP.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

https://domain.tld/info.php

La aplicación web de comercio electrónico X-Cart almacena diferentes configuraciones, como usuarios, sesiones, contactos, productos, catálogos y otros, en una base de datos RDBMS. En esta guía configuraremos X-Cart para que utilice la base de datos MariaDB como backend. Ejecuta el siguiente comando para instalar la base de datos MariaDB y el módulo PHP necesario para acceder a la base de datos mysql.

apt install mariadb-server php7.0-mysql

Una vez que hayas instalado MariaDB, comprueba si el demonio se está ejecutando y escucha conexiones en localhost, puerto 3306, ejecutando el comando netstat.

netstat –tlpn | grep mysql

A continuación, accede a la consola MySQL y asegura la cuenta raíz de MariaDB ejecutando los siguientes comandos.

mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit

En el siguiente paso, asegura MariaDB ejecutando el script mysql_secure_installation proporcionado por los paquetes de instalación de los repositorios stretch de Debian. Mientras se ejecuta, el script te hará una serie de preguntas diseñadas para asegurar la base de datos MariaDB, como: cambiar la contraseña de root de MySQL, eliminar los usuarios anónimos, desactivar los inicios de sesión de root remoto y eliminar la base de datos de prueba. Ejecuta el script emitiendo el siguiente comando y asegúrate de que escribes sí a todas las preguntas formuladas para asegurar completamente el demonio MySQL. Utiliza la siguiente salida del script excepto como guía.

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

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

… Success!

 

 

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!

Para probar la seguridad de MariaDB, intenta acceder a la base de datos desde la consola sin contraseña de root. El acceso a la base de datos debería denegarse si no se proporciona una contraseña para la cuenta raíz. Si se proporciona la contraseña, el proceso de inicio de sesión debería concederse a la consola MySQL, como se muestra en la siguiente captura de pantalla.

mysql -h localhost -u root
mysql -h localhost -u root –p

A continuación, inicia sesión en la consola de la base de datos MariaDB, crea una base de datos para la aplicación X-Cart y un usuario con una contraseña que se utilizará para gestionar la base de datos de la aplicación, mediante los siguientes comandos. Sustituye el nombre de la base de datos, el usuario y la contraseña según corresponda.

mysql –u root -p
create database my_xcart;
grant all privileges on my_xcart.* to 'xcart_user' identified by 'x_password';
flush privileges;   
exit

Para aplicar todos los cambios realizados hasta el momento, reinicia los demonios MySQL y Apache y comprueba si los demonios se están ejecutando emitiendo los siguientes comandos.

 systemctl restart mysql apache2
systemctl status mysql apache2

Instalar X-Cart

Una vez cumplidos todos los requisitos del sistema para la instalación de tu tienda online de comercio electrónico, visita la página de descargas de X-Cart en https://www.x-cart.com/download.html desde un equipo de sobremesa y descarga el último archivo comprimido del paquete zip rellenando el formulario web requerido desde su sitio web.

Una vez finalizada la descarga del archivo, utiliza un protocolo de transferencia de archivos, como scp, para copiar el archivo zip descargado desde la máquina de escritorio a tu servidor Debian. Transfiere el archivo zip al directorio /tmp de tu servidor. Accede al directorio /tmp del servidor remoto a través de SSH para confirmar si la transferencia del archivo zip se ha completado con éxito.

scp x-cart-5.3.3.4-gb.zip root@your_server_IP_or_domain:/tmp
ssh  root@your_server_IP_or_domain 'ls /tmp'

Una vez finalizada la descarga del archivo zip, extrae el archivo comprimido X-Cart al directorio /tmp y lista los archivos extraídos ejecutando los siguientes comandos. Además, elimina el archivo index.html instalado por defecto por el servidor web Apache en la ruta webroot y elimina también el archivo info.php creado anteriormente.

rm /var/www/html/index.html
rm /var/www/html/info.php
cd /tmp
unzip x-cart-5.3.3.4-gb.zip
ls

Los archivos de instalación de X-Cart se encuentran en tu directorio de trabajo actual (directorio /tmp en este caso) en el directorio xcart. Ejecuta el comando ls para listar los archivos del directorio xcart. Copia todo el contenido del directorio xcart en la ruta raíz del documento de tu servidor web ejecutando el siguiente comando. Además, asegúrate de copiar el archivo oculto .htaccess a la ruta webroot.

cd /tmp
ls -al xcart/
cp -rf xcart/* /var/www/html/
cp xcart/.htaccess /var/www/html/

A continuación, ejecuta los siguientes comandos para conceder al usuario en tiempo de ejecución de Apache permisos completos de escritura en la ruta raíz web. Utiliza el comando ls para listar los permisos de los archivos instalados de la aplicación ubicados en el directorio /var/www/html/.

chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/

A continuación, procede con el proceso de instalación de la tienda online X-Cart abriendo un navegador y navegando por la dirección IP de tu servidor o por el nombre de dominio o FQDN del servidor a través del protocolo HTTPS. En la primera pantalla de instalación el instalador de X-Cart mostrará un mensaje diciendo que X-cart no está instalado, como se muestra en la siguiente imagen. Haz clic en el enlace Haz clic aquí para iniciar el proceso de instalación.

https://yourdomain.tld

En la siguiente pantalla de instalación de X-Cart, el asistente te presentará el acuerdo de licencia, como se muestra en la siguiente imagen. Marca Acepto el Contrato de Licencia y la Política de Privacidad y pulsa el botón Siguiente para aceptar la licencia y continuar con el proceso de instalación.

A continuación, crea una cuenta de administrador para el backend de tu tienda online, basándote en tu dirección de correo electrónico, y elige una contraseña para esta cuenta, como se muestra en la siguiente captura de pantalla. Pulsa el botón Siguiente para continuar con el proceso de instalación.

En la siguiente pantalla de instalación, añade la dirección de la base de datos MySQL, el nombre y las credenciales creadas anteriormente para la base de datos de X-Cart. Marca Instalar un catálogo de muestra y pulsa en Configuración avanzada de MySQL y Configuración avanzada del servidor.

En configuración avanzada de MySQL deja el valor del puerto por defecto en 3306 y el prefijo en xc_. Desplázate hasta Configuración avanzada del servidor y añade el nombre de host de tu servidor, o tu nombre de dominio, en Nombre del servidor web y en Nombre seguro del servidor web. Selecciona la zona horaria por defecto de tu tienda y pulsa el botón Siguiente para finalizar esta etapa de la instalación, como se muestra en la imagen siguiente.

Espera unos minutos a que el instalador configure los directorios y rellene el esquema de la base de datos con toda la información necesaria y a que finalice todo el proceso de instalación, como se muestra en la captura de pantalla siguiente.

Una vez completada la instalación, el instalador mostrará dos enlaces que se pueden utilizar para acceder al panel de administración del backend de X-Cart, que se utilizará para gestionar tu tienda online, y al frontend de la tienda online X-cart (zona de clientes) de tu tienda, que se mostrará a tus clientes.

Para visitar el frontend de tu tienda online, haz clic en el enlace Zona del cliente y el frontend de tu aplicación de comercio electrónico se mostrará en tu navegador, como se ilustra en la siguiente captura de pantalla. También puedes visitar el frontend de la tienda navegando a la dirección IP o nombre de dominio de tu servidor a través del protocolo HTTPS.

https://yourdomain.tld

Antes de acceder al panel de administración del backend de tu tienda, primero, vuelve a la consola del servidor y emite los siguientes comandos para asegurar el archivo de configuración del sistema de compras X-cart.

chmod -R 755 /var/www/html/
chmod -R 755 /var/www/html/etc/
chmod -R 644 /var/www/html/config.php
chown -R root:root /var/www/html/etc/
chown root:root /var/www/html/config.php

Para gestionar tu tienda online X-Cart, haz clic en el enlace Zona de administrador (Backoffice) para acceder al backend de administración de la tienda. Utiliza las credenciales configuradas durante el proceso de instalación para acceder al panel de administración de X-Cart, como se muestra en la siguiente captura de pantalla.

También puedes visitar el panel web de administración de X-Cart navegando a la dirección IP o nombre de dominio de tu servidor a través del protocolo HTTPS a la URL /admin.php.

https://yourdomain.tld/admin.php

Tras acceder al panel de administración backend de X-Cart, aparecerá una notificación en tu pantalla que te informará de que la versión de prueba para empresas caducará en 30 días. Además, deberás ir al menú Actualizar e instalar todas las actualizaciones publicadas para la edición actual de X-cart, como se muestra en la siguiente captura de pantalla.

Por último, para obligar a los visitantes a navegar por el sitio web del frontend de X-Cart y acceder de forma segura a la interfaz del backend a través del protocolo HTTPS con el fin de cifrar el tráfico entre el servidor y los navegadores de los clientes, vuelve al terminal de tu servidor y edita el archivo .htaccess situado en la ruta de tu sitio web, ejecutando el siguiente comando.

nano /var/www/html/.htaccess

A continuación, edita el archivo .htaccess y, en la parte inferior del archivo, modifica la configuración nativa de PHP con las configuraciones que se indican a continuación. Puedes cambiar la configuración de PHP para adaptarla a los recursos de tu propio servidor.

.htaccessextracto del archivo:

# Modificar configuración PHP

php_flag register_globals off
php_flag magic_quotes_gpc Off
php_value max_execution_time 200
php_value max_input_time 200
php_value upload_max_filesize 500M
php_value post_max_size 500M

Por último, añade las siguientes reglas para redirigir el tráfico del dominio a HTTPS y evitar que se acceda a los directorios de instalación y del sistema a través de peticiones web.

# Redirect to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>

Y ya está. Has instalado y configurado correctamente la aplicación de comercio electrónico X-Cart en Debian 9.2. Sin embargo, como el servidor HTTP Apache utiliza certificados autofirmados para cifrar el tráfico entre el servidor y los navegadores de los visitantes, siempre se generará un mensaje de advertencia que se mostrará en sus navegadores. Esta advertencia es perjudicial para el negocio de tu tienda online. En este caso, deberías comprar un certificado emitido por una Autoridad de Certificación de confianza u obtener un par de certificados gratuitos de Let’s Encrypt CA.

Para otras configuraciones personalizadas relativas a la aplicación X-Cart, visita la página de documentación en la siguiente dirección: https://kb.x-cart.com/en/index.html

También te podría gustar...