N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.
Lors du développement de modules Prestashop, il est utile de tester son fonctionnement sur l’ensemble des version de Prestashop.
Cependant le processus d’installation d’une version spécifique de Prestashop fait perdre pas mal de temps à chaque fois.
Voici donc un script bash qui m’a permis d’industrialiser l’installation de Prestashop sur mon serveur de développement.
/!\ Ce script est une version beta qui nécessite d’être utilisée avec précautions, et ou de nombreuses améliorations sont possibles, il fonctionne uniquement pour les versions de Prestashop supérieures à la version 1.5.4.1 ( qui disposent de l’installation CLI )
Les postulats de départ sont les suivants :
- L’utilisateur qui exécute la commande ssh à les droits de création / modification / exécution sur l’ensemble des dossier et la création de base de données
- L’ensemble des versions de prestashop seront installée sur le même nom de domaine dans un sous-dossier « /prestashop/ »
- Le nom du dossier de chaque version sera sous la forme « prestashop_1-x-x-x »
- Chaque version disposera de sa propre base de données
- Les mots de passe admin et base de données seront toujours les mêmes
#!/bin/bash #Check des saisies utilisateurs if [ -z $1 ];then echo "Pas de version majeure saisie (3 / 4 / 5 / 6 )" exit else majorVersion=$1 fi if [ -z $2 ];then echo "Pas de version mineure saisie" exit else minorVersion=$2 fi if [ -z $3 ];then correctVersion=0 else correctVersion=$3 fi #Variable par défaut du script (commun à tous les presta) dir="/home/user/webdirectory/prestashop/" domaineName="yourdomaine.com" #Accès base de données ( Remplacer par les bonnes informations ) dbuser="dbuser" dbpassword="dbpassword" #Accès administration (Remplacer par les bonnes informations ) contactEmail="[email protected]" adminpass="password" #On se positionne dans le dossier web cd $dir pwd #Nom du dossier qu'on doit creer newdir="prestashop_1-${majorVersion}-${minorVersion}-${correctVersion}" #On vérifie que le dossier n'existe pas if [ -d "$newdir" ]; then echo "$newdir existe !" echo "Arret de l'install" exit #Si le dossier n'existe pas on lance le processus else echo "$newdir n'existe pas!" echo "Creation du dossier $newdir" mkdir $newdir fi #on se place dans le nouveau dossier cd $newdir #en fonction de la version on détermine les noms des dossiers fichiers et de la bdd filename="prestashop_1.$majorVersion.$minorVersion.$correctVersion.zip" dbname="prestashop_1_${majorVersion}_${minorVersion}_${correctVersion}" #Téléchargement de l'archive depuis le site prestashop if [ ! -f "$filename" ] then wget "http://www.prestashop.com/download/old/$filename" else echo "Fichier deja dl" fi #On dézippe l'archive , cela va créer un dossier Prestashop qu'on ne veut pas on déplace les fichiers et on supprime ce dossier et l'archive pour finir unzip $filename cd prestashop mv * ../ cd .. rmdir prestashop rm $filename #Creation d'une base de donnees mysql -u $dbuser -p$dbpassword -e "CREATE DATABASE IF NOT EXISTS $dbname " #Prestashop dispose d'un install CLI depuis la version 1.5.4.1 si la version est supérieure on passe par ce mode d'installation installCli=0 if [ $majorVersion -gt 4 ] then if [ $minorVersion -gt 3 ] then #Cas particulier pour la version 1.5.4.0 if [ $majorVersion -eq 5 -a $minorVersion -eq 4 -a $correctVersion -eq 0 ] then echo "Install CLI KO (version 1.5.4.0)" else echo "Install CLI OK" installCli=1 fi else #Pour les versions supérieures à prestashop 1.5 l'install CLI est OK if [ $majorVersion -gt 5 ] then installCli=1 else echo "Instal CLI KO (Version Mineure)" fi fi else echo "Pas d'install CLI (version majeure)" fi #Installation de la solution en CLI si cela fonctionne #echo "install CLI $installCli" pwd if [ $installCli -eq 1 ] then echo "Lancement de l'installation CLI" cd install php index_cli.php --domain="${domaineName}" --db_name=$dbname --db_user=$dbuser --db_password=$dbpassword --email=$contactEmail --password=$adminpass else echo "Installation automatique pas encore disponible" fi #Pour finir on renomme le dossier d'install et le dossier d'admin cd .. mv install _install mv admin admin-dev #Spécifique à mon serveur : Mise en place des chmods chmod -R 777 cache chmod -R 777 tools chmod -R 777 config |
Enregistrer ce fichier sous « install-prestashop.sh »
Pour l’utiliser et installer par exmple la version 1.5.5.0 il faudra saisir la commande suivante
bash install-prestashop.sh 5 5 0 |
Pour la version 1.5.6.2
bash install-prestashop.sh 5 6 2 |
Edit 23/05/2014 : Maj du script pour le rendre compatible avec prestashop 1.6