PrestaShop Developer Conference
PrestaShop Developer Conference
Paris, France - November 6, 2024
Let's talk code, commerce and open source.

Notice: You are browsing the documentation for PrestaShop 9, which is currently in development.

You might want to read the documentation for the current version, PrestaShop 8. Read the current version of this page

System requirements for PrestaShop 9

PrestaShop needs the following server configuration in order to run:

Requirement Configuration
Web server Apache Web Server 2.4 or any later version. (Although compatible, Apache Web Server 2.2 is not recommended since it reached its EOL in 2018).
PHP We recommend PHP 8.3. See the compatibility chart below for more details.
MySQL 5.6 minimum, a recent version is recommended.
Server RAM The more the merrier. We recommend setting the memory allocation per script (memory_limit) to a minimum of 256M.

PrestaShop works best in Unix-based systems such as Linux and macOS, and while Windows might work, it is not actively supported.

PrestaShop can also work with Nginx 1.0 or later. More informations on settings here.

How to verify your server meets PrestaShop’s requirements

You can use our system requirements tool to easily check if your environment fulfills PrestaShop’s requirements. Here’s how:

  1. Download the latest version from GitHub.
  2. Extract the zip file.
  3. Upload the phppsinfo.php file to your server and put it inside your current shop’s directory or the one where you intend to install it.
  4. Open it up on your browser (http://your-domain.com/path-to-your-prestashop/phppsinfo.php).
  5. Type in the login and password if prompted (use prestashop for both).

You’ll get a web page detailing requirements and recommendations, and how your server does compared to them:

System requirements tool

PHP requirements

PHP compatibility chart

PHP Version
PrestaShop Version ≤ 8.0 8.1 8.2 8.3 ≥ 8.4
9.0 No Yes Yes Recommended version No

Legend:

= Recommended version Yes = Supported No = Not supported

Extensions

PrestaShop needs a few additions to PHP and MySQL in order to fully work. Make sure that your PHP configuration has the following extensions and settings configured:

Extension Description
CURL. The Client URL extension is used to download remote resources like modules and localization packages.
DOM The DOM extension is needed to parse XML documents. PrestaShop uses it for various functionalities, like the Store Locator. It is also used by some modules, as well as the pear_xml_parse library.
Fileinfo The File information extension is used to find out the file type of uploaded files.
GD The GD extension is used to create thumbnails for the images that you upload.
Iconv The ICONV extension is used to convert character sets.
Intl The Internationalization extension is used to display localized data, such as amounts in different currencies.
JSON The JSON extension is used to manage JSON format.
Mbstring The Multibyte string extension to perform string operations everywhere.
OpenSSL The OpenSSL extension is used to improve security.
PDO The PHP Data Objects extension is used to connect to databases.
PDO (MySQL) The PDO_MYSQL driver is used to connect to MySQL databases.
SimpleXML The SimpleXML extension is used to manage XML files.
Zip The Zip extension is used to expand compressed files such as modules and localization packages.

Settings

  • allow_url_fopen enabled. This directive enables PrestaShop to access remote files, which is an essential part of the payment process, among others things. It is therefore imperative to have it set to On.

Here is a section of the php.ini file (the configuration file for PHP):

extension = php_mysql.dll
extension = php_gd2.dll
allow_url_fopen = On
allow_url_include = Off

Additional requirements when using a development version of PrestaShop

Composer

PrestaShop uses Composer to manage its packages. Install it here.

NodeJS

PrestaShop uses NPM to manage frontend dependencies and Webpack to compile them into static assets. You only need NodeJS 20.x (you can get it here), and NPM will take care of it all.

NVM

NVM is Node Version Manager, it allows you to quickly switch between NodeJS versions on your machine. It will help you switch between NodeJS versions for Back Office or Front Office developement in PrestaShop (which uses different versions of NodeJS).

Install NVM: Github Repository.