What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
To install PrestaShop 9 on a Linux VPS, prepare a supported Linux server, Apache 2.4+ or Nginx 1.0+, PHP 8.1 or newer (PHP 8.5 is the current recommendation), MySQL 5.7 or MariaDB 10.2 or newer, and a PHP memory_limit of at least 512M. Create a dedicated database, place the PrestaShop files in the web root, run the browser or command-line installer, then remove /install and lock down the server before accepting orders.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
This guide walks through the decisions, commands, checks and recovery steps for a production-minded deployment. Examples use a Debian/Ubuntu-style VPS; package names and service commands differ on other Linux distributions.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
Prestashop 1.7 (2e édition) - Créer un site de e-commerce | $14.28 | Buy on Amazon |
| 2 |
|
PrestaShop : développez vos propres modules e-commerce | $25.32 | Buy on Amazon |
| 3 |
|
PRESTASHOP STARTER KIT | $19.75 | Buy on Amazon |
| 4 |
|
PrestaShop Module Development | $47.14 | Buy on Amazon |
| 5 |
|
PrestaShop Recipes: A Problem-Solution Approach | $37.99 | Buy on Amazon |
As an Amazon Associate I earn from qualifying purchases.
What PrestaShop 9 needs on a Linux VPS
PrestaShop 9 is designed for Unix-based systems such as Linux. Windows is not actively supported. The documented web-server baseline is Apache Web Server 2.4 or later; Nginx 1.0 or later is also supported. PHP 8.1 is the minimum supported line, while the current requirements page recommends PHP 8.5 for releases that support it. PHP 7.x is no longer supported.
| Component | Requirement or recommendation |
|---|---|
| Operating system | Supported Linux distribution on a VPS |
| Web server | Apache 2.4+ (primary documented baseline) or Nginx 1.0+ |
| PHP | 8.1 minimum; PHP 8.5 recommended where the selected release supports it |
| Database | MySQL 5.7 minimum or MariaDB 10.2 minimum |
| PHP memory | memory_limit of at least 512M |
| PHP capabilities | PDO MySQL and the other extensions reported by the installer compatibility check |
| Network prerequisites | A domain pointed at the VPS and enough server space for the application, media and database |
These are compatibility floors, not a sizing formula. Catalog size, image volume, traffic, modules and import jobs determine how much CPU, RAM, storage and database capacity you actually need. Start with a VPS that leaves operating-room memory for the database, web server and background jobs instead of assigning all RAM to PHP.
#1 Best Overall
Plan the deployment before logging in
Point DNS at the VPS
Create an address record for the shop host name and point it to the VPS public IP. If you will serve both the bare domain and a www name, decide which one is canonical and redirect the other after the store works. DNS changes can take time to appear, so verify resolution from an external network before launching the installer.
Choose a supported Linux image
Use a maintained distribution with security updates and a package repository that can provide the PHP version required by your chosen PrestaShop release. Record the distribution version, PHP package source and database version. This makes a later staging rebuild reproducible and helps explain differences if production and test behave differently.
Decide who owns the files
Web-server processes need to read the application and write only to directories that PrestaShop requires. Do not solve installer errors by making the entire document root world-writable. Plan a deployment user, a web-server group and a directory layout before extracting the release.
Prepare access and recovery
Use SSH keys, disable password login when your provider permits it, and restrict administrative SSH access. Allow only the ports needed for SSH and web traffic in the VPS firewall. Arrange an off-server backup destination for both the database and uploaded files; a snapshot alone is not a substitute for a restorable database export.
Apache or Nginx: which should you use?
Neither server is universally superior according to PrestaShop’s requirements. Use the one your team already operates confidently, because correct PHP, rewrite, logging and permission configuration matters more than the label on the web server.
| Decision point | Apache | Nginx |
|---|---|---|
| Documented baseline | 2.4 or later | 1.0 or later |
| PHP connection | Typically PHP-FPM or a distribution-supported PHP handler | PHP-FPM is required for the usual setup |
| Configuration emphasis | Virtual host, rewrite rules and directory access policy | Server block, PHP-FPM socket and rewrite rules |
| Best fit | Teams familiar with Apache virtual hosts and its logging tools | Teams already standardised on Nginx and comfortable managing FastCGI |
Do not run both as competing public front ends unless you have a deliberate proxy design. Pick one process to listen on ports 80 and 443, then test the exact host name that will be used by the store.
Install the web, PHP and database stack
Update the operating system
Log in as a privileged user, apply security updates, and reboot if the kernel or core libraries require it. On a Debian/Ubuntu-style system, the sequence is commonly:
sudo apt update
sudo apt upgrade
On another distribution, use its native package manager and service layout. Do not mix package repositories intended for a different distribution release.
Install Apache
For an Apache deployment, install Apache, PHP and PHP-FPM or the PHP integration supplied by your distribution, plus the PHP extensions shown as required by the PrestaShop compatibility check. Enable the virtual-host and rewrite configuration for the site, then reload Apache after every configuration change. Keep the default site disabled or isolated so it cannot accidentally serve the store under the wrong host name.
Install Nginx and PHP-FPM
For Nginx, install Nginx, PHP-FPM and the same required PHP extensions. Configure a server block for the shop domain, pass PHP requests to the matching PHP-FPM socket, and add the PrestaShop rewrite rules supplied for your release. A server block that serves static files correctly but points PHP requests to the wrong socket will produce download prompts, 502 errors or blank responses, so test a small PHP health file and remove it immediately after testing.
Install MySQL or MariaDB
Install a maintained MySQL or MariaDB release that meets the minimum version. Start the database service, enable it at boot, and apply the distribution’s hardening procedure. Keep the database listener private unless a separate application server genuinely needs remote access.
Configure PHP before running PrestaShop
Find the php.ini file used by the web SAPI, not only the command-line PHP configuration. PHP-FPM and Apache can load a different file from the one shown by php --ini. Create a small diagnostic page or use the server’s PHP information command to identify the active configuration, then remove diagnostic output before launch.
Set the memory limit
Set:
memory_limit = 512M
The 512M value is the documented minimum recommendation. Raising it can prevent large imports or image operations from exhausting PHP, but it does not compensate for insufficient VPS RAM. Restart PHP-FPM or reload Apache after changing the file, then confirm the effective value through the web SAPI.
Install and verify extensions
The compatibility check tests PHP settings, file uploads, permissions and extensions, including PDO MySQL. Install the extensions required by the specific PrestaShop release and verify them in the same PHP SAPI that serves the store. A command-line module list can be useful, but the browser check is authoritative for the web process.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Rank #3
Check upload and request limits
Ensure PHP permits uploads large enough for your product images, themes and modules, and that web-server request limits do not reject those files first. Set values deliberately for your catalog workflow rather than copying an unlimited setting. Restart the relevant service and retest after editing.
Create a dedicated PrestaShop database
Use a separate database and database user for each store. The installer asks for the database host, name, user and password, so record them in a password manager before opening the installer.
After connecting to MySQL or MariaDB as an administrative account, run SQL equivalent to the following, replacing the example names and password with unique values:
CREATE DATABASE prestashop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'prestashop_user'@'localhost' IDENTIFIED BY 'use-a-long-unique-password';
GRANT ALL PRIVILEGES ON prestashop.* TO 'prestashop_user'@'localhost';
FLUSH PRIVILEGES;
If the web server and database run on separate machines, use the application server’s private address instead of localhost and restrict the database firewall accordingly. Do not grant global privileges when database-level privileges are sufficient. Test the credentials from the VPS before blaming the installer for an authentication failure.
Download and place the PrestaShop release
Obtain the release safely
Download the intended PrestaShop release from its official release channel, verify the archive and keep a copy of the version number in your deployment notes. Do not extract an unverified archive directly into the live document root.
Extract into the document root
Create the virtual-host document root, extract the archive there, and ensure the expected application files are at the root served by Apache or Nginx. Avoid an accidental nested path such as /var/www/shop/prestashop/prestashop, which makes the domain show a directory listing or a missing index.
Apply ownership and permissions
Set ownership so the deployment account can update code during a controlled release and the web-server account can read it. Grant write access only to directories that the installer and running shop need, such as cache, image and upload locations identified by the release documentation. Use normal directory and file modes; never leave a temporary recursive 777 permission in place. If the installer reports a write failure, correct the owner, group, ACL or SELinux/AppArmor policy instead of widening every permission.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchRank #4
Run the six-step browser installer
With DNS resolving and the virtual host serving the extracted files, open the shop URL in a browser. PrestaShop launches a six-step installation assistant. Keep a second terminal open so you can inspect web-server and PHP logs if a step fails.
- Select language and accept the licenses. Choose the installation language, read the license screens and accept the required terms.
- Run the compatibility check. Let the assistant test PHP version, settings, extensions, file uploads and filesystem permissions. Stop here if a red check remains; the resulting message usually identifies the setting or path to fix.
- Enter store information. Supply the shop name, country, activity and administrator account details. Use a unique administrator password and an address you can monitor for recovery messages.
- Enter database credentials. Provide the database server, database name, user and password created earlier. Use the actual host name or private address and test the connection before proceeding.
- Install the schema and files. Allow the assistant to create tables and write configuration. Large or slow VPS instances may take several minutes; do not refresh repeatedly while the request is still running.
- Confirm completion. Record the generated administrator directory name and test both the storefront and the back office in separate browser sessions.
PrestaShop’s installation documentation describes the goal plainly: “PrestaShop should not be hard to install.” When it is not straightforward, the compatibility report and server logs are more useful than repeatedly submitting the same form.
Use the CLI workflow for repeatable provisioning
A command-line installation is useful when you build more than one VPS, automate staging, or need a deployment that can be replayed. Use the CLI installer included with the exact release you downloaded, run it from the extracted application directory, and inspect its built-in help for the release-specific option names. Supply the same store, administrator and database values as the browser assistant, preferably through protected environment or secret-management mechanisms rather than shell history.
Run the CLI as the deployment identity that owns the files, or explicitly set the resulting ownership afterward. Capture the exit status and installer log, and make the command fail the deployment when the database connection, PHP check or filesystem check fails. A successful process exit is not enough: request the storefront and back office over HTTP and inspect the web-server error log before declaring the build complete.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteSecure the installation immediately after completion
Delete the installer directory
Remove the /install directory exactly as the official instructions require. Leaving it accessible can expose the installation workflow or allow an accidental reconfiguration.
Record the generated administrator path
PrestaShop renames the administrator directory during installation. Record that generated name in your password manager or deployment notes, then restrict access to the back office with strong authentication, a firewall or an upstream access policy appropriate to your team.
Review permissions and ownership
Recheck that application code is not broadly writable, that runtime directories remain writable by the web process, and that configuration files containing database credentials are readable only by the identities that need them. Confirm that no temporary diagnostic script, archive or database dump is downloadable from the document root.
Enable HTTPS and operational controls
Install a valid TLS certificate for the real host names, redirect plain HTTP once validation succeeds, and verify that secure cookies and canonical URLs use HTTPS. Keep the VPS firewall enabled, restrict administrative ports, configure log rotation and monitor disk space. These are deployment tasks around PrestaShop rather than steps performed by the installer itself.
Free tools Windows power users keep installed
One-click scans. No signup required.
Validate the store before launch
Use a checklist rather than relying on the installer completion screen:
- Open the storefront and administrator area over HTTPS.
- Create a test product, add it to a cart and complete a non-production checkout path.
- Upload a product image and confirm that thumbnails and media URLs work.
- Send a test email and verify the configured mail transport.
- Check friendly URLs, redirects, cache behavior and PHP error logs.
- Confirm that the database user has only the privileges required for this store.
- Run a backup of the database and uploaded files, then perform a test restore somewhere safe.
- Check available disk, RAM and swap while rebuilding indexes or processing images.
Keep a staging copy for updates
Maintain a separate test or pre-production copy before changing PHP, PrestaShop, themes or modules. Restore a recent production database backup into staging, use a separate domain or access restriction, and disable real customer emails and payment callbacks there.
Before a PHP change, back up the site and database and verify that every installed module and theme supports the target PHP line. The PHP help guidance specifically recommends checking compatibility and making a backup before changing PHP. Test the full checkout, back-office tasks, imports, cron jobs and image processing in staging, then schedule the production change with a rollback plan.
Troubleshoot common installation failures
| Symptom | Likely cause | What to check first |
|---|---|---|
| Compatibility check fails | Unsupported PHP version, missing extension, incorrect PHP setting, upload limit or filesystem permission | Read the failed check, verify the web SAPI configuration, install the named extension, correct ownership and rerun the check |
| Database connection rejected | Wrong host, database name, user, password or host-based grant | Test the credentials locally, confirm the database service is running and match the installer host to the SQL account’s allowed host |
| 502 or gateway error with Nginx | PHP-FPM stopped or the server block points to the wrong socket | Check the PHP-FPM service, socket path and Nginx error log; reload Nginx after correction |
| PHP source downloads or appears as text | PHP handler is not connected to Apache or Nginx | Verify the enabled Apache PHP integration or Nginx FastCGI configuration and test the active PHP SAPI |
| Installer cannot write files | Wrong owner, group, ACL or security policy | Inspect the failing path, set least-privilege ownership and review SELinux/AppArmor events before changing modes |
| Works in staging but not production | Different PHP extensions, virtual-host rules, database credentials, ownership or cache state | Compare the two environments item by item and clear only the affected cache after taking a backup |
| Large import or image job exhausts PHP | Memory limit too low for the workload or insufficient VPS RAM | Confirm the effective memory_limit is at least 512M, inspect PHP and system logs, and size the VPS for the job |
When PHP is changed, do not immediately modify application code to hide errors. First compare the old and new PHP extension sets, review module and theme compatibility, restore the last known-good backup if necessary, and test the change in staging.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Production launch checklist
- Supported Linux distribution, web server and database versions are documented.
- PHP 8.1 or newer is active for the web process; PHP 8.5 is used when supported by the selected release.
- PHP
memory_limitis at least 512M and required extensions, including PDO MySQL, pass the compatibility check. - DNS, virtual host/server block and HTTPS all use the intended canonical domain.
- Dedicated database credentials work and are stored securely.
- Application ownership and runtime write permissions follow least privilege.
/installis deleted and the generated administrator directory is recorded.- Firewall, SSH access, log rotation, monitoring and backups are active.
- Staging has passed checkout, email, media, import and back-office tests for the exact PHP, theme and module set.
- A tested restore and rollback procedure exists before customers are sent to the store.
With those checks complete, PrestaShop 9 is ready to serve customers from the Linux VPS. Keep the staging copy and deployment notes current so the next PHP, module or core update is a controlled change rather than an emergency repair.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




