En este artículo veremos cómo instalar PrestaShop en Debian 10 Buster paso a paso, de modo que tras completar esta guía tengas instalada tu primera tienda virtual en tu servidor o VPS Debian.
Tabla de contenidos
Antes de instalar PrestaShop en Debian 10 Buster
Para completar esta guía de instalación de PrestaShop en Debian 10 Buster necesitas cumplir una serie de requerimientos mínimos:
- Un sistema Debian 10 Buster actualizado.
- Un entorno tipo LAMP o, lo que es lo mismo, servicio web con PHP y base de datos MariaDB/MySQL.
- Acceso seguro al servicio web.
- El paquete unzip.
- Acceso a terminal de comandos como root o usuario con privilegios de sudo.
- Conexión a Internet.
Si aún no dispones de un entorno como el descrito, tal vez te interese consultar nuestras guías de instalación LAMP en Debian 10 Buster e instalación de Apache en Debian 10 Buster (para configurar el acceso seguro).
Cómo descargar PrestaShop en Debian 10 Buster
Tenemos que descargar PrestaShop para Debian 10 desde la web oficial del proyecto puesto que no hay paquetes disponibles en los repositorios de la distribución.
No encontraremos una zona de descargas como tal, en su lugar debemos seguir el enlace del botón «Crear mi tienda» y aceptar las condiciones del servicio para habilitar la descarga:
Al pulsar el botón de descarga esta se inicia automáticamente, no mostrándose el enlace. Si navegas en el mismo sistema Debian 10 en el que vas a hacer la instalación de PrestaShop no habrá problema, pero en caso contrario tendrás que cargar este paquete en el sistema de algún modo.
En mi caso, realizaré la descarga desde consola mediante el comando wget, usando el enlace a la versión disponible en el momento de escribir esta guía:
~$ wget https://download.prestashop.com/download/releases/prestashop_1.7.8.0.zip
Cómo instalar PrestaShop en Debian 10 Buster
A la hora de instalar PrestaShop en Debian 10 Buster tienes varias opciones para integrarlo en tu servidor como:
- La página web por defecto.
- Un servidor virtual propio.
- Parte de la página web por defecto o de un servidor virtual.
En esta guía, por simplicidad, optaremos por integrar PrestaShop como parte de la página web por defecto del servidor Debian 10.
En Debian 10 la página web por defecto se aloja en /var/www/html/, por tanto será ahí donde instalemos los archivos de PrestaShop, en una subcarpeta que podemos llamar, por ejemplo, tienda/.
Pero antes de realizar la instalación propiamente dicha, debemos realizar una serie de tareas y preparativos para que posteriormente el proceso de instalación fluya sin problemas.
Preparando la base de datos
PrestaShop, como muchas otras aplicaciones complejas, se apoyará sobre el motor de bases de datos instalado en nuestro servidor Debian 10. Necesita una base de datos y el correspondiente usuario para manejarla.
En este ejemplo usamos MariaDB, así que conectaremos con el cliente mysql y algún usuario administrador para crear la base y el usuario:
~$ mysql -u root -p
Creamos la nueva base de datos:
> create database prestashop charset utf8mb4 collate utf8mb4_unicode_ci;
En MySQL 8 creamos el usuario especificando el plugin de acceso:
> create user prestashop@localhost identified with mysql_native_password by 'XXXXXXXX';
Pero en MariaDB o MySQL 5 creamos el usuario de forma más simple:
> create user prestashop@localhost identified by 'XXXXXXXX';
Sea como sea, concedemos al usuario los correspondientes privilegios sobre la base:
> grant all privileges on prestashop.* to prestashop@localhost;
Hecho todo esto sólo queda salir del cliente:
> exit
Preparando PHP
Para su funcionamiento, PrestaShop requiere la presencia de ciertas extensiones de PHP, como son curl, gd, intl, xml y zip. Por tanto, nos aseguraremos de su instalación en el sistema, para lo que antes actualizaremos las listas de paquetes de los repositorios:
~$ sudo apt update
E instalamos los paquetes necesarios con apt, en el caso de usar la versión nativa de PHP en Debian 10:
~$ sudo apt install -y php-apcu php-bcmath php-curl php-gd php-imagick php-intl php-mbstring php-memcached php-xml php-zip
Si usamos una versión concreta del repositorio alternativo, tendremos que especificar el número de versión en el nombre de los paquetes; por ejemplo, para la 7.4:
~$ sudo apt install -y php7.4-apcu php7.4-bcmath php7.4-curl php7.4-gd php7.4-imagick php7.4-intl php7.4-mbstring php7.4-memcached php7.4-xml php7.4-zip
Preparando el servicio web
El sistema de URLs de PrestaShop se basa en la reescritura de las mismas, por lo que es necesario tener instalado el módulo Rewrite en Apache. Nos aseguraremos de que este módulo esté presente en la configuración de Apache con el comando a2enmod:
~$ sudo a2enmod rewrite
Crearemos además una configuración personalizada para PrestaShop:
~$ sudo nano /etc/apache2/sites-available/prestashop.conf
Como contenido, permitiremos el uso de archivos .htaccess y realizaremos ajustes de PHP específicos para PrestaShop:
<Directory /var/www/html/tienda> AllowOverride all php_value max_input_vars "5000" php_value memory_limit "256M" php_value post_max_size "128M" php_value upload_max_filesize "128M" </Directory>
Guardamos el archivo y habilitamos la nueva configuración:
~$ sudo a2ensite prestashop.conf
Finalmente, reiniciamos el servidor web para que tanto las configuraciones de PHP como el módulo que acabamos de activar entren en funcionamiento:
~$ sudo systemctl restart apache2
Preparando la carpeta para PrestaShop
Con todos los anteriores preparativos terminados pasamos a la instalación de los archivos de PrestaShop, contenidos en el paquete que descargamos anteriormente.
Descomprimiremos el paquete directamente en su ubicación final utilizando el comando unzip:
~$ sudo unzip prestashop_1.7.8.0.zip -d /var/www/html/tienda/
Como PrestaShop necesita escribir en su propio directorio de instalación podemos cambiar el propietario de este directorio y su contenido al usuario con el que corre el servicio web (www-data en el caso de Apache):
~$ sudo chown -R www-data: /var/www/html/tienda/
Cómo instalar PrestaShop en Debian 10 vía web
Es el momento de instalar PrestaShop en Debian 10 mediante su instalador web. Para ello accederemos desde un navegador utilizando la URL adecuada a la forma que hayamos elegido para integrar PrestaShop en el servicio web.
En este ejemplo PrestaShop es parte de un servidor que puede ser accedido a través del dominio debian10.local.lan, por lo que añadiendo el sufijo /tienda/ tendremos una URL válida (http://debian10.local.lan/tienda/):
Tras unas tareas iniciales el instalador nos presenta la primera página de configuración, donde elegiremos el idioma de la instalación:
Hecho esto continuamos y se nos presentarán los términos y condiciones del servicio:
Debemos marcar la casilla de aceptación de términos y condiciones para poder continuar.
Si has seguido correctamente todos los preparativos previos a la instalación, el instalador saltará la página de compatibilidad del sistema, que sólo se muestra si algún requisito previo no está satisfecho.
En la siguiente página debemos rellenar la información general de la página y los datos de la cuenta del administrador:
Si tienes configurado el acceso seguro por HTTPS en el servicio web (algo imprescindible si estás instalando una tienda real) activa la opción SSL para que PrestaShop utilice URLs seguras. Si se trata de una instalación de prueba y no has configurado HTTPS puedes dejarlo desactivado y el sitio funcionará bajo HTTP.
A continuación tendremos que configurar la conexión con el servicio de bases de datos:
Deberás proporcionar el nombre de la base de datos, el usuario y la contraseña que creaste anteriormente. El instalador proporciona un botón para comprobar la conexión con la base de datos, de modo que podremos saber que todo está correcto antes de continuar.
En el siguiente paso se creará toda la infraestructura inicial antes de dejar la tienda lista:
Este paso puede llevar algunos minutos. Al terminar se mostrará el fin de la instalación donde se nos recordarán los datos de acceso:
Un aviso nos informa de que debemos eliminar la carpeta install para continuar. Lo haremos desde consola:
~$ sudo rm -rf /var/www/html/tienda/install/
En la misma página se muestran accesos a la administración de la tienda o a la tienda en sí (como se ve por cualquier visitante).
Cualquiera de las dos opciones se abre en una nueva pantalla. Al entrar en la administración de la tienda se renombra aleatoriamente la página de acceso por motivos de seguridad.
En este ejemplo la URL de acceso pasa de ser http://debian10.local/tienda/admin a algo como http://debian10.local/tienda/adminXXXXXXXXX:
Ten en cuenta este cambio para lo próxima vez que inicies sesión, o guarda esta dirección de acceso en los marcadores de tu navegador. Si alguna vez olvidas cuál es el sufijo /adminXXXXXXXXX/, es fácil averiguarlo ya que es el nombre real de la carpeta admin en el directorio de instalación de PrestaShop:
~$ ls -d /var/www/html/tienda/admin* /var/www/html/tienda/adminXXXXXXXXX
En cualquier caso, una vez iniciada sesión se mostrará un pequeño paseo por la administración de la tienda:
En este paseo aprenderemos a dar de alta el primer producto y a realizar algunas personalizaciones de la tienda. Una vez terminado, ya puedes empezar con todo el trabajo de personalización de tu tienda online.
Conclusión
Ahora que ya sabes cómo instalar PrestaShop en Debian 10 Buster, puedes montar tu tienda online con una de las aplicaciones más afamadas y reconocidas para ello. La instalación puede ser algo laboriosa, pero siguiendo lo pasos de esta guía no deberías encontrar problemas.
Si tienes alguda duda o pregunta, notificación, sugerencia, etc. puedes dejar un comentario.
Y si esta guía de instalación de PrestaShop en Debian 10 Buster te ha servido y quieres agradecérnoslo, puedes ayudarnos con el mantenimiento de este sitio dejando 1 $ de propina con PayPal:
O, si te sientes especialmente agradecido, invitándonos a un café:
¡Gracias!
Actualizado a la versión 1.7.8.0.
En ocasiones da un error después de haber reiniciado el servicio web. El error que nos podría dar es este:
…debian10-1-vm apachectl[3654]: AH00526: Syntax error on line 3 of /etc/apache2/sites-enabled/presta
…debian10-1-vm apachectl[3654]: Invalid command ‘php_value’, perhaps misspelled or defined by a modu
…debian10-1-vm apachectl[3654]: Action ‘start’ failed.
…debian10-1-vm apachectl[3654]: The Apache error log may have more information.
…debian10-1-vm systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
…debian10-1-vm systemd[1]: apache2.service: Failed with result ‘exit-code’.
…debian10-1-vm systemd[1]: Failed to start The Apache HTTP Server.
En mi caso yo lo solucioné incluyendo una librería «libapache2-mod-php«.
Dejo este comentario para ayudar a quien pueda y como nota para mí por si en el futuro me vuelve a pasar este error.
Vamos a ver Noel, en el segundo requerimiento para seguir este tutorial se especifica que debes tener una pila LAMP configurada para poder instalar PrestaShop en Debian 10 Buster, de hecho se ofrece un enlace al tutorial que cubre su instalación. Obviamente no tenías la pila bien configurada y por eso te ha surgido ese error y has tenido que solucinarlo instalando el componente que te faltaba.