This guide is designed for merchants who want to learn how to install PrestaShop 1.7 on their web hosting account, understand how their new PrestaShop website works, and learn how to customize it as much as possible through the Back Office without modifying any code. To learn how to modify PrestaShop 1.7's code for maximum customization, read our PrestaShop 1.7 Developer Guide.

Note that this guide was written for PrestaShop 1.7.3.0, the latest version available at the time of writing.

Checking your server meets the minimum requirements

Before installing PrestaShop 1.7, you should check your server meets the minimum requirements. PrestaShop recommends a server running Apache 2.x or Nginx, though Apache 1.3 and Microsoft IIS will work too.

Checking your server's PHP version

PrestaShop 1.7.3 and earlier requires PHP 5.4 or newer to be installed on your server. PrestaShop 1.7.4 onwards requires PHP 5.6 or newer to be installed. To check your server's PHP version, log in to your cPanel by going to https://yourdomain.com/cpanel in your web browser, and then entering your username and password. Scroll down to the Programming section of your cPanel and then click the PHP Config option (see Figure 1) to view and change your PHP version.

PHP Config option
Figure 1: PHP Config option

A page will appear with all the available PHP versions with the current one selected (see Figure 2). The radio button with the black dot is your current PHP version. Try to increase it to PHP 7 if possible, but make sure to back up the .htaccess file in your root directory first, so you can restore it if necessary.

PHP Configuration page
Figure 2: PHP Configuration page

Creating MySQL databases and users

PrestaShop 1.7 also requires MySQL 5.0 or newer. If your server doesn't already have a MySQL database configured, you will have to add one. To do this, log in to your website's cPanel, scroll down to the Database Tools section (see Figure 3), and then click the MySQL Databases option.

cPanel Database Tools
Figure 3: cPanel Database Tools

Creating a MySQL database

On the MySQL Databases page, you will then see an option to create a new database (see Figure 4). All database names start with the cPanel account name followed by an underscore and a suffix. Enter a suffix such as "db" in the text field and then click the Create Database button to create the database.

Create a new MySQL database
Figure 4: Create a new MySQL database

Creating a MySQL user

A user account is needed to connect to the MySQL database. To create a MySQL user, go to the MySQL Databases page and then scroll down to the MySQL Users section (see Figure 5). All MySQL usernames start with the cPanel account name followed by an underscore and suffix. Enter a suffix such as "usr" in the Username text field and then enter a password twice to confirm it is right.

Add a new MySQL user
Figure 5: Add a new MySQL user

It is possible to automatically generate a password by clicking the Password Generator button. A dialog will appear with a random password and options to change the length of the password, the case and whether it includes numbers and symbols (see Figure 6). When finished, tick the I have copied this password to a safe place checkbox and then click the Use Password button.

cPanel password generator
Figure 6: cPanel password generator

After entering a password, click the Create A User button to create the MySQL user.

Adding a MySQL user to a database

A MySQL user needs permission to use a database. To do this, scroll down to the Add User to Database section on the MySQL Databases page (see Figure 7). Select the MySQL user that was previously created in the User dropdown and select the MySQL database in the Database dropdown. Click the Add button to add the user to the database.

Add a user to a MySQL database
Figure 7: Add a user to a MySQL database

After adding the user to the database, it will appear in the Current Databases section in the Privileged Users column (see Figure 8).

Current MySQL databases
Figure 8: Current MySQL databases

Click on the username in the Privileged Users column to open a new page to change the user privileges (see Figure 9). Click the All Privileges checkbox to give the user full access to the database and then click the Make Changes button to save the user privileges.

Manage MySQL user privileges
Figure 9: Manage MySQL user privileges

You've now created a MySQL database! Make a note of the database name, username and password so you can enter them in the PrestaShop installer.

Creating an FTP account

Before you can upload PrestaShop to your server, you will need to configure an FTP account, if one isn't preconfigured. To do this, log in to your website's cPanel, scroll down to the Files section (see Figure 10), and then click the FTP Manager option.

cPanel file tools
Figure 10: cPanel file tools

The FTP Accounts page will then be displayed. In the Add FTP Account section (see Figure 11), enter a username in the Enter Login text field, select your website's domain in the dropdown, and then enter a password twice. If you can't think of a password, you can click the generate password button to automatically generate a password. Click the button with the eye icon to see the generated password. Leave the directory blank and then click the Create FTP Account button to create the account.

Add FTP Account
Figure 11: Add FTP account

You've now created an FTP account you can use to upload PrestaShop to your server! When using an FTP client such as FileZilla, enter your domain name as the server, the email address you configured (e.g., info@yourdomain.com) as the username, and the password you configured.

Configuring your php.ini file

According to the minimum requirements, PrestaShop recommends configuring PHP with a memory_limit of at least 128M and an upload_max_filesize of at least 16M, though more is always better.

You can check your current settings by logging in to your website using an FTP client such as FileZilla, and then opening the php.ini file in your server's root directory. If your host doesn't allow you to view the file, create a file phpinfo.php in your root directory with the following:

<?php phpinfo();

You can then go to http://yourdomain.com/phpinfo.php in your web browser to view your PHP configuration. Scroll down to the Core section to find your memory_limit and upload_max_filesize values. If they are too low, you'll need to ask your host to increase them if you can't access php.ini. Also, scroll down and check to make sure there are curl, gd, mcrypt, openssl, PDO, pdo_mysql, and zip sections listed. If there are any missing, add lines like extension=curl.so (for Linux servers) or extension=curl.dll (for Windows servers) to the php.ini file for each missing extension, or ask your host to add these extensions for you.

IMPORTANT: Remember to delete the phpinfo.php file from your server once you've finished using it.

Once you're sure your server meets PrestaShop 1.7's minimum requirements, you can download and install PrestaShop on your remote server.