• Get In Touch
August 16, 2016

Create an Ecommerce Website with PrestaShop

Need Hosting? Try ours, it's fast, reliable and feature loaded with support you can depend on.
View Plans

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.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/2049695837.png” alt=”” />

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:// or http://www. or you can choose to load your website securely by selecting https:// or 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.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/134939018.png” alt=”” />

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 http://your-domain.com/storeadmin.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/692108274.png” alt=”” />

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.

Manual Installation

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 public_html directory.

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 public_html directory.

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_DatabaseName and full database user, which is YourAccountPrefix_DatabaseUser. For example full database name will be example_pshop and full user name will be example_pshopuser.

Web Installer

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

    http://example.com

You will see something similar to the screenshot below.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/1059392563.png” alt=”” />

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.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/1595533787.png” alt=”” />

In the next step, installer will ask you to provide some information about your store.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/1491787044.png” alt=”” />

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.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/1913578655.png” alt=”” />

In the final step, the installer will automatically write to the database database, do not close the browser, until the installer is finished.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/394318438.png” alt=”” />

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.

    http://your-domain.com

You will see the demo storefront for your website.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/43624061.png” alt=”” />

To access your admin panel, go to the following address:

    http://your-domain.com/admin

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.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/1189464729.png” alt=”” />

Login using your email and password created during installation. Once you are logged in you will the the backend of your PrestaShop installation.

HP_NO_IMG/data/uploads/users/d0888044-e701-4d69-a760-fddd1b09f3f2/1297227844.png” alt=”” />

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.

Requirements

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 epel-release because 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 nano using yum -y install nano command.

    nano /etc/httpd/conf/httpd.conf

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 AllowOverride from None to 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.

    nano /etc/php.ini

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.

    mysql_secure_installation

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.

    MariaDB [(none)]>

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.

    exit

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.

    SHOW DATABASES;

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)

    MariaDB [(none)]>

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_1.6.1.6.zip

Now extract the archive using following command.

    unzip prestashop_1.6.1.6.zip

If you see bash: unzip: command not found error, run the following command to install unzip.

    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.

    http://server-ip-addr

or

    http://your-domain.com

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: pub@prestashop.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 --domain attribute.

    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' --email=me@liptanbiswas.com --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 http://your-server-IP or http://your-domain.com.

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.

Conclusion

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.

Need Hosting? Try ours, it's fast, reliable and feature loaded with support you can depend on.
View Plans

Share this Article!

Related Posts

Node.js Authentication – A Complete Guide with Passport and JWT

Node.js Authentication – A Complete Guide with Passport and JWT

Truth be told, it’s difficult for a web application that doesn’t have some kind of identification, even if you don’t see it as a security measure in and of itself. The Internet is a kind of lawless land, and even on free services like Google’s, authentication ensures that abuses will be avoided or at least […]

Node.js and MongoDB: How to Connect MongoDB With Node

Node.js and MongoDB: How to Connect MongoDB With Node

MongoDB is a document-oriented NoSQL database, which was born in 2007 in California as a service to be used within a larger project, but which soon became an independent and open-source product. It stores documents in JSON, a format based on JavaScript and simpler than XML, but still with good expressiveness. It is the dominant […]

Using MySQL with Node.js: A Complete Tutorial

Using MySQL with Node.js: A Complete Tutorial

Although data persistence is almost always a fundamental element of applications, Node.js has no native integration with databases. Everything is delegated to third-party libraries to be included manually, in addition to the standard APIs. Although MongoDB and other non-relational databases are the most common choice with Node because if you need to scale an application, […]

Node.Js Vs Django: Which Is the Best for Your Project

Node.Js Vs Django: Which Is the Best for Your Project

Django and NodeJs are two powerful technologies for web development, both have great functionality, versatile applications, and a great user interface. Both are open source and can be used for free. But which one fits your project best? NodeJs is based on JavaScript, while Django is written in Python. These are two equally popular technologies […]

Nodejs Vs PHP:  Which Works Best?

Nodejs Vs PHP: Which Works Best?

Before getting into the “battle” between Node.js and PHP we need to understand why the issue is still ongoing. It all started with the increased demand for smartphone applications, their success forcing developers to adapt to new back-end technologies that could handle a multitude of simultaneous requests. JavaScript has always been identified as a client-side […]