GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar PrestaShop en Debian 9

En esta guía, le mostraremos cómo instalar y configurar la última versión de Prestashop en la versión Debian 9.1 para crear su carrito de compras en línea gratuito.

Prestashop es una plataforma gratuita de gestión de contenido de comercio electrónico de código abierto escrita en lenguaje de programación PHP que a menudo se implementa en Linux bajo servidores web Apache/Nginx, PHP y sistema de gestión de base de datos MySQL/MariaDB. Prestashop CMS es muy utilizado hoy en día para crear tiendas en línea para diferentes negocios y publicitar y vender servicios y mercancías.

Requisitos

  • Instalación mínima de Debian 9 en una máquina completa o en un servidor privado virtual.
  • Una dirección IP estática configurada para una de las tarjetas de interfaz de red de su sistema.
  • privilegios de raíz sudo 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.

Configuración inicial

Antes de comenzar a instalar y configurar Prestashop desde la fuente 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 upgrade

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

apt install wget bash-completion zip unzip

A continuación, configure el nombre de su sistema ejecutando el siguiente comando. Reemplace su variable de nombre de host en consecuencia.

hostnamectl set-hostname shop

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

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

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

systemctl reboot

Prestashop 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 archivos PHP de Prestashop, se debe instalar y operar en el servidor un servidor web, como un servidor HTTP Apache, y una puerta de enlace de procesamiento PHP. Para instalar el servidor web Apache y el intérprete de PHP junto con todos los módulos de PHP necesarios para que Prestashop funcione correctamente, emita el siguiente comando en la consola de su servidor.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-xml php7.0-gd php7.0-json php7.0-zip php7.0-intl php7.0-mcrypt php7.0-curl php7.0-intl php7.0-opcache

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 root.

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 ss comando, que se instala automáticamente de forma predeterminada en Debian 9.

ss -tlpn

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 iptables reglas sin procesar 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 de Prestashop.

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

Luego, habilite y aplique los siguientes módulos de Apache requeridos por Prestashop CMS para ejecutarse correctamente, emitiendo el siguiente comando.

a2enmod rewrite
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 imagen a continuación. Si no conoce la dirección IP de su máquina, ejecute ifconfig o ip a comandos para revelar la dirección IP de su servidor.

http://your_domain.tld

Para instalar y acceder al panel de administración web de Prestashop 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 DocumentRoot directiva, 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 /etc/apache2/sites-enabled/000-default.conf para editar y agregar 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 DocumentRoot declaración 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. Acepte la advertencia para continuar y ser redirigido a la página web predeterminada de Apache.

systemctl restart apache2

https://tudominio.tld

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 la zona horaria de PHP la configuración está configurada correctamente y coincide con la ubicación geográfica de su sistema. Abra /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
allow_url_fopen = On
memory_limit = 128 M
upload_max_file_size = 64M
date.timezone = Europe/London

Aumentar memoria_límite como adecuada para admitir archivos adjuntos de gran tamaño y reemplazar la time.zone variable de acuerdo a su tiempo físico consultando la lista de zonas horarias proporcionada por PHP docs 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 si verifica 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 fecha configuración para verificar la configuración de la zona horaria de php.

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

https://dominio.tld/info.php

Prestashop almacena diferentes configuraciones, como usuarios, sesiones, contactos, productos, catálogos y otros, en una base de datos RDBMS. En esta guía, configuraremos Prestashop 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 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 netstat. comando.

netstat –tlpn | grep mysql

Luego, inicie sesión en la consola 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 proporcionada por los paquetes de instalación de los repositorios de extensión de Debian. Mientras se ejecuta, el script hará 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. Use la salida del script a continuación, 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, 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. Si se proporciona la contraseña, el proceso de inicio de sesión debe otorgarse a la consola MySQL, como se muestra en la siguiente captura de pantalla.

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

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

mysql –u root -p
create database my_shop;
grant all privileges on my_shop.* to 'shop_user' identified by 'shop_password';
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 PrestaShop

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 lanzamientos de Prestashop en GitHub https://github.com/PrestaShop/PrestaShop/releases y descargue el último archivo comprimido del paquete zip emitiendo la utilidad wget, como ilustrado en el siguiente ejemplo.

wget https://github.com/PrestaShop/PrestaShop/releases/download/1.7.2.3/prestashop_1.7.2.3.zip

Una vez finalizada la descarga del archivo zip, extraiga el archivo zip de Prestashop directamente a la raíz del documento de su servidor web 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 prestashop_1.7.2.3.zip -d /var/www/html/
ls /var/www/html/

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. Usar ls Comando para enumerar los permisos para los archivos de instalación de Prestashop ubicados en el directorio /var/www/html/.

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

Continúe con la instalación de Prestashop CMS abriendo un navegador y navegue por la dirección IP o el nombre de dominio de su servidor a través del protocolo HTTPS. En la primera pantalla de instalación, la secuencia de comandos del instalador de Prestashop desplegará el contenido del archivo prestashop.zip desde la ruta raíz web del servidor web, como se muestra en la imagen a continuación.

https://yourdomain.tld

Una vez finalizada la extracción, puede cambiar a la línea de comando y enumerar el contenido del directorio /var/www/html/ para ver todos los archivos extraídos de Prestashop.

ls -la /var/www/html/

En la siguiente pantalla, el instalador de Prestashop mostrará una pantalla de bienvenida y le pedirá que elija el idioma de instalación para continuar con el proceso de instalación. Elija su idioma y presione el botón Siguiente para continuar con el siguiente paso.

En la siguiente pantalla de instalación, marque "Acepto los términos de la licencia" y presione el botón Siguiente para continuar, como se ilustra en la imagen a continuación.

El instalador de Prestashop ahora realizará una serie de comprobaciones para determinar la compatibilidad con su sistema y entorno y enumerará posibles errores, si los encuentra. Si el entorno de su sistema es compatible con la instalación de PrestaShop, debería mostrarse un mensaje verde en su página web, como se muestra en la siguiente captura de pantalla. Nuevamente, presione el botón Siguiente para continuar con el proceso de instalación.

En la siguiente pantalla, agregue la información requerida sobre su tienda, como el nombre de la tienda, la actividad principal, el país donde está registrada su tienda y los detalles de la cuenta. Proporcione una dirección de correo electrónico para acceder al panel web de fondo de Prestashop y una contraseña segura que se utilizará para esta cuenta, como se muestra en la siguiente captura de pantalla. Cuando termine, presione el botón Siguiente para continuar.

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 Prestashop presione 'Probar la conexión de su base de datos ahora' botón. Si la conexión a la base de datos MySQL es exitosa, presione el botón Siguiente para iniciar el proceso de instalación.

Espere unos minutos para que el instalador complete la base de datos con toda la información requerida y el proceso de instalación se complete, como se muestra en las capturas de pantalla a continuación.

Una vez completada la instalación, el instalador mostrará la información de inicio de sesión del panel de administración web respaldado y los hipervínculos necesarios para acceder a Prestashop Backend Office , que se utilizará para administrar su tienda en línea y Front Office de tu tienda, que se mostrará a tus clientes.

Asegúrese de presionar el botón Administrar Back Office para acceder al backend de la tienda. Debe anotar o marcar la dirección de la Oficina Virtual de la tienda para iniciar sesión en el panel de administración web desde otros navegadores en el futuro.

Al intentar iniciar sesión en Back Office, un mensaje de advertencia, como se muestra en la imagen a continuación, le informará que debe eliminar el directorio de instalación de la ruta webroot de su dominio.

Para poder iniciar sesión en el panel de administración respaldado por Prestashop, regrese a la consola de su servidor y ejecute el siguiente comando para eliminar el directorio de instalación de Prestashop.

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

Luego, vuelva a cargar la página del Back Office de Prestashop e inicie sesión en el panel de administración con la configuración de credenciales durante el proceso de instalación, como se ilustra en la siguiente captura de pantalla.

En el primer inicio de sesión, se mostrará un mensaje de bienvenida en el navegador. Presionar el botón de inicio lo redirigirá al Catálogo desde donde puede comenzar a agregar su primer producto, como se muestra en la siguiente captura de pantalla.

Para visitar la página web de la interfaz de Prestashop, simplemente escriba su nombre de dominio en el navegador y será redirigido automáticamente a la página inicial, como se describe en la siguiente captura de pantalla.

Sin embargo, por ahora, solo se puede acceder a la tienda de forma no segura a través del protocolo HTTP sin cifrar. Para habilitar la compatibilidad con HTTPS en Prestashop, inicie sesión en el panel de Back Office y vaya a Configurar -> Parámetros de la tienda -> General y haga clic en Haga clic aquí para verificar si su tienda es compatible con HTTPS enlace, como se ilustra en la imagen de abajo.

Después de realizar las pruebas de SSL, cambie Habilitar SSL botón a SÍ y desplácese hacia abajo hasta la parte inferior de la página y presione Guardar botón, para aplicar la configuración. Sin embargo, esta configuración hasta ahora habilita el soporte SSL solo para el enlace de Back Office. Los clientes que visitarán el nombre de dominio de su tienda serán dirigidos a través de conexiones sin cifrar.

Para proteger el tráfico de visitantes en su dominio, cambie Habilitar SSL en todas las páginas botón a Sí, como se muestra en la imagen de abajo y desplácese hacia abajo y presione Guardar en la parte inferior de la página para aplicar la configuración.

Para probar si los clientes ahora son redirigidos automáticamente para visitar su dominio a través de una conexión segura a través del protocolo HTTPS, actualice la página de interfaz de Prestashop o escriba su nombre de dominio en el navegador. Se debe acceder ahora al nombre de dominio de su tienda a través del protocolo HTTP, como se ilustra en la imagen a continuación.

¡Eso es todo! Ha instalado y configurado con éxito PrestaShop en Debian 9.1. Sin embargo, debido a que su servidor Apache HTTP utiliza certificados autofirmados para cifrar el tráfico entre el servidor y los navegadores de los visitantes, siempre se generará un mensaje de advertencia y se mostrará en sus navegadores cuando visiten la tienda por primera vez. 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 Prestashop, visite la página de documentación en la siguiente dirección:http://doc.prestashop.com/display/PS17/Installing+PrestaShop


Debian
  1. Cómo instalar el servidor Redis en Debian 11

  2. Cómo instalar MySQL 8.0/5.7 en Debian 11/Debian 10

  3. Cómo instalar Java 17 en Debian 11

  4. Cómo instalar ProFTPD en Debian 8

  5. Cómo instalar el servidor MySQL en Debian 9

Cómo instalar OpenOffice en Debian 10

Cómo instalar FastPanel en Debian 11

Cómo instalar I2P en el servidor Debian:

Cómo instalar VNC en Debian 10

Cómo instalar el servidor VNC en Debian 11

Cómo instalar PrestaShop en Debian 11