Alojamento e VPS para PrestaShop 9: requisitos do servidor
Antes de contratar um VPS ou um alojamento para PrestaShop convém saber o que tem de incluir: versão de PHP e extensões, base de dados, memória, OPcache, tarefas agendadas, HTTPS e correio. Explicamos como o verificar antes de pagar e os sinais de que o seu servidor já não chega.
Um alojamento ou um VPS para PrestaShop 8 ou 9 precisa de uma versão de PHP suportada pela sua versão do PrestaShop com as respetivas extensões, MySQL ou MariaDB, memória suficiente para o PHP, OPcache ativado, tarefas agendadas, HTTPS e um correio que chegue. Não importa se se chama partilhado, VPS ou cloud: se uma dessas peças falhar, a loja ficará lenta ou dará erros.
A pergunta «que VPS contrato para PrestaShop?» costuma começar pelos núcleos e pelos gigas. É o menos importante no início. Este artigo revê o que o servidor tem realmente de ter, como o verificar antes de pagar e como saber quando o seu já não chega. A escolha entre partilhado, VPS ou cloud é outra decisão, que tratamos noutro artigo do blog.
PHP: a versão e as extensões
Cada versão do PrestaShop funciona com um intervalo concreto de versões de PHP, e esse intervalo muda de um ramo para outro. No nosso ambiente trabalhamos o PrestaShop 9.1 e 9.2 com PHP 8.3 e o PrestaShop 8.2 com PHP 8.1; para qualquer outra combinação, consulte os requisitos oficiais da versão que vai instalar. O que o servidor tem de permitir:
- Escolher a versão de PHP, e mudá-la sem depender de um pedido de suporte de vários dias.
- As extensões que o PrestaShop exige, entre elas
curl,gd,intl,mbstring,openssl,pdo_mysql,zip,dom,simplexmlefileinfo. Se faltar uma, a instalação dirá ou, pior, uma função concreta falhará meses depois. - Limites ajustáveis:
memory_limit,max_execution_time,upload_max_filesizeepost_max_size. As importações de catálogo, a regeneração de miniaturas e as atualizações precisam de mais do que uma página normal.
OPcache e outras caches
O PrestaShop carrega milhares de ficheiros PHP em cada pedido. O OPcache guarda esse código já compilado em memória e é, provavelmente, a melhoria de desempenho mais barata que existe. Tem de estar ativado e com memória suficiente para que caiba todo o código da loja; se ficar curto, esvazia-se uma e outra vez e quase não ajuda.
Acima disso estão a cache do PrestaShop, uma cache de objetos como o Redis para aliviar a base de dados e uma cache de página completa para as visitas sem sessão. Pergunte se o servidor suporta Redis ou se o pode instalar: num VPS decide o utilizador, num partilhado depende do fornecedor.
Base de dados
- MySQL ou MariaDB numa versão suportada pelo seu PrestaShop.
- No mesmo servidor ou muito perto. Uma página de categoria pode lançar centenas de consultas; se cada uma tiver de viajar longe, a loja fica lenta mesmo que o servidor tenha recursos de sobra.
- Memória para a base de dados. As tabelas de produtos, encomendas e estatísticas crescem com os anos, e uma base sem memória lê do disco.
- Acesso para cópias e manutenção: poder fazer uma exportação completa sempre que precisar.
Memória e disco
Não há um valor que sirva para todas as lojas, porque depende do tráfego, do número de produtos e do que os módulos fazem. Há, sim, critérios:
- Discos rápidos (SSD ou NVMe). O PrestaShop lê muitos ficheiros pequenos, e um disco lento nota-se em cada página.
- Memória garantida, não «até». Num VPS, que a memória seja sua; num partilhado, pergunte quanta tem assegurada num pico.
- Espaço para crescer: imagens, cópias, registos e cache ocupam mais do que parece.
Servidor web e URLs amigáveis
O PrestaShop funciona com Apache, com Nginx ou com servidores compatíveis com Apache. Com Apache, os URLs amigáveis dependem do mod_rewrite e de o servidor respeitar o ficheiro .htaccess que a loja gera; se não o fizer, as fichas e as categorias dão erro 404 assim que ativa os URLs amigáveis. Com Nginx não há .htaccess: as regras de reescrita e o bloqueio das pastas que não devem ser servidas escrevem-se na configuração do servidor, e alguém tem de as manter ao atualizar o PrestaShop. Pergunte também pelo HTTP/2 ou superior e pela compressão das respostas, que se notam em cada página.
Tarefas agendadas (cron)
Muitas coisas de uma loja funcionam com tarefas agendadas: indexação do motor de pesquisa, envio de e-mails em fila, sincronização com ERP ou marketplaces, feeds de produtos, limpeza de carrinhos e cópias. O servidor tem de permitir criar um cron do sistema que chame um URL ou execute um comando de poucos em poucos minutos. Sem isso, tudo depende de alguém visitar a loja, e as tarefas executam-se tarde ou nunca.
HTTPS e correio
O HTTPS não é opcional: exigem-no os gateways de pagamento, os navegadores e os motores de pesquisa. O certificado tem de se renovar sozinho e cobrir o domínio com e sem www.
O correio é o que mais se esquece. As confirmações de encomenda, a recuperação da palavra-passe e os avisos internos têm de chegar. Verifique se pode configurar SPF, DKIM e DMARC no seu domínio e se o servidor de envio tem boa reputação. Se não, envie o correio da loja por SMTP através de um serviço de e-mail transacional.
Como verificar antes de contratar
- Peça a ficha técnica: versões de PHP disponíveis, extensões, limites, versão da base de dados, tipo de disco e memória garantida.
- Peça um período de teste ou de devolução e carregue uma cópia da sua loja num subdomínio.
- Passe a verificação de requisitos incluída no instalador do PrestaShop, ou um ficheiro com
phpinfo()que apaga no fim. - Meça: tempo de resposta da página inicial, de uma categoria grande, de uma ficha e do checkout, e do back-office, que é onde mais se nota um servidor à justa.
- Teste o correio com uma encomenda de teste e veja se chega e se vai para spam.
- Pergunte pelas cópias: frequência, quantos dias são guardadas, onde e como se restauram.
Sinais de que o servidor já não chega
- O back-office está lento mesmo com pouco tráfego.
- Erros 500, 502 ou 503 em momentos de mais visitas ou ao lançar uma importação.
- Importações ou regenerações de imagens que param a meio por tempo ou por memória.
- Não consegue atualizar o PrestaShop porque não há a versão de PHP de que precisa.
- Os e-mails de encomenda não chegam ou chegam ao spam.
- As tarefas agendadas executam-se tarde ou não se executam.
Como resolver no PrestaShop
Se prefere não administrar o servidor, o plano de alojamento profissional da Rekire está configurado para PrestaShop desde o primeiro dia, e quem o atende conhece a sua loja, não só o servidor. Para tirar o máximo partido do que já tem, o módulo All In One Cache gere três caches a partir de um só painel: página completa em disco, consultas SQL em Redis (no PrestaShop 8 ou superior) e OPcache, e limpa a cache de página automaticamente quando altera produtos, categorias ou preços. E se precisa que alguém reveja o servidor, ajuste o PHP ou transfira a loja, fazemo-lo com o suporte técnico PrestaShop à hora. Revê-lo antes de um pico de vendas custa menos do que resolvê-lo a meio de um.
Perguntas frequentes
O PrestaShop funciona num alojamento partilhado?
Sim, se o alojamento oferecer a versão de PHP adequada, as extensões, limites suficientes e cron. Para lojas pequenas pode bastar; quando o catálogo ou o tráfego crescem, nota-se a falta de recursos garantidos.
Quanta memória precisa um VPS para PrestaShop?
Depende do tráfego, do catálogo e dos módulos. Mais do que um valor, o importante é que a memória seja garantida e que chegue para o PHP, a base de dados e a cache ao mesmo tempo. Meça com a sua loja real antes de decidir.
Que versão de PHP precisa o PrestaShop 9?
A 9 exige uma versão recente do PHP 8; nós trabalhamo-la com PHP 8.3. Consulte os requisitos oficiais da versão exata que vai instalar.
O Redis é necessário?
Não é imprescindível, mas ajuda em lojas com muitas consultas à base de dados. O OPcache, pelo contrário, deve estar sempre ativado.