Hosting and VPS for PrestaShop 9: server requirements
Before signing up for a VPS or hosting plan for PrestaShop, you should know what it needs to include: PHP version and extensions, database, memory, OPcache, scheduled tasks, HTTPS and email. We explain how to check it before paying and the signs that your server is no longer enough.
A hosting plan or VPS for PrestaShop 8 or 9 needs a PHP version supported by your PrestaShop version with its extensions, MySQL or MariaDB, enough memory for PHP, OPcache enabled, scheduled tasks, HTTPS and email that actually arrives. Whether it is called shared, VPS or cloud does not matter: if one of those pieces fails, the store will be slow or throw errors.
The question «which VPS should I get for PrestaShop?» usually starts with cores and gigabytes. That is the least important thing at first. This article goes through what the server really has to have, how to check it before paying and how to tell when yours is no longer enough. Choosing between shared, VPS or cloud is a separate decision, which we cover in another article on the blog.
PHP: version and extensions
Each PrestaShop version works with a specific range of PHP versions, and that range changes from one branch to another. In our environment we run PrestaShop 9.1 and 9.2 on PHP 8.3 and PrestaShop 8.2 on PHP 8.1; for any other combination, check the official requirements of the version you are going to install. What the server has to allow:
- Choosing the PHP version, and changing it without waiting days on a support ticket.
- The extensions PrestaShop requires, including
curl,gd,intl,mbstring,openssl,pdo_mysql,zip,dom,simplexmlandfileinfo. If one is missing, the installer will tell you or, worse, a specific feature will fail months later. - Adjustable limits:
memory_limit,max_execution_time,upload_max_filesizeandpost_max_size. Catalogue imports, thumbnail regeneration and updates need more than a normal page.
OPcache and other caches
PrestaShop loads thousands of PHP files on every request. OPcache keeps that code already compiled in memory and is probably the cheapest performance improvement there is. It has to be enabled and given enough memory to hold all the store's code; if it is too small, it empties over and over and barely helps.
On top of that come the PrestaShop cache, an object cache such as Redis to take load off the database, and a full-page cache for visitors without a session. Ask whether the server supports Redis or whether you can install it: on a VPS you decide, on shared hosting it depends on the provider.
Database
- MySQL or MariaDB in a version supported by your PrestaShop.
- On the same server or very close to it. A category page can run hundreds of queries; if each one has to travel far, the store is slow even if the server has power to spare.
- Memory for the database. Product, order and statistics tables grow over the years, and a database without memory reads from disk.
- Access for backups and maintenance: being able to take a full dump whenever you need one.
Memory and disk
There is no figure that works for every store, because it depends on traffic, the number of products and what the modules do. There are criteria, though:
- Fast disks (SSD or NVMe). PrestaShop reads lots of small files, and a slow disk shows on every page.
- Guaranteed memory, not «up to». On a VPS, the memory should be yours; on shared hosting, ask how much you are guaranteed during a peak.
- Room to grow: images, backups, logs and cache take up more space than it seems.
Web server and friendly URLs
PrestaShop works with Apache, with Nginx or with Apache-compatible servers. With Apache, friendly URLs depend on mod_rewrite and on the server honouring the .htaccess file the store generates; if it does not, product and category pages return 404 errors as soon as you enable friendly URLs. With Nginx there is no .htaccess: the rewrite rules and the blocking of folders that must not be served are written into the server configuration, and someone has to maintain them when PrestaShop is updated. Also ask about HTTP/2 or later and response compression, which make a difference on every page.
Scheduled tasks (cron)
Many things in a store run on scheduled tasks: search indexing, sending queued emails, syncing with an ERP or marketplaces, product feeds, cart clean-up and backups. The server has to allow you to create a system cron job that calls a URL or runs a command every few minutes. Without it, everything depends on someone visiting the store, and the tasks run late or never.
HTTPS and email
HTTPS is not optional: payment gateways, browsers and search engines require it. The certificate has to renew itself and cover the domain with and without www.
Email is the most often forgotten. Order confirmations, password recovery and internal alerts have to arrive. Check that you can configure SPF, DKIM and DMARC on your domain and that the sending server has a good reputation. If not, send the store's email via SMTP through a transactional email service.
How to check it before signing up
- Ask for the technical specifications: available PHP versions, extensions, limits, database version, disk type and guaranteed memory.
- Ask for a trial or a refund period, and upload a copy of your store to a subdomain.
- Run the requirements check included in the PrestaShop installer, or a file with
phpinfo()that you delete afterwards. - Measure: response time of the home page, a large category, a product page and the checkout, and of the back office, which is where an underpowered server shows the most.
- Test email with a test order and see whether it arrives and whether it goes to spam.
- Ask about backups: frequency, how many days they are kept, where, and how they are restored.
Signs that the server is no longer enough
- The back office is slow even with little traffic.
- 500, 502 or 503 errors at busier times or when running an import.
- Imports or image regenerations that stop halfway due to time or memory limits.
- You cannot update PrestaShop because the PHP version you need is not available.
- Order emails do not arrive or end up in spam.
- Scheduled tasks run late or do not run at all.
How to solve it in PrestaShop
If you would rather not manage the server, Rekire's professional hosting plan is configured for PrestaShop from day one, and the person who helps you knows your store, not just the server. To get the most out of the one you already have, the All In One Cache module manages three caches from a single panel: full-page cache on disk, SQL queries in Redis (on PrestaShop 8 or later) and OPcache, and it purges the page cache automatically when you change products, categories or prices. And if you need someone to review the server, tune PHP or move the store, we do it through hourly PrestaShop technical support. Reviewing it before a sales peak costs less than fixing it in the middle of one.
Frequently asked questions
Does PrestaShop work on shared hosting?
Yes, if the hosting offers the right PHP version, the extensions, sufficient limits and cron. For small stores it may be enough; as the catalogue or traffic grows, the lack of guaranteed resources becomes noticeable.
How much memory does a VPS for PrestaShop need?
It depends on traffic, catalogue and modules. More than a figure, what matters is that the memory is guaranteed and enough for PHP, the database and the cache at the same time. Measure with your real store before deciding.
Which PHP version does PrestaShop 9 need?
Version 9 requires a recent PHP 8 release; we run it on PHP 8.3. Check the official requirements of the exact version you are going to install.
Is Redis necessary?
It is not essential, but it helps in stores with many database queries. OPcache, on the other hand, should always be enabled.