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
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.
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.
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.
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.
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;
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.
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.
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.
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
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.
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.
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.
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.
Si tienes un usuario y una contraseña de administrador adecuados, se te mostrará el panel de administración de 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.
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.