Infomaniak propose certainement un des meilleurs hébergement pour un site e-commerce sous Prestashop. Un seul bémol, l’installation peut être un peu compliqué. Si vous rencontrez des problèmes (essentiellement pour passer de la version 1.1 à la version 2.5), nous vous proposons ce petit tutoriel pour vous en sortir :
(1) Uploader tous les fichiers Prestashop sur votre serveur.
(2) Avant de lancer l’ installation, appliquer les CHMOD 777 suivants :
- /config, /upload, /download, /tools/smarty/compile (permission aux dossiers seulement)
- /img, /mails, /modules, /themes/prestashop/lang, /translations (permission aux dossiers et sous-dossiers)
- Appliquer un chmod 777 au fichier sitemap.xml
- Pour pouvoir sauvegarder la base de donnée bien mettre permission fichier 777 sur admin/backup
(3) Créer un fichier .htaccess (vous créez un fichier texte “exemple.txt” que vous renommez ensuite “.htaccess”) sur votre PC, insérer les lignes suivantes :
php_flag allow_url_fopen On
php_flag allow_url_include On
php_flag register_globals Off
Enregistrez-le.
Dans le répertoire de base de l’installation Prestashop chez votre hébergeur (par exemple http://www.maboutique.com/boutique/), si un fichier .htaccess est déjà présent, l’effacer avec votre logiciel FTP. Ensuite uploader à cet endroit le .htaccess créé sur votre PC. Lui appliquer un CHMOD 777.
(4) Installer Prestashop!
(5) Pour activer l’URL rewriting, dans l’ordre :
- Activer l’option d’URL Rewriting dans les Préférences du Back-Office, faire OK ou Appliquer.
- Puis dans l’onglet Outils, Generator, Générer un .htaccess
- Avec un logiciel FTP, vérifier que les lignes
php_flag allow_url_fopen On
php_flag allow_url_include On
php_flag register_globals Off
sont toujours dans le .htaccess du répertoire d’installation de PS, si non, les rajouter (faire cette manip sur votre PC en local, effacer le fichier distant et uploader le vôtre).
Au final le fichier .htaccess qui permet à PS de fonctionner correctement chez Infomaniak devrait contenir les lignes suivantes :
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
# http://www.prestashop.com - http://www.prestashop.com/forums
# URL rewriting module activationRewriteEngine on# URL rewriting rules
RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /vlj/img/p/$1-$2$3.jpg [L,E]
RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /vlj/img/c/$1$2.jpg [L,E]
RewriteRule ^lang-([a-z]{2})/([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /vlj/product.php?id_product=$3&isolang;=$1$5 [L,E]
RewriteRule ^lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /vlj/product.php?id_product=$2&isolang;=$1$4 [L,E]
RewriteRule ^lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /vlj/category.php?id_category=$2&isolang;=$1 [QSA,L,E]
RewriteRule ^([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /vlj/product.php?id_product=$2$4 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /vlj/product.php?id_product=$1$3 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /vlj/category.php?id_category=$1 [QSA,L,E]
RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /vlj/cms.php?id_cms=$1 [QSA,L,E]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*)(.*)$ /vlj/supplier.php?id_supplier=$1$3 [QSA,L,E]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*)(.*)$ /vlj/manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]
RewriteRule ^lang-([a-z]{2})/(.*)$ /vlj/$2?isolang=$1 [QSA,L,E]
# Catch 404 errors
ErrorDocument 404 /vlj/404.php
php_flag allow_url_fopen On
php_flag allow_url_include On
php_flag register_globals Off
(6) Chez Infomaniak il y a également une modification à faire au niveau des mails. Pour faire fonctionner les mails avec la fonction mail() (et non SMTP), voici ce qu’il convient de faire :
Trouver :
tools/swift/Swift/Connection/NativeMail.php: public function __construct($additional_params=”-oi -f %s”)
tools/swift/Swift/Plugin/MailSend.php: public function __construct($params=”-oi -f %s”)
Remplacer par :
tools/swift/Swift/Connection/NativeMail.php: public function __construct($additional_params=”-oi”)
tools/swift/Swift/Plugin/MailSend.php: public function __construct($params=”-oi”)
En clair, dans le fichier tools/swift/Swift/Connection/NativeMail.php, il faut remplacer la ligne
public function __construct($additional_params=”-oi -f %s”)
par
public function __construct($additional_params=”-oi”)
et idem pour l’autre fichier.
Si vous avez des problèmes avec les nouvelles commandes dans le BO (i.e. plus de détails dans le détail d’une commande, ni de facture PDF générée), vous devrez récupérer les fichiers /classes/PaymentModule.php et /classes/Pdf.php d’une archive PS 1.1.0.5 puis les copier sur votre serveur en écrasant les fichiers les plus récents (issues de votre installation 1.2.5). Commandes et factures devraient fonctionner normalement suite à cette manipulation.
Merci à Ronny, du site http://www.lacroisette.be pour ce tutoriel.