BitNami PrestaShop

    PrestaShop is a free and Open-Source E-commerce solution powering more than 150,000 online stores around the world. Since 2007, PrestaShop has revolutionized the industry by providing 100% free software with innovative features that engage shoppers such as multi-store, customizable URL’s and full Ajax compatibility. Professional tools are easily accessible to increase online sales including instant guest checkout, abandoned cart reminders and automated Email marketing. PrestaShop supports global secure payment gateways such as PayPal Payments Pro, Authorize.net, Skrill, and First Data while offering seamless marketplace integration for Amazon, eBay, Facebook and more.

    Please, take a look to the Quick Start Guide to know the basic use of this Stack.

    How to start/stop the servers?

    Graphical tool

    The Stacks include a graphical tool to manage the servers easily. You can find the "manager-windows.exe", "manager-osx" or "manager-linux" tool in your installation directory. Using this tool, you can Start, Stop or Restart the servers and check the log files. You can click on the icon to start it.

    manager-servers.png

     

    manager-osx.png

     

     

     

     

     

     

     

     

     


    win_platform.png

    On Windows: You can also start the Manager tool from shortcuts: Start -> Program Files -> BitNami Stack -> Manager tool

    Command line tool

    If you prefer, you can use the "ctlscript.sh" utility from the command line. This script is in the installation directory.

    linux_platform.png

    On Virtual Machines and Cloud images:

    $ sudo /opt/bitnami/ctlscript.sh start

    A native installer on Linux:

    $ cd ~/application-version
    $ ./ctlscript.sh start
    

    mac_platform.png

     

    On OS X: You can start the Manager tool from the installation directory or you can use the "ctlscript.sh" utility from a Terminal.

    host:~ user$ cd /Applications/application-version
    host:~ user$ ./ctlscript.sh start

    How to access to Administration panel?

    BitNami PrestaShop is configured to access to the Administration panel at http://example.com/prestashop/administration The credentials are configured during the installation if you are using the Native Installer. If you are using the Virtual Machine or Cloud Image, the default credentials are the following:

    Email address: user@example.com

    Password: bitnami

    How to change the default URL?

    Automatic Approach

    The  Virtual AppliancesBitNami Cloud Hosting and Cloud images ship a tool called "bnconfig". Using this tool you be able to configure the domain of the application.

    $ sudo /opt/bitnami/apps/prestashop/bnconfig --machine_hostname example.com 
    

    After running the tool above you should disable it so it is not executed in every boot of the machine.  For that you just have to rename it:

    sudo mv /opt/bitnami/apps/prestashop/bnconfig /opt/bitnami/apps/prestashop/bnconfig.disabled

    If you want to move your application to the root URL you can simply run:

    $ sudo /opt/bitnami/apps/prestashop/bnconfig --appurl / 
    

    This way you will be able to access to the Prestashop application at http://YOUR_DOMAIN instead of http://YOUR_DOMAIN/prestashop.

    If you want the app to be served from a subdomain or your own custom domain as a virtual host, you can run the following command: 

    sudo /opt/bitnami/apps/prestashop/bnconfig --appdomain example.com
    

    Note that you can't revert neither appurl or appdomain in an automated way.

    Manual approach

    This approach describes how to configure your application to run in the root URL directly. The details are described below.

    Native Installer

    If you want to change the default URL from http://your_domain/prestashop to http://your_domain, you should add a "DocumentRoot" entry in your application conf file. Edit the /installdir/apps/prestashop/conf/httpd-prefix.conf file to add this line and commenting the "Alias" entries. Modify the

    httpd_prefix.conf file content:

    DocumentRoot "/installdir/apps/prestashop/htdocs"
    # Alias /prestashop/ "/installdir/apps/prestashop/htdocs/"
    # Alias /prestashop "/installdir/apps/prestashop/htdocs"
    
    (...)
    

    Some applications also require changes in their configuration files or in the database.

    Virtual Machine

    If you want to change the default URL from http://your_domain/prestashop to http://your_domain, you should add a "DocumentRoot" entry in your application conf file. Edit the /opt/bitnami/apps/prestashop/conf/httpd-prefix.conf file (prestashop.conf in previous versions) to add this line and commenting the "Alias" entries. You can use the "nano" editor:

    $ sudo nano /opt/bitnami/apps/prestashop/conf/httpd-prefix.conf
    

    httpd-prefix.conf file content:

    DocumentRoot "/opt/bitnami/apps/prestashop/htdocs"
    # Alias /prestashop/ "/opt/bitnami/apps/prestashop/htdocs/"
    # Alias /prestashop "/opt/bitnami/apps/prestashop/htdocs"
    
    (...)
    

    Some applications also require changes in their configuration files or in the database.

    Cloud Image/BitNami Hosting

    If you want to change the default URL from http://your_domain/prestashop to http://your_domain, you should add a "DocumentRoot" entry in your application conf file. Edit the /opt/bitnami/apps/prestashop/conf/httpd-prefix.conf file (prestashop.conf in previous versions) to add this line and commenting the "Alias" entries. You can use the "nano" command line editor or you can also edit this file from your favorite FTP program.

    $ sudo nano /opt/bitnami/apps/prestashop/conf/httpd-prefix.conf
    

    httpd-prefix.conf file content:

    DocumentRoot "/opt/bitnami/apps/prestashop/htdocs"
    # Alias /prestashop/ "/opt/bitnami/apps/prestashop/htdocs/"
    # Alias /prestashop "/opt/bitnami/apps/prestashop/htdocs"
    
    (...)
    

    Some applications also require changes in their configuration files or in the database.

    Tabs end

     

    Once you've done one of this steps, you have to modify the htaccess.conf file

    $ cd installdir/apps/prestashop/conf
    $ vim htaccess.conf
    

    Open htaccess.conf file and comment the following lines (there are two like this in the file)

    #RewriteRule . - [E=REWRITEBASE:/prestashop/]
    

    Moreover, change the following line

    ErrorDocument 404 /index.php?controller=404

    Finally you have to do some changes in the MySQL database

    $ cd installdir/mysql/bin
    $ ./mysql -u root -p
    

    It will request now your password, so type it. After that, do the following changes in the database, changing host, port and ssl_port for your own values.

    UPDATE bitnami_prestashop.ps_shop_url SET physical_uri = '/' WHERE ps_shop_url.id_shop_url =1;
    UPDATE bitnami_prestashop.ps_configuration SET value = 'host:port' WHERE name='PS_SHOP_DOMAIN';
    UPDATE bitnami_prestashop.ps_configuration SET value = 'host:ssl_port' WHERE name='PS_SHOP_DOMAIN_SSL';
    exit;
    

    Now clear the Prestashop cache

    $ rm -rf installdir/apps/prestashop/htdocs/cache/smarty/cache/

    After that, restart your Apache server.

    $ cd installdir
    $ ./ctlstript.sh restart apache

    You should be able to access to your Prestashop site from the root URL.

    How to create a full backup of PrestaShop?

    Because BitNami stacks are self-contained, the simplest option for performing your backups is to copy or compress the BitNami Stack installation directory. To do so in a safe manner, you will need to stop all servers, so this method may not be appropriate if you have people accessing the application continously.

    linux_platform.pngOn Virtual Machines and Cloud Images:

    sudo /opt/bitnami/ctlscript.sh stop

    mac_platform.png

    On OS X:

    $ cd installdir
    $ ./ctlscript.sh stop
    $ cp -r installdir application-backup
    

    Or you can create a tarball:

    $ tar -czvf application-backup.tar.gz installdir
    

    Or a zip file:

    $ zip -r application-backup.zip installdir/*

    To restore this backup you only need to uncompress the backup in the same location. It is important to use the same path that was used when the stack was originally installed.

    For example if you have a backup in a Red Hat machine, you can copy it to an Ubuntu Linux machine (a different distro!) in the same location. Then start the servers and that’s all.

    On Virtual Machines and Cloud Images:

    $ sudo /opt/bitnami/ctlscript.sh start

    On OS X:

    $ cd installdir
    $ ./ctlscript.sh start
    

    You just need to be carefull to keep the same permissions for the files and folders. If you installed as root make sure that in the new machine you copy the files also as root. And this case, if you are also moving MySQL or PostgreSQL, you will need to create those users in the new machine (if they don't exist yet).

    win_platform.png On Windows you should follow the same process. Stop the servers using the shortcuts and copy the whole installation directory. To restore the system, copy the directory to a different Windows machine in the same location and follow these steps from a command prompt:

    $ cd installdir
    $ serviceinstall.bat INSTALL
    

    You can access your BitNami Application at the usual URL.

    If you want to create only a database backup, check the following link for MySQL /Components/MySQL#How_to_create_a_database_backup or for PostgreSQL /Components/PostgreSQL#How_to_create_a_database_backup.3f

    How to upgrade PrestaShop?

    It is strongly recommended that you create a backup before starting the update process. If you have important data, it is advisable that you create and try to restore a backup to ensure that everything works properly.

    There are two different ways to upgrade your application.

    1. If you want to upgrade the application and all Stack components PHP, Ruby, MySQL, Apache… You can follow the steps described at How to upgrade the full Stack migrating the data?
    2. In case you only want to upgrade the application code without modifying any other Stack components,  you should follow the guide which is in the application page itself.

    In the case of PrestaShop, you can upgrade it using the 1-Click Upgrade module. To do so, just follow these steps

    • If you are running a Cloud Image or a Virtual Machine, or you have installed PrestaShop as root user, you need to modify the owner of the htdocs folder. /opt/bitnami is the installation path in Cloud Image and Virtual Machines
    sudo chown -R daemon:daemon /opt/bitnami/apps/prestashop/htdocs
    

     

    If your PrestaShop version is older than 1.6, you need now remove the .htaccess files in the htdocs folder

    cd /opt/bitnami/apps/prestashop/htdocs
    sudo find -name .htaccess -delete
    
    • Now, access your Prestashop administration console using your browser, go to Modules->Modules and install the 1-click Upgrade module.
    • Once installed, click on the Update It button for the 1-Click Upgrade module. This brings up the checklist for performing the upgrade. You should only notice a single red X on the list. This is because your site is not yet in Maintenance Mode. Click the button there to set it to Maintenance Mode.
    • Now, it should now be all green. Click on the Upgrade PrestaShop Now! link and wait until the upgrade process is finished.
    • After that, access the administration console again, go to Preferences->Maintenance and Enable your Shop.
    • Finally, go to your side and check if everything is correct.
    • The last step, if you need to modify again the owner of your htdocs folder. The OWNER should be bitnami in Cloud Images and Virtual Machines, and root in your local installation as root user. /opt/bitnami is the installation path in Cloud Image and Virtual Machines
    sudo chown -R OWNER:daemon /opt/bitnami/apps/prestashop/htdocs
    

    How to configure the email settings of PrestaShop?

    Go to the Administration section and click on the "Advanced Parameters" -> "E-mail" section.

    You can configure the SMTP settings to allow the application to send emails. Below you can find a sample configuration using a GMail account:

    Mail domain name: the domain of your PrestaShop application
    SMTP server: smtp.gmail.com
    SMTP user: your_user@gmail.com
    SMTP password: your_password
    Encryption: TLS
    Port: 465

    It is possible to test this configuration at the same page.

    How to enable SSL?

    SSL is enabled by default. You can see how to configure Apache to enable SSL connections at How to enable SSL to access through https?

    How to debug PrestaShop errors?

    Once Apache starts, it will create two log files, the access_log and the error_log /installdir/apache2/logs directory or in /var/log/httpd if you are using Amazon Linux or Red Hat Enterprise cloud images.

    In Virtual Machines, Cloud Images and Ubuntu based Bitnami Cloud Hosting images installdir is /opt/bitnami.

    The access_log file is used to track client requests. When a client requests a document from the server, Apache records several parameters associated with the request in this file, such as: the IP address of the client, the document requested, the HTTP status code, and the current time.

    The error_log file is used to record important events. This file includes error messages, startup messages, and any other significant events in the life cycle of the server. This is the first place to look when you run into a problem when using Apache.

    If no error is found, you will see a message similar to:

    Syntax OK
    /installdir/ctlscript.sh : httpd started
    

    The main MySQL log file is created at /installdir/mysql/data/mysqld.log file.

    How to increase the allowed size of the uploaded files?

    You can modify the following option in the php.ini file to increase the allowed size for uploads:

    ; Maximum size of POST data that PHP will accept.
    post_max_size = 16M
    
    ...
    
    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 16M
    

    How to enable PrestaShop Multistore support?

    First of all, login to your administration console (http://example.com/administration). There, go to Preferences->General, enable the Multistore support and click save.

    ps1.png

    Enable Multistore

     

    Once it is done, go to Advanced Parameters->Multistore. You can share the same Store Group or add a new one. In the example, we are going to share the Default Store Group. Go to your Default Shop (called PrestaShop in this example), and click the Add new shop button

    p6.png

    Add new Shop

    Write there the Shop name, choose the associated categories and the data you want to import from another shop (If you want to do so). Make sure to think your choice through, as you will not be able to revert back. We are going to select them all. Click Save to finish it. You have now your new Shop created. Click in the "Click here to set a URL for this shop." link to change the URL. There, write the Domain and SSL Domain for your new Shop. Also, choose the Physical URL (by default /prestashop/ but change it to / if you moved Prestashop to root URL). Click save.

    ps6.png

    Change URL for new Shop

    That's all with the Administration console. Now you have to change the htaccess Apache configuration file for Prestashop. Open the /opt/bitnami/apps/prestashop/conf/htaccess.conf file and add the following lines there (changing example.com for the URL you used), inside the <IfModule mod_rewrite.c> section. This step is required because of our htaccess security policy

    <IfModule mod_rewrite.c>
    ...
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule . - [E=REWRITEBASE:/prestashop/]
    RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]
    
    # Images
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
    # AlphaImageLoader for IE and fancybox
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]
    
    # Dispatcher
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^.*$ - [NC,L]
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule . - [E=REWRITEBASE:/prestashop/]
    RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]
    
    # Images
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
    # AlphaImageLoader for IE and fancybox
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]
    
    # Dispatcher
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule ^.*$ - [NC,L]
    RewriteCond %{HTTP_HOST} ^example.com:443$
    RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
    ... 
    </IfModule>
    

     

    Finally, restart your apache server

    sudo /opt/bitnami/ctlscript.sh restart apache
    

     

    And that's it, you can access now your new shop!

    ps7.png

     

    New shop working

    Tag page (Edit tags)
    • No tags
    Pages that link here
    Page statistics
    15465 view(s), 29 edit(s) and 16799 character(s)

    Comments

    You must login to post a comment.