PrestaShop is a free and Open Source e-commerce web application written in PHP. It is highly customisable and supports all the major payment services. It is available in many languages and localised for many countries, has a fully responsive design for both front and backend. PrestaShop claims to have more than 250,000 stores running. Unlike Magento, which requires expertise in setting up and running a store, PrestaShop is easy to configure and run.
PrestaShop has over 310+ features which makes it very powerful. A few of its important features are :-
- Responsive design and more than 2500+ professional templates available, offer customers a seamless, user-friendly shopping experience.
- Easy to install and uninstall.
- Product quick view and attractive promotional banners.
- Needs Lower system requirements then Magento.
- Supports over 50 global payment services to accept payments instantly.
- Shipping management, easy tax rules setup and Seamless customer checkout.
- Integrated customer service tools.
- Advanced, built-in SEO features like customisable meta titles, meta descriptions and URLs.
- In-depth statistics tools placed directly in your back office make it easier than ever to understand.
- Easy cart rules, offer coupons and voucher setup. Thousands of third party addons.
- Available in 65+ languages, supports many different currencies, rules and unit of measures.
We can install PrestaShop on many different kinds of hosting. In this tutorial we will be installing PrestaShop on both Shared Hosting and a VPS/Dedicated server.
Installing PrestaShop on Shared Hosting
Most shared hosting comes with cPanel hosting management panel. You can install PrestaShop either using Softaculous App Installer or Manually by uploading the package. Hostpresto provides shared hosting packages which are optimised for installing apps likes PrestaShop.
Using Softaculous App Installer
Login to your cPanel account and in cPanel home, scroll down to find Softaculous App Installer. Click on PrestaShop under E-commerce menu on sidebar.
Click on the Install Now button, you will see interface to provide details of installation. In Software Setup, choose the version you want to install. It is recommended that you install the latest version. Choose the protocol you want your website to use while loading, you can choose
http://www. or you can choose to load your website securely by selecting
https://www.. If you choose secured protocol then you will need to configure SSL/TLS for your website. Now choose the domain on which you want to install PrestaShop. If you are planning to install PrestaShop on the main website, not in any folder, remove the text from the In Directory field. It should be empty because if there is any text in this field, Softaculous will create a directory and will install PrestaShop in that directory.
Next you will need to provide a name for your store in Store Name field. Next enter the path for your admin folder. It is important that you use something complex other than admin, so that your site is secured from potential brute force attacks. Whatever you write in this box becomes your alias for admin panel. For example if you have used
storeadmin, then the administrator login panel will be accessible on
Under Admin Account, provide a username, password and email for Administrative account. In Advanced options you can configure the name of your database, table prefix and automatic backups.
That's it, now click on Install button to install PrestaShop on your website.
Although Softaculous makes the installation of PrestaShop very easy, you can also install PrestaShop manually by creating the database and uploading the package yourself.
rowse the official website of PrestaShop and download the installation package. Once you have downloaded the installation package, you will need to upload the package to your hosting account.
Login to your cPanel account and scroll down to find Files section, click on File Manager link. In File Manager, navigate to your web root directory, which is
public_html. Click on Upload button from the menu on top, it will open the upload prompt in new tab. Browse the zip file you have downloaded, and it will automatically start to upload it. Once you have uploaded the compressed package, you can now extract it. Make sure that you are extracting the files in
public_html folder. Once done then you may delete the compressed package you have uploaded. If your files are under a directory prestashop, move all the files of the directory to
You can also use FTP to upload your files. You can extract the compressed package on your computer and you can use any FTP client like FileZIlla to upload all the extracted files to your web root directory. Make sure that you upload the files to
Now we have our files uploaded, it's time we create the database. PrestaShop will store it's data into the database.
To create a database, go back to the cPanel dashboard and find Databases section and click on MySQL Database Wizard. In MySQL Database Wizard, you will see the Step 1 to create your database. Enter the desired name you want for your database. In Step 2 you will create a user for your database who will have full access to the database which we have created. Enter the desired username and password for your database user, make sure that you use a strong password. You can also use password generator to generate a strong password. In Step 3 you will Add the user to the database, It is recommended that you provide all the privileges to the user, just select ALL PRIVILEGES checkbox and click on the button Next Step. You should now get a success message that the user is successfully added to the database.
By default cPanel adds a prefix before your database and the database user to stop creation of identical databases in shared hosting environment. Please note that whenever you will be using the database you will have to provide full database name which is
YourAccountPrefix_DatabaseNameand full database user, which is
YourAccountPrefix_DatabaseUser. For example full database name will be
example_pshopand full user name will be
Now as we have our database and files ready, we can proceed with the installation through frontend. Access your website through web browser by entering your domain in address bar. If your website is example.com then go to
You will see something similar to the screenshot below.
Choose the preferred language of installation and proceed further. The ext interface will ask you to accept the licence agreement, Accept the agreement and proceed further. Now the installer will check for system requirements, if all the required systemn requirements are met, if will automatically move to the next step, if not, it will show you the errors. Ask your hosting provider to correct them.
In the next step, installer will ask you to provide some information about your store.
Provide the details and click on Next button, it will now ask you for the database details, provide the full database name and username, which you have created earlier. Provide the password of your database user and click on Test your database connection now! button. If the information provided is correct, you should see a success message that database is connected.
In the final step, the installer will automatically write to the database database, do not close the browser, until the installer is finished.
Now login to your cPanel again and through file manager, delete the
install directory. It is a necessary step for security reasons. Once done, you can browse your website by browsing the following link on your favorite web browser.
You will see the demo storefront for your website.
To access your admin panel, go to the following address:
Once you access the admin panel for first time, it will automatically rename the
admin alias to something more complex to prevent brute force attacks. Make a bookmark of the admin panel link or write it down.
Login using your email and password created during installation. Once you are logged in you will the the backend of your PrestaShop installation.
Installing PrestaShop on CentOS 7 Server
If you want to install your PrestaShop store on a virtual private server or dedicated server, you can also do that easily. In this section of tutorial we will learn to install PrestaShop on a server running CentOS 7.x.
PrestaShop does not require any special hardware requirements. You will need a server with a CentOS 7 installation, as well as root access to the server. In this tutorial we will use root account to execute the commands, if you are logged in as non root user, run
sudo su command to switch to
root account, you can also use
sudo commands before all the commands to run them in privileged mode.
Installing and Configuring LAMP
Before we install any package, it is recommended to update your system and its packages, run the following command to update your system:
yum -y update
Now install Apache web server and PHP along with some required PHP extensions using the following command.
yum -y install epel-release yum -y install httpd php php-mysql php-mcrypt php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl zlib
We have installed
php-mcrypt extension is not available in default YUM repository.
Before starting Apache, we will need to enable
mod_rewrite in Apache, edit the default Apache configuration
/etc/httpd/conf/httpd.conf file with your favorite editor. In this tutorial we will be using
nano to edit the files, you can use any editor according to your choice, or you can install
yum -y install nano command.
Scroll down to find the following lines under ``.
# # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None
Change the value of
All. Finally it should look like.
# # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All
Now edit your
/etc/php.ini file using your favorite editor.
And look for the following lines in the file.
; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 2M
Change the value of
upload_max_filesize from 2MB to at least 16 MB. It should look like as shown below.
; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 16M
Now start Apache web server and enable Apache to automatically start at boot time using the following command.
systemctl start httpd systemctl enable httpd
Now install MySQL/MariaDB using the following command.
yum -y install mariadb mariadb-server
Now start MariaDB server and enable MariaDB to automatically start at system startup using the following command.
systemctl start mariadb systemctl enable mariadb
Now secure your MariaDB installation using the following command.
This will run a small script and ask for your current root password, as we have just installed MariaDB, so there is no root password, just leave it blank and press enter. Proceed further to create a new root password for MariaDB server. Next It will ask for removing anonymous user, sample database and it will ask if you want to disable remote login. Just answer
y for all question asked as we want to use the recommended choice for each configuration. This will configure and secure our database server.
Now we need to create a database and database user, which will be used to store PrestaShop data. To create a database login to your MySQL/MariaDB command line using the following command.
mysql -u root -p
Now enter your MySQL root password which you have created earlier. You should see following output.
[root@ip-172-31-17-98 ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or g. Your MariaDB connection id is 10 Server version: 5.5.50-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
Now run the following query to create a new database.
CREATE DATABASE pshopdata;
The above command will create a database named
pshopdata, Now you need to create the database user for this database and assign the user full access over the database. Use the following command for same.
GRANT ALL ON pshopdata.* TO pshopuser@localhost IDENTIFIED BY 'StrongPassword'; FLUSH PRIVILEGES;
You can replace the database name from
pshopdata to any name according to your choice, also you can change PrestaShop DB username from
pshopuser to anything you want. Make sure you use a strong password at the place of
StrongPassword. Now exit from MariaDB prompt using the following command.
You can also verify if the database and user has been created successfully using the following command.
mysql -u pshopuser -p
It will prompt you for password, once you are logged in you can see the list of database using the following command.
You should see the following output:
[root@ip-172-31-17-98 ~]# mysql -u pshopuser -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or g. Your MariaDB connection id is 13 Server version: 5.5.50-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | pshopdata | +--------------------+ 2 rows in set (0.00 sec)
Exit from the MariaDB command line using
exit command. As we have our database configured, we proceed to install PrestaShop.
Download PrestaShop archive using the following command. You can find the latest stable version of PrestaShop here. As of now, latest version of PrestaShop is 1.6.1, hence we will download this version.
cd /tmp wget https://download.prestashop.com/download/releases/prestashop_18.104.22.168.zip
Now extract the archive using following command.
If you see
bash: unzip: command not found error, run the following command to install
yum -y install unzip
Now move all the files to the document root directory of Apache web server using the following commands.
cp -r /tmp/prestashop/. /var/www/html
As we have now moved all the files to document root directory, provide the ownership of the document root directory to Apache by running the following command.
chown -R apache:apache /var/www/html
Now you can finish the installation, either using web interface or using command line interface. To complete the installation using web interface, go to the following link using your favorite browser.
If you have configured your DNS. Now follow the same procedure we used when we have installed PrestaShop manually on Shared Hosting environment.
You can also use command line interface to finish the installation on your server. Run the following commands to a list of available options.
cd /var/www/html/install php index_cli.php
You will see following output.
[root@ip-172-31-17-98 install]# php index_cli.php Arguments available: --step all / database,fixtures,theme,modules,addons_modules (Default: all) --language language iso code (Default: en) --all_languages install all available languages (Default: 0) --timezone (Default: Europe/Paris) --base_uri (Default: /) --domain (Default: localhost) --db_server (Default: localhost) --db_user (Default: root) --db_password (Default: ) --db_name (Default: prestashop) --db_clear Drop existing tables (Default: 1) --db_create Create the database if not exist (Default: 0) --prefix (Default: ps_) --engine InnoDB/MyISAM (Default: InnoDB) --name (Default: PrestaShop) --activity (Default: 0) --country (Default: fr) --firstname (Default: John) --lastname (Default: Doe) --password (Default: 0123456789) --email (Default: email@example.com) --license show PrestaShop license (Default: 0) --newsletter get news from PrestaShop (Default: 1) --send_email send an email to the administrator after installation (Default: 1)
To install PrestaShop run the following command after replacing the example values with the actual values of your installation. If the value of any attribute contains a blank space, enclose the value in single or double quote. if you have not configured your domain yet, you can also use your server IP address in
php index_cli.php --timezone=Asia/Kolkata --domain=yourdomain.com --db_server=localhost --db_user=pshopuser --db_password=StrongPassword --db_name=pshopdata --name='Name of Shop' --country=IN --firstname=Liptan --lastname=Biswas --password='StrongPassword' --firstname.lastname@example.org --license=0
Once finished you should see
-- Installation successful! -- message.
Remove the installation folder using the following command:
rm -rf /var/www/html/install
Now you can browse your website on
You can also browse your admin panel, by going to
http://your-server-IP/admin. It will automatically redirect to your new admin login link. Save the link as bookmark or write it down as next time you want to login to your admin dashboard, you will need to go to that link.
In this tutorial we have installed PrestaShop on both shared hosting environment and VPS/Dedicated server running CentOS 7.x. You can now successfully create your own store using PrestaShop and sell your products online. PrestaShop is very easy to setup and run.