GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar Zen Cart en Debian 9

Zen Cart es una plataforma gratuita de gestión de contenido de comercio electrónico y carrito de la compra de código abierto. El software está escrito en el lenguaje de programación PHP y, a menudo, se instala en Linux bajo los servidores web Apache/Nginx, PHP y el sistema de gestión de bases de datos MySQL/MariaDB, también conocido como LAMP o LEMP stack. La solución de comercio electrónico Zen Cart se utiliza para crear fácilmente tiendas en línea para diferentes empresas y anunciar y vender servicios y mercancías.

En esta guía, le mostraré cómo instalar y configurar la última versión de Zen Cart en Debian 9 para crear una tienda de compras en línea gratuita.

Requisitos

  • Instalación mínima del servidor Debian 9 en una máquina completa o en un servidor privado virtual
  • Una dirección IP estática configurada para una de tarjetas de interfaz de red de su sistema
  • privilegios de sudo root para una cuenta local o remota o acceso directo a la cuenta raíz
  • Un nombre de dominio, privado o público, según su implementación, con los registros DNS adecuados configurados para servicios web. Si no tiene un nombre de dominio válido o registrado, puede realizar la instalación y acceder al sitio web a través de la dirección IP de su servidor
  • Si desea utilizar el registro en el sitio web, la moderación de comentarios y otras funciones, debe tener un servidor de correo en ejecución correctamente configurado en sus instalaciones con acceso remoto a sus servicios IMAP y SMTP.

Requisitos previos

Antes de comenzar a instalar y configurar Zen Cart desde fuentes en su propio servidor, primero asegúrese de que el sistema cumpla con todos los requisitos de software para compilar e instalar la aplicación. En el primer paso, actualice los repositorios de su sistema y los paquetes de software emitiendo el siguiente comando.

apt update
apt update

A continuación, configure el nombre de su sistema ejecutando el siguiente comando (reemplace la variable de nombre de host según corresponda).

hostnamectl set-hostname zencart

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

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

En el siguiente paso, ejecute el siguiente comando para instalar algunas utilidades necesarias que se utilizarán para administrar aún más su sistema desde la línea de comandos.

apt install wget bash-completion zip unzip curl

  Finalmente, reinicie el servidor Debian para aplicar las actualizaciones del núcleo y el nombre de host cambie correctamente.

systemctl reboot

Instalar Apache y PHP

Zen Cart es una plataforma de comercio electrónico CMS basada en la web escrita principalmente en el lenguaje de programación del lado del servidor PHP. Para ejecutar los scripts de archivo PHP de la aplicación, se debe instalar y operar en el sistema un servidor web, como un servidor Apache HTTP, y una puerta de enlace 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, emita el siguiente comando en la consola de su servidor.

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

Después de que se hayan instalado Apache y PHP, pruebe si el servidor web está funcionando y escuchando las conexiones de red en el puerto 80 emitiendo el siguiente comando con privilegios de raíz.

netstat –tlpn

En caso de que la utilidad de red netstat no esté instalada de forma predeterminada en su sistema Debian, ejecute el siguiente comando para instalarla.

apt install net-tools

Al inspeccionar la salida del comando netstat, puede ver que el servidor web Apache está escuchando las conexiones de red entrantes en el puerto 80. Para la misma tarea, también puede usar el comando ss, que se instala automáticamente de manera predeterminada en Debian 9.

ss- tulpn

Configurar el cortafuegos

En caso de que tenga un firewall habilitado en su sistema, como la aplicación de firewall UFW, debe agregar una nueva regla para permitir que el tráfico HTTP pase a través del firewall emitiendo el siguiente comando.

ufw allow WWW

o

ufw allow 80/tcp

Si está utilizando reglas sin procesar de iptables para administrar las reglas del cortafuegos en su servidor Debian, agregue la siguiente regla para permitir el tráfico entrante del puerto 80 en el cortafuegos para que los visitantes puedan navegar por la tienda en línea.

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

Configurar Apache y SSL/TLS

Luego, habilite y aplique los siguientes módulos de Apache requeridos por la aplicación de comercio electrónico para ejecutarse correctamente, emitiendo el siguiente comando.

a2enmod rewrite expires env alias deflate mime
systemctl restart apache2

Finalmente, pruebe si la página web predeterminada del servidor web Apache se puede mostrar en los navegadores de su cliente visitando la dirección IP de su máquina Debian o su nombre de dominio o servidor FQDN a través del protocolo HTTP, como se muestra en la siguiente imagen. Si no conoce la dirección IP de su máquina, ejecute los comandos ifconfig o 'ip a' para revelar la dirección IP de su servidor.

http://tudominio.tld

Para instalar y acceder al panel de administración web de Zen Cart respaldado y al sitio web frontend a través del protocolo HTTPS que asegurará el tráfico para sus clientes, emita el siguiente comando para habilitar 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, abra el archivo de configuración del sitio SSL predeterminado de Apache con un editor de texto y habilite las reglas de reescritura de URL agregando 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, realice el siguiente cambio en la línea VirtualHost para que se vea como se muestra en el siguiente extracto:

<VirtualHost *:443>

Cierre el archivo Apache SSL y abra el archivo /etc/apache2/sites-enabled/000-default.conf para editarlo y agregue las mismas reglas de reescritura de URL que para el archivo de configuración SSL. Inserte las líneas de código después de la instrucción DocumentRoot como se muestra en el siguiente ejemplo.

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

Finalmente, reinicie el demonio Apache para aplicar todas las reglas configuradas hasta el momento y visite su dominio a través del protocolo HTTP. Debido a que está utilizando los pares de certificados autofirmados automáticamente emitidos por Apache en la instalación, se debe mostrar una advertencia de error en el navegador.

systemctl restart apache2

https://tudominio.tld

Acepte la advertencia sobre el certificado no confiable para continuar y ser redirigido a la página web predeterminada de Apache.

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

ufw allow 'WWW Full'

o

ufw allow 443/tcp

Si iptables es la aplicación de firewall predeterminada instalada para proteger su sistema Debian a nivel de red, agregue la siguiente regla para permitir el tráfico entrante del puerto 443 en el firewall para que los visitantes puedan navegar por su 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, debemos realizar algunos cambios adicionales en el archivo de configuración predeterminado de PHP para garantizar que las siguientes variables de PHP estén habilitadas y que la configuración de la zona horaria de PHP esté configurada correctamente y coincida con la ubicación geográfica de su sistema. Abra el archivo /etc/php/7.0/apache2/php.ini para editarlo y asegúrese de que las siguientes líneas estén configuradas de la siguiente manera. Además, inicialmente, haga una copia de seguridad del archivo de configuración de PHP.

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

Busque, edite y cambie las siguientes variables en php.ini archivo de configuración:

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

Aumente las variables post_max_size y upload_max_file_size según corresponda para admitir archivos adjuntos de gran tamaño y reemplace la variable time.zone de acuerdo con su hora física consultando la lista de zonas horarias proporcionada por los documentos de PHP en el siguiente enlace http://php.net/manual/en /timezones.php

Si desea aumentar la velocidad de carga de las páginas de su sitio web a través del complemento OPCache disponible para PHP7, agregue la siguiente configuración de OPCache en la parte inferior del archivo de configuración del intérprete de 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

Cierre el archivo de configuración php.ini y verifique el final del archivo de configuración de PHP para verificar si las variables se agregaron correctamente emitiendo el siguiente comando.

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

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

systemctl restart apache2

Finalmente, cree un archivo de información de PHP ejecutando el siguiente comando y verifique si la zona horaria de PHP se ha configurado correctamente visitando el archivo de script de información de PHP desde un navegador en la siguiente URL, como se ilustra en la imagen a continuación. Desplácese hacia abajo hasta la configuración de la fecha para verificar la configuración de la zona horaria de php.

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

https://tudominio.tld/info.php

La aplicación web de comercio electrónico Zen Cart almacena diferentes configuraciones, como usuarios, sesiones, contactos, productos, catálogos y otros, en una base de datos RDBMS. En esta guía, configuraremos la aplicación Zen Cart para usar la base de datos MariaDB como backend. Ejecute 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 mariadb-client php7.0-mysql

Después de instalar MariaDB, verifique si el demonio se está ejecutando y escucha las conexiones en el host local, puerto 3306, ejecutando el comando netstat.

netstat –tlpn | grep mysql

Luego, inicie sesión en la consola de MySQL y asegure la cuenta raíz de MariaDB emitiendo los siguientes comandos.

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

En el siguiente paso, asegure MariaDB ejecutando el script mysql_secure_installation proporcionado por los paquetes de instalación de los repositorios de extensión de Debian. Mientras se ejecuta el script, se le harán una serie de preguntas diseñadas para asegurar la base de datos MariaDB, tales como:cambiar la contraseña raíz de MySQL, eliminar usuarios anónimos, deshabilitar los inicios de sesión raíz remotos y eliminar la base de datos de prueba. Ejecute el script emitiendo el siguiente comando y asegúrese de escribir sí a todas las preguntas formuladas para asegurar completamente el demonio MySQL. Utilice el siguiente fragmento de salida del script 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, intente iniciar sesión en la base de datos desde la consola sin contraseña de root. Se debe denegar el acceso a la base de datos si no se proporciona una contraseña para la cuenta raíz, como se ilustra en el siguiente extracto del comando:

[email protected]:~# mysql -h localhost -u root
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Si se proporciona la contraseña, el proceso de inicio de sesión debe otorgarse a la consola de MySQL, como se muestra en el comando de ejemplo:

[email protected]:~# mysql -h localhost -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
 exit
Bye

Luego, inicie sesión en la consola de la base de datos MariaDB, cree una base de datos para la aplicación Zen Cart y un usuario con una contraseña que se usará para administrar la base de datos de la aplicación, emitiendo los siguientes comandos. Reemplace el nombre de la base de datos, el usuario y la contraseña según corresponda.

mysql –u root -p
create database zencart;
grant SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP on zencart.* to 'zencart_user'@'localhost' identified by 'password1';
flush privileges;
exit

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

systemctl restart mysql apache2
systemctl status mysql apache2

Instalar Zen Cart 

Una vez que se cumplan todos los requisitos del sistema para la instalación de su tienda en línea de comercio electrónico, visite la página de descarga oficial de SourceForge Zen Cart en https://sourceforge.net/projects/zencart/files/ y descargue el archivo comprimido del paquete zip más reciente con la ayuda de la utilidad wget, como se ilustra en el siguiente ejemplo.

wget https://downloads.sourceforge.net/project/zencart/CURRENT%20-%20Zen%20Cart%201.5.x%20Series/zen-cart-v1.5.5f-12312017b.zip

Una vez que finalice la descarga del archivo zip, extraiga el archivo comprimido zip de Zen Cart directamente y enumere los archivos extraídos emitiendo los siguientes comandos. Además, elimine el archivo index.html predeterminado instalado por el servidor web Apache en la ruta webroot y también elimine el archivo info.php creado anteriormente.

rm /var/www/html/index.html 
rm /var/www/html/info.php
unzip zen-cart-v1.5.5f-12312017b.zip
ls

Los archivos de instalación de Zen Cart se encuentran en su directorio de trabajo actual en el directorio zen-cart extraído. Ejecute el comando ls para ver los archivos del directorio zen-cart. Copie todo el contenido del directorio zen-cart-v1 en la ruta raíz del documento de su servidor web emitiendo el siguiente comando.

ls -al zen-cart-v[tab]
cp -rf zen-cart-v1.5.5e-03082017/* /var/www/html/

Cambie el directorio a la raíz del documento del servidor web y emita el siguiente comando para crear los archivos de configuración requeridos por la aplicación Zen Cart para escribir la configuración de la tienda.

cd /var/www/html/
cp includes/dist-configure.php includes/configure.php
cp admin/includes/dist-configure.php admin/includes/configure.php 

A continuación, ejecute los siguientes comandos para otorgar al usuario de tiempo de ejecución de Apache permisos completos de escritura en la ruta raíz web. Use el comando ls para enumerar los permisos para 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/

Ahora, continúe con el proceso de instalación de la tienda en línea de Zen Cart abriendo un navegador y navegue por la dirección IP o el nombre de dominio o el FQDN del servidor a través del protocolo HTTPS. En la primera pantalla de instalación, el instalador de Zen Cart le presentará un resumen de una lista de problemas relacionados con usted que está viendo en la página. Debido a que la aplicación aún no se ha instalado, haga clic en el enlace Haga clic aquí para iniciar el proceso de instalación, como se ilustra en la siguiente imagen.

https://tudominio.tld

En la siguiente pantalla de instalación, el instalador realizará una serie de comprobaciones previas a la instalación en la configuración PHP del servidor y la extensión PHP instalada para determinar si se cumplen todos los requisitos del sistema para instalar la aplicación de comercio electrónico Zen Cart. También verificará si el usuario del tiempo de ejecución HTTP de Apache puede escribir en una serie de directorios desde la ruta webroot, como se muestra en las imágenes a continuación. Después de revisar todas las comprobaciones de las inspecciones del sistema, presione el botón Continuar para continuar con el proceso de instalación.

En la siguiente pantalla, configure su tienda en línea Zen Cart. Primero, marque la casilla de verificación Acuerdo de licencia y verifique la dirección URL del dominio del servidor de administración para redirigir a su nombre de dominio a través del protocolo de aplicación HTTPS. A continuación, marque Habilitar SSL para Storefront en la configuración del catálogo (Storefront) y verifique las direcciones URL del dominio. En el último archivo, verifique si la ruta física de la tienda coincide con la ruta raíz del documento de su servidor web y presione el botón Continuar para continuar con el proceso de instalación.

En la siguiente pantalla de instalación, agregue la dirección de la base de datos MySQL, el nombre y las credenciales creadas anteriormente para la base de datos de Zen Cart. Deje Cargar datos de demostración sin marcar y seleccione el conjunto de caracteres de su base de datos en UTF8 y el prefijo en zen_. Elija el Método de caché SQL para archivar y presione el botón Continuar para pasar a la siguiente etapa de instalación.

A continuación, agregue una cuenta de superusuario de administrador para su tienda en línea Zen Cart y una dirección de correo electrónico para la cuenta de administrador. Asegúrese de anotar la contraseña de la tienda de administración y el nombre del directorio de administración y presione el botón Continuar para iniciar el proceso de instalación.

Una vez completada la instalación, el instalador mostrará dos botones para acceder al panel de administración respaldado por Zen Cart, que se usará para administrar su tienda en línea, y el enlace de la tienda Storefront, que se mostrará a sus clientes.

Para visitar su tienda en línea, primero presione el botón Ir a su tienda y la interfaz de su aplicación de comercio electrónico se mostrará en su navegador como se ilustra en la siguiente captura de pantalla. También puede visitar la interfaz de la tienda navegando a la dirección IP de su servidor o nombre de dominio a través del protocolo HTTPS.

https://www.tudominio.tld

Antes de iniciar sesión en el panel de administración respaldado por su tienda, primero regrese a la consola del servidor y emita el siguiente comando para eliminar el directorio de instalación de Zen Cart.

rm -rf /var/www/html/zc_install/

Para administrar su tienda en línea Zen Cart, presione el enlace Admin Backend que lo redirigirá al backend de la tienda. Utilice las credenciales de administrador configuradas durante el proceso de instalación para iniciar sesión en el panel back-end de Zen Cart, como se muestra en la siguiente captura de pantalla.

También puede visitar el panel web de administración de Zen Cart navegando a su servidor Dirección IP o nombre de dominio a través del protocolo HTTPS a la cadena aleatoria de la dirección URL del directorio de administración configurada durante el proceso de instalación.

https://yourdomain.tld/random_string/login.php

Después de iniciar sesión en el panel de administración respaldado por Zen Cart, complete el asistente de configuración inicial con los detalles de su propia tienda y comience el botón Actualizar para escribir los cambios, como se muestra en la siguiente captura de pantalla.

Para proteger la aplicación Zen Cart, regrese a la consola del servidor y emita los siguientes comandos para cambiar los permisos para el archivo include/configure.php y para que el archivo configure.php del directorio de administración sea propiedad de la cuenta raíz.

chown root:root /var/www/html/includes/configure.php 
chown root:root /var/www/html/brOil-QUl-cHain/includes/configure.php

Finalmente, para obligar a los visitantes a navegar por el sitio web frontend de Zen Cart y acceder de forma segura a la interfaz backend a través del protocolo HTTPS que encripta el tráfico entre el servidor y los navegadores del cliente, regrese a la terminal de su servidor y cree un nuevo archivo .htaccess emitiendo lo siguiente comando.

nano /var/www/html/.htaccess

Cambie la configuración de PHP para que coincida con los recursos de su propio servidor y agregue las reglas de redirección HTTPS como se muestra en el siguiente extracto del archivo .htaccess :

# Modify PHP settings
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 999M
php_value post_max_size 999M

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

¡Eso es todo! Ha instalado y configurado con éxito la aplicación de comercio electrónico Zen Cart en Debian 9.2. Sin embargo, debido a que el servidor Apache HTTP utiliza un certificado autofirmado que no es de confianza para cifrar el tráfico entre el servidor y los navegadores de los visitantes, siempre se generará y mostrará un mensaje de advertencia en sus navegadores. Esta advertencia es mala para su negocio de tienda en línea. En este caso, debe 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 con respecto a la aplicación Zen Cart, visite la página de documentación en la siguiente dirección:https://www.zen-cart.com/wiki/index.php/Main_Page


Debian
  1. Cómo instalar PHP 7.4/7.3/7.2/7.1 en Debian 10/Debian 9

  2. Cómo instalar PHP 8.0 en Debian 11

  3. Cómo instalar PHP 8.0 en Debian 10 / Debian 9

  4. Cómo instalar PHP 7.4 en Debian 10

  5. Cómo instalar PHP 8 en Debian 10

Cómo instalar SuiteCRM en Debian 9

Cómo instalar PHP 8 en Debian 11

Cómo instalar PHP Composer en Debian 11

Cómo instalar MySQL 8 en Debian 10

Cómo instalar el servidor LAMP en Debian 9

Cómo instalar PHP 5.6 en Ubuntu 16.04 y Debian 9