Cómo instalar Prestashop con Apache y Let’s Encrypt SSL gratis en Debian 12

Prestashop es una solución gratuita de comercio electrónico de código abierto escrita en PHP. Te permite alojar y crear tiendas online tú mismo y hacer crecer tu negocio en Internet. Prestashop es una solución de comercio electrónico totalmente personalizable y repleta de funciones que te permite crear sitios web de comercio electrónico completos. Actualmente, más de 250.000 tiendas online de todo el mundo utilizan Prestashop, que está disponible en 65 idiomas.

En este tutorial, te guiaré paso a paso en la instalación de PrestaShop en un servidor Debian 12. Instalarás PrestaShop con la pila LAMP (Apache2, MariaDB y PHP) y luego asegurarás tu instalación de PrestaShop con certificados SL/TLS a través de Letsencrypt.

Requisitos previos

Antes de empezar, ten preparado lo siguiente:

  • Un servidor Debian 12.
  • Un usuario no root con privilegios de administrador.
  • Un nombre de dominio apuntando a la dirección IP del servidor.

Instalación de dependencias

PrestaShop es una plataforma de código abierto para crear una tienda online escrita en PHP con MariaDB/MySQL como base de datos. En el siguiente paso, instalarás las dependencias para PrestaShop, que incluyen paquetes LAMP Stack (Apache2, MariaDB y PHP) con algunas extensiones PHP adicionales. Instalarás específicamente PHP 8.1 a través de un repositorio de terceros porque el PrestaShop actual aún no soporta PHP 8.2.

En primer lugar, ejecuta el siguiente comando para añadir un repositorio PHP de terceros y una clave GPG a tu sistema Debian.

sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

Actualiza y refresca el índice de paquetes de Debian ejecutando el siguiente comando apt.

sudo apt update

configurar repositorio

Una vez actualizado el repositorio, instala las dependencias para PrestaShop utilizando el siguiente comando. Esto instalará los paquetes LAMP Stack (Apache2, MariaDB, PHP 8.1), Certbot, el plugin Certbot para Apache y las extensiones PHP adicionales que necesita PrestaShop.

sudo apt install apache2 mariadb-server certbot python3-certbot-apache php8.1 php8.1-curl php8.1-xmlrpc php8.1-soap php8.1-intl php8.1-zip php8.1-cli php8.1-mysql php8.1-common php8.1-opcache php8.1-memcached php8.1-bcmath php8.1-gd php8.1-mbstring php8.1-xml php8.1-gmp php8.1-imagick unzip

Escribe y para proceder con la instalación.

instalar deps

Una vez instaladas las dependencias, verifica cada una de ellas mediante el siguiente comando.

Verifica el servicio apache2 para asegurarte de que se está ejecutando ejecutando el siguiente comando systemctl.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Se mostrará el siguiente resultado, que confirma que el servicio apache2 se está ejecutando y está habilitado.

comprobar apache2

Ahora verifica el servicio mariadb utilizando el siguiente comando.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

El resultado que se muestra a continuación confirma que el servicio mariadb se está ejecutando y está habilitado.

comprobar mariadb

Por último, ejecuta el siguiente comando para verificar la versión de PHP y la lista de extensiones habilitadas.

php -v
php -m

Deberías ver que PHP 8. 1 está instalado en tu máquina Debian con la lista de extensiones habilitadas.

comprobar php

Configurar el servidor MariaDB

Ahora que has instalado las dependencias para PrestaShop, el siguiente paso es asegurar tu instalación del servidor MariaDB mediante la utilidad mariadb-secure-installation. A continuación, tendrás que crear una nueva base de datos y un nuevo usuario para PrestaShop.

Ejecuta el siguiente comando mariadb-secure-installation para proteger tu instalación de MariaDB Server.

sudo mariadb-secure-installation

Introduce Y para confirmar y aplicar la nueva configuración, o n para No, y rechazarla. A continuación de las configuraciones del Servidor MariaDB que se te pedirán:

  • ¿Cambiar a autenticación unix_socket? Introduce n y pulsa ENTER. El usuario raíz por defecto de MariaDB ya está protegido. opcionalmente, también puedes habilitarlo escribiendo y para sí.
  • ¿Cambiar la contraseña de root? Introduce y para confirmar y establecer tu nueva contraseña de root de MariaDB.
  • ¿Eliminar usuario anónimo? Introduce y para confirmar.
  • ¿Deshabilitar el inicio de sesión de root de forma remota? Introduce y para confirmar. Sólo se permitirá la conexión local si utilizas el usuario raíz de MariaDB.
  • ¿Quitar la base de datos de prueba y el acceso a ella? Introduce y para confirmar y eliminar la base de datos por defecto «test».
  • Por último, introduce y de nuevo para recargar todos los privilegios de las tablas en tu servidor MariaDB y aplicar los nuevos cambios.

A continuación, ejecuta el siguiente comando de cliente mariadb para iniciar sesión en el servidor MariaDB. Introduce tu contraseña de root de MariaDB cuando se te solicite.

sudo mariadb -u root -p

Una vez conectado, ejecuta las siguientes consultas para crear una nueva base de datos prestashopdb, un usuario prestashop, con la contraseña es password. La nueva base de datos MariaDB y el usuario aquí serán el usuario para la instalación de PrestaShop.

CREATE DATABASE prestashopdb;
GRANT ALL PRIVILEGES ON prestashopdb.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

crear base de datos y usuario

A continuación, ejecuta la siguiente consulta para verificar el usuario prestashop de MariaDB.

SHOW GRANTS FOR 'prestashop'@'localhost';

La salida que se muestra a continuación revela que el usuario prestashop de MariaDB tiene permiso para acceder a la base de datos prestashopdb.

comprobar privilegios de usuario

Por último, escribe quit para salir del servidor MariaDB.

Configurar PHP

Tras configurar el Servidor MariaDB, configurarás tu instalación de PHP modificando el archivo php.ini. A continuación, también verificarás tu entorno para asegurarte de que todo lo relacionado con la configuración de PHP cumple con los requisitos de PrestaShop.

Abre la configuración PHP por defecto /etc/php/8.1/apache2/php.ini utilizando el siguiente comando del editor nano.

sudo nano /etc/php/8.1/apache2/php.ini

Cambia la configuración que aparece a continuación y asegúrate de ajustar los parámetros date.timezone y memory_limit con el entorno de tu servidor.

date.timezone = Europe/Amsterdam
max_execution_time = 130
memory_limit = 256M
allow_url_fopen = On
allow_url_include = Off
post_max_size = 128M
upload_max_filesize = 128M
max_input_vars = 5000

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando systemctl para reiniciar el servicio apache2 y aplicar los cambios.

sudo systemctl restart apache2

Ahora que ya has configurado PHP, comprueba que el entorno de tu servidor está preparado para la instalación de PrestaShop. Para ello, utiliza el comprobador de entorno proporcionado por PrestaShop.

Dirígete al directorio /var/www/html y descarga el script de comprobación del entorno mediante el siguiente comando wget. Verás el archivo v1 .1.tar.gz en tu directorio de trabajo actual.

cd /var/www/html
wget https://github.com/PrestaShop/php-ps-info/archive/refs/tags/v1.1.tar.gz

Extrae el archivo v1.1 .tar. gz y cambia el nombre del directorio extraído a check-ps.

tar -xf v1.1.tar.gz
mv php-ps-info-1.1 check-ps

Por último, abre tu navegador web y visita la dirección IP del servidor seguida de la ruta check-ps para acceder al script de comprobación del entorno de PrestaShop, como http://192.168.10.15/check-ps/phppsinfo.php.

Introduce el nombre de usuario predeterminado prestashop y la contraseña prestashop, y haz clic en Iniciar sesión.

comprobación de acceso-ps

Asegúrate de que tus dependencias, configuraciones PHP y extensiones PHP cumplen los requisitos de PrestaShop. Si no es así, puedes ajustar tu configuración según las recomendaciones de la página.

ps-checker

Descargar Prestashop

Ahora que el servidor MariaDB y PHP están configurados, el siguiente paso es descargar el código fuente de PrestaShop y configurar el directorio de instalación con el permiso y la propiedad adecuados.

Mueve tu directorio de trabajo a /var/www/ y descarga el código fuente de PrestaShop mediante el siguiente comando wget. Asegúrate de consultar la página de versiones de PrestaShop para obtener la última versión de PrestaShop.

cd /var/www/
wget https://github.com/PrestaShop/PrestaShop/releases/download/8.1.2/prestashop_8.1.2.zip

Ahora extrae el código fuente de PrestaShop mediante el comando unzip que aparece a continuación. Deberías ver el código fuente de PrestaShop dentro del archivo zip prestashop.zip.

unzip prestashop_8.1.2.zip

Extrae el archivo prestashop.zip utilizando el comando unzip que aparece a continuación en el directorio de destino /var/www/prestashop. El código fuente de PrestaShop se extraerá en el directorio prestashop, por lo que tu directorio de instalación de Prestashop debe ser /var/www/prestashop.

unzip prestashop.zip -d /var/www/prestashop

Por último, ejecuta el siguiente comando para establecer la propiedad y el permiso adecuados para el directorio de instalación de PrestaShop /var/www/prestashop. La propiedad debe ser www-data con el permiso u+rw, lo que significa que el propietario puede leer y escribir en el directorio de destino.

sudo chown -R www-data:www-data /var/www/prestashop
sudo chmod u+rw /var/www/prestashop

Configurar el host virtual Apache2

En el siguiente paso, crearás una nueva configuración de host virtual Apache2 que se utilizará para ejecutar prestaShop. Así que antes de eso, asegúrate de que tienes tu nombre de dominio apuntando a una dirección IP del servidor.

Para empezar, ejecuta el siguiente comando para activar el módulo de reescritura de Apache.

sudo a2enmod rewrite

activar reescritura

A continuación, crea una nueva configuración de host virtual /etc/apache2/sites-available/prestashop. conf utilizando el comando editor nano.

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

Introduce la siguiente configuración y asegúrate de cambiar el nombre de dominio dentro del parámetro ServerName.

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/prestashop
ServerName hwdomain.io

<Directory /var/www/prestashop>
# enable the .htaccess rewrites
AllowOverride All
Options +Indexes
Require all granted

# Disable back office token
# SetEnv _TOKEN_ disabled
</Directory>

ErrorLog /var/log/apache2/prestashop.error.log
CustomLog /var/log/apache2/prestashop.access.log combined
</VirtualHost>

Guarda y cierra el archivo cuando hayas terminado.

A continuación, ejecuta el siguiente comando para activar el archivo de host virtual prestashop .conf y verifica tu configuración de Apache.

sudo a2ensite prestashop.conf
sudo apachectl configtest

Si la configuración de Apache es correcta, aparecerá el mensaje Sintaxis OK.

configuración vhost

Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio apache2 y aplicar los cambios.

sudo systemctl restart apache2

Por último, genera los certificados SSL/TLS para tu nombre de dominio PrestaShop ejecutando el siguiente comando certbot. Asegúrate de cambiar la dirección de correo electrónico y el nombre de dominio con tus datos.

sudo certbot --apache --agree-tos --no-eff-email  --redirect --hsts --staple-ocsp --email [email protected] -d hwdomain.io

Una vez finalizado el proceso, tu archivo de host virtual prestashop.conf se configurará automáticamente con HTTPS y tus certificados SSL/TLS estarán disponibles en el directorio /etc/letsencrypt/live/hwdomain.io.

Instalar PrestaShop a través de la línea de comandos

Llegados a este punto, ya puedes finalizar la instalación de PrestaShop a través de la interfaz web o de la línea de comandos. En este ejemplo, finalizarás la instalación de PrestaShop a través de la línea de comandos.

Ve al directorio de instalación de PrestaShop /var/www/prestashop/install.

cd /var/www/prestashop/install

Ejecuta el script index_cli. php como el siguiente para iniciar la instalación de PrestaShop a través de la línea de comandos. Asegúrate de cambiar los detalles del nombre de dominio, el host de la base de datos MariaDB, el nombre, el nombre de usuario y la contraseña. Asegúrate también de cambiar la dirección de correo electrónico y la contraseña que se utilizarán como admin para PrestaShop.

sudo -u www-data php index_cli.php --domain=hwdomain.io --db_server=127.0.0.1 --db_name=prestashopdb --db_user=prestashop --db_password=password --prefix=myps_ [email protected] --password=Passw0rd

Una vez finalizada la instalación, se mostrará la salida«Instalación correcta» como la siguiente.

instalar prestashop mediante línea de comandos

A continuación, ejecuta el siguiente comando para configurar los permisos adecuados para algunos directorios de PrestaShop. Esto permitirá a www-data como propietario leer y escribir en esos directorios de destino.

sudo chmod u+rw /var/www/prestashop/var/cache
sudo chmod u+rw /var/www/prestashop/var/logs
sudo chmod u+rw /var/www/prestashop/img
sudo chmod u+rw /var/www/prestashop/mails
sudo chmod u+rw /var/www/prestashop/modules
sudo chmod u+rw /var/www/prestashop/translations
sudo chmod u+rw /var/www/prestashop/upload
sudo chmod u+rw /var/www/prestashop/download
sudo chmod u+rw /var/www/prestashop/app/config
sudo chmod u+rw /var/www/prestashop/app/Resources/translations

Ahora ejecuta el siguiente comando para eliminar el directorio /var/www/prestashop/install y asegurar tu instalación de PrestaShop.

sudo rm -rf /var/www/prestashop/install

A continuación, abre tu navegador web y visita tu nombre de dominio PrestaShop, como http://hwdomain.io/. Una vez que la instalación se haya realizado correctamente, deberías ser redirigido a una conexión HTTPS segura, y deberías ver la página de inicio predeterminada de tu instalación de PrestaShop.

página de inicio de prestashop

A continuación, visita el nombre de dominio de PrestaShop seguido de la ruta del administrador, como https://hwdomain.io/admin/. Si todo va bien, deberías ser redirigido a la página de inicio de sesión de PrestaShop. Además, puedes ver que la ruta URL por defecto de PrestaShop ha cambiado a admin051rgjztgtkvgcie6dp.

Introduce tu usuario y contraseña de administrador y haz clic en Iniciar sesión.

login prestashop

Si tienes un usuario y una contraseña de administrador adecuados, se te mostrará el panel de administración de PrestaShop.

tablero prestashop

Otra consideración, puedes ejecutar el siguiente comando para comprobar el login admin de PrestaShop.

ls /var/www/prestashop

El resultado muestra que la página de administración de PrestaShop está disponible en admin051rgjztgtkvgcie6dp.

comprobar ps admin

Conclusión

Para concluir, ya has instalado correctamente PrestaShop en Debian 12 paso a paso. Has instalado PrestaShop 8 con LAMP Stack (Apache2, MariaDB y PHP) y has asegurado la instalación de PrestaShop con certificados SSL/TLS. Además, también has aprendido a iniciar la instalación de PrestaShop mediante la línea de comandos. Ahora puedes añadir nuevos temas y extensiones adicionales para ampliar tu instalación de PrestaShop.

Scroll al inicio