¿Por qué PrestaShop en un VPS en lugar de hosting compartido?
El hosting compartido reparte CPU, RAM y conexiones MySQL entre decenas de clientes. PrestaShop genera consultas SQL complejas y carga múltiples hooks PHP en cada página. En hosting compartido estos picos se limitan con cuotas — la tienda se ralentiza o da errores 503 justo cuando hay más tráfico (rebajas, Black Friday). En un VPS dispones de recursos dedicados, acceso root completo y libertad para instalar las extensiones PHP que PrestaShop necesita, activar Redis para la caché de sesión o ElasticSearch para la búsqueda de productos. Los módulos premium funcionan sin fricciones.
Lo que el VPS desbloquea para PrestaShop
- PHP 8.2 sin restricciones — elige la versión exacta que necesitas y actualízala cuando quieras, sin esperar al proveedor.
- Redis para caché de sesiones y objetos — reduce el tiempo de respuesta entre 3 y 5 veces en páginas de catálogo con mucho tráfico.
- ElasticSearch / Meilisearch — búsqueda instantánea en catálogos de más de 10.000 productos, imposible en hosting compartido.
- Acceso root completo y cron sin restricciones — tareas programadas de PrestaShop (pedidos, stock, exportaciones), importaciones masivas CSV, scripts de sincronización ERP.
- Subdominios y multitiendo — una instalación de PrestaShop puede gestionar varias tiendas en dominios distintos desde un solo panel.
- Licencias de módulos independientes — algunos módulos verifican la IP del servidor; una IP dedicada evita conflictos de licencia.
- Snapshots y copias de seguridad automáticas — los VPS de ServOrbit incluyen snapshots programados: un punto de restauración antes de cada actualización importante.
Requisitos técnicos para PrestaShop 8.x
Antes de ejecutar ningún comando, verifica que tu VPS cumple los requisitos oficiales de PrestaShop 8.x (fuente: devdocs.prestashop-project.org). SO: Ubuntu 24.04 LTS (recomendado) o Debian 12. PHP: 8.1 mínimo, 8.2 recomendado; extensiones requeridas: curl, gd, intl, mbstring, zip, xml, mysql, pdo_mysql, bcmath, fileinfo. Base de datos: MySQL 8.0+ o MariaDB 10.6+. RAM: 2 GB mínimo para tiendas con menos de 5.000 productos; 4 GB con ElasticSearch o más de 10.000 referencias. Disco: 5 GB mínimo para la instalación y medios (planifica 20 GB para una tienda activa). Servidor web: Apache 2.4+ con mod_rewrite y .htaccess habilitados. SSL: HTTPS obligatorio desde PrestaShop 1.7.x.
Paso 1 — Instalar Apache, PHP 8.2 y MySQL 8 en Ubuntu 24.04
Conéctate al VPS como root y actualiza los paquetes
apt update && apt upgrade -yInstala Apache y activa los módulos necesarios
apt install -y apache2 && a2enmod rewrite headers expires && systemctl enable --now apache2Añade el PPA de PHP Ondrej (PHP 8.2 no está en los repositorios por defecto de Ubuntu 24.04)
apt install -y software-properties-common && add-apt-repository ppa:ondrej/php -y && apt updateInstala PHP 8.2 y todas las extensiones requeridas por PrestaShop
apt install -y php8.2 php8.2-cli php8.2-common php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-mysql php8.2-xml php8.2-zip php8.2-bcmath php8.2-fileinfo libapache2-mod-php8.2Instala MySQL 8 y securiza la instancia
apt install -y mysql-server && mysql_secure_installationCrea la base de datos y el usuario de PrestaShop
mysql -u root -p -e "CREATE DATABASE prestashop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'psuser'@'localhost' IDENTIFIED BY 'ContraseñaFuerte!'; GRANT ALL PRIVILEGES ON prestashop.* TO 'psuser'@'localhost'; FLUSH PRIVILEGES;"Verifica las versiones instaladas
php8.2 -v && mysql --version && apache2 -v
Paso 2 — Descargar e instalar PrestaShop
Ve al directorio web y descarga PrestaShop 8.x (comprueba la última versión en github.com/PrestaShop/PrestaShop/releases)
cd /var/www && wget https://github.com/PrestaShop/PrestaShop/releases/download/8.1.7/prestashop_8.1.7.zipDescomprime el archivo
apt install -y unzip && unzip prestashop_8.1.7.zip -d prestashop && cd prestashopDescomprime el archivo interno si existe
ls *.zip && unzip prestashop.zip -d . 2>/dev/null || trueEstablece los permisos correctos para Apache
chown -R www-data:www-data /var/www/prestashop && find /var/www/prestashop -type d -exec chmod 755 {} \; && find /var/www/prestashop -type f -exec chmod 644 {} \;Crea el VirtualHost de Apache (sustituye `tienda.example.com` por tu dominio)
nano /etc/apache2/sites-available/prestashop.conf
Pega:Activa el sitio y recarga Apache
a2ensite prestashop.conf && a2dissite 000-default.conf && systemctl reload apache2Una vez completada la instalación, elimina inmediatamente la carpeta `/install`
rm -rf /var/www/prestashop/install
Configurar SSL con Let's Encrypt y Certbot
HTTPS es obligatorio para PrestaShop: el panel de administración bloquea las conexiones no seguras. Instala Certbot, obtén el certificado y deja que se renueve automáticamente.
Obtener y activar un certificado SSL
Instala Certbot con el plugin de Apache
apt install -y certbot python3-certbot-apacheObtén el certificado (sustituye el dominio y el correo)
certbot --apache -d tienda.example.com --email [email protected] --agree-tos --non-interactiveVerifica la renovación automática
certbot renew --dry-run
Certbot añade un timer de systemd automáticamente — no se necesita cron manual.
Optimizar php.ini para PrestaShop
Los valores por defecto de PHP son demasiado conservadores para producción. Edita /etc/php/8.2/apache2/php.ini y ajusta estas directivas clave:
- memory_limit = 256M (mínimo; 512M con módulos pesados)
- upload_max_filesize = 32M (para importar fotos de producto en alta resolución)
- post_max_size = 32M (debe ser ≥ upload_max_filesize)
- max_execution_time = 300 (imprescindible para importaciones CSV de catálogos grandes)
- max_input_vars = 5000 (PrestaShop genera muchos campos de formulario en el back office)
- date.timezone = Europe/Madrid (o tu zona horaria)
Recarga Apache tras la edición: systemctl reload apache2.
Configurar PrestaShop tras la instalación
Una vez en el back office (/admin<hash>), realiza estos ajustes esenciales: desactiva el modo debug (Parámetros avanzados › Rendimiento › Modo debug = NO); activa la caché Smarty con 'Recompilar plantillas solo cuando los archivos cambien'; activa las URL amigables (Parámetros de la tienda › Tráfico y SEO › URL amigable = SÍ) y regenera el .htaccess; configura el módulo Redis en 127.0.0.1:6379 si está instalado. Módulos esenciales a activar de inmediato: cabeceras de seguridad, reCAPTCHA, Google Analytics GA4.
Protege el back office /admin<hash> añadiendo una restricción por IP en Apache mediante un bloque <Location> con Require ip TU.IP.FIJA. Con IP dinámica, añade autenticación HTTP básica como segunda capa: crea el archivo con htpasswd -c /etc/apache2/.htpasswd adminuser.
Errores frecuentes y cómo resolverlos
Situaciones comunes y sus soluciones:
Problemas frecuentes y soluciones
- Pantalla en blanco en el front o el back office — activa temporalmente el modo debug: edita
/var/www/prestashop/config/defines.inc.phpy pon_PS_MODE_DEV_atrue. Lee el error, corrígelo y vuelve afalse. - Error 403 en medios o imágenes — los permisos son incorrectos. Corrígelos con
chown -R www-data:www-data /var/www/prestashopyfind /var/www/prestashop -type d -exec chmod 755 {} \;. - Rendimiento lento en el catálogo — instala Redis (
apt install -y redis-server) y configúralo en Parámetros avanzados › Rendimiento › Caché. - Caché de override corrupta tras un módulo defectuoso — elimina los archivos de autoload:
rm -f /var/www/prestashop/cache/class_index.php /var/www/prestashop/cache/autoload/*.phpy vacía la caché desde el back office. - mod_rewrite inactivo — las URL amigables dan 404 — verifica
AllowOverride Allen el VirtualHost y activa el módulo:a2enmod rewrite && systemctl reload apache2.
Actualizar PrestaShop de forma segura
Nunca actualices PrestaShop sin una copia de seguridad previa. Procedimiento recomendado: (1) Crea un snapshot del VPS desde el área de cliente de ServOrbit. (2) Guarda la base de datos: mysqldump -u psuser -p prestashop > /root/backup_$(date +%F).sql. (3) Instala el módulo oficial *PrestaShop Autoupgrade* desde la Marketplace de PrestaShop. (4) Sigue el asistente del módulo — comprueba la compatibilidad de tus módulos de terceros antes de aplicar la actualización. (5) Prueba el front end y el back office, especialmente el proceso de compra. En caso de fallo, restaura el snapshot o el volcado SQL.
Desplegar PrestaShop desde el Marketplace de ServOrbit
Si prefieres evitar la configuración manual, el Marketplace de ServOrbit ofrece una plantilla PrestaShop con un clic: el VPS se aprovisiona con Apache, PHP 8.2, MySQL 8, Redis y PrestaShop preinstalados, certificado SSL configurado, en menos de cinco minutos. Conservas acceso root completo y puedes aplicar todas las optimizaciones de esta guía a tu ritmo.