{"id":587,"date":"2014-02-07T17:07:24","date_gmt":"2014-02-07T15:07:24","guid":{"rendered":"http:\/\/www.h-hennes.fr\/blog\/?p=587"},"modified":"2014-05-23T17:11:25","modified_gmt":"2014-05-23T15:11:25","slug":"prestashop-installer-rapidement-une-version-de-developpement-avec-bash","status":"publish","type":"post","link":"https:\/\/www.h-hennes.fr\/blog\/2014\/02\/07\/prestashop-installer-rapidement-une-version-de-developpement-avec-bash\/","title":{"rendered":"Prestashop : installer rapidement une version de d\u00e9veloppement avec bash"},"content":{"rendered":"<p>Lors du d\u00e9veloppement de modules Prestashop, il est utile de tester son fonctionnement sur l&rsquo;ensemble des version de Prestashop.<br \/>\nCependant le processus d&rsquo;installation d&rsquo;une version sp\u00e9cifique de Prestashop fait perdre pas mal de temps \u00e0 chaque fois.<\/p>\n<p>Voici donc un script bash qui m&rsquo;a permis d&rsquo;industrialiser l&rsquo;installation de Prestashop sur mon serveur de d\u00e9veloppement.<\/p>\n<p><strong>\/!\\ Ce script\u00a0 est\u00a0une version beta qui n\u00e9cessite d&rsquo;\u00eatre utilis\u00e9e avec pr\u00e9cautions, et ou de nombreuses am\u00e9liorations sont possibles, il fonctionne uniquement pour les versions de Prestashop sup\u00e9rieures \u00e0 la version 1.5.4.1 ( qui disposent de l&rsquo;installation CLI )<\/strong><br \/>\nLes postulats de d\u00e9part sont les suivants :<\/p>\n<ul>\n<li>L&rsquo;utilisateur qui ex\u00e9cute la commande ssh \u00e0 les droits de cr\u00e9ation \/ modification \/ ex\u00e9cution sur l&rsquo;ensemble des dossier et la cr\u00e9ation de base de donn\u00e9es<\/li>\n<li>L&rsquo;ensemble des versions de prestashop seront install\u00e9e sur le m\u00eame nom de domaine dans un sous-dossier \u00ab\u00a0\/prestashop\/\u00a0\u00bb<\/li>\n<li>Le nom du dossier de chaque version sera sous la forme \u00ab\u00a0prestashop_1-x-x-x\u00a0\u00bb<\/li>\n<li>Chaque version disposera de sa propre base de donn\u00e9es<\/li>\n<li>Les mots de passe admin et base de donn\u00e9es seront toujours les m\u00eames<\/li>\n<\/ul>\n<pre lang=\"bash\" escaped=\"true\">#!\/bin\/bash\r\n\r\n#Check des saisies utilisateurs\r\nif [ -z $1 ];then\r\n  echo \"Pas de version majeure saisie (3 \/ 4 \/ 5 \/ 6 )\"\r\n  exit\r\nelse\r\n  majorVersion=$1  \r\nfi\r\n\r\nif [ -z $2 ];then\r\n  echo \"Pas de version mineure saisie\"\r\n  exit\r\nelse\r\n minorVersion=$2\r\nfi\r\n\r\nif [ -z $3 ];then\r\n  correctVersion=0\r\nelse\r\n  correctVersion=$3\r\nfi\r\n\r\n#Variable par d\u00e9faut du script (commun \u00e0 tous les presta)\r\ndir=\"\/home\/user\/webdirectory\/prestashop\/\"\r\ndomaineName=\"yourdomaine.com\"\r\n\r\n#Acc\u00e8s base de donn\u00e9es ( Remplacer par les bonnes informations )\r\ndbuser=\"dbuser\"\r\ndbpassword=\"dbpassword\"\r\n\r\n#Acc\u00e8s administration (Remplacer par les bonnes informations )\r\ncontactEmail=\"youremail@email.com\"\r\nadminpass=\"password\"\r\n\r\n#On se positionne dans le dossier web\r\ncd $dir\r\npwd\r\n\r\n#Nom du dossier qu'on doit creer\r\nnewdir=\"prestashop_1-${majorVersion}-${minorVersion}-${correctVersion}\"\r\n\r\n#On v\u00e9rifie que le dossier n'existe pas\r\nif [ -d \"$newdir\" ]; then\r\n    echo \"$newdir existe !\"\r\n    echo \"Arret de l'install\"\r\n    exit\r\n#Si le dossier n'existe pas on lance le processus\r\nelse\r\n    echo \"$newdir n'existe pas!\"\r\n    echo \"Creation du dossier $newdir\"\r\n    mkdir $newdir\r\nfi\r\n\r\n#on se place dans le nouveau dossier\r\ncd $newdir\r\n\r\n#en fonction de la version on d\u00e9termine les noms des dossiers fichiers  et de la bdd\r\nfilename=\"prestashop_1.$majorVersion.$minorVersion.$correctVersion.zip\"\r\ndbname=\"prestashop_1_${majorVersion}_${minorVersion}_${correctVersion}\"\r\n\r\n#T\u00e9l\u00e9chargement de l'archive depuis le site prestashop\r\nif [ ! -f \"$filename\" ]\r\nthen\r\nwget \"http:\/\/www.prestashop.com\/download\/old\/$filename\"\r\nelse\r\n echo \"Fichier deja dl\"\r\nfi\r\n\r\n#On d\u00e9zippe l'archive , cela va cr\u00e9er un dossier Prestashop qu'on ne veut pas on d\u00e9place les fichiers et on supprime ce dossier et l'archive pour finir\r\n\r\nunzip $filename\r\ncd prestashop\r\nmv * ..\/\r\ncd ..\r\nrmdir prestashop\r\nrm $filename  \r\n\r\n#Creation d'une base de donnees\r\nmysql -u $dbuser -p$dbpassword -e \"CREATE DATABASE IF NOT EXISTS $dbname \"\r\n\r\n#Prestashop dispose d'un install CLI depuis la version 1.5.4.1 si la version est sup\u00e9rieure on passe par ce mode d'installation\r\n\r\ninstallCli=0\r\n\r\nif [ $majorVersion -gt 4 ]\r\nthen\r\n if [ $minorVersion -gt 3 ]\r\n then \r\n   #Cas particulier pour la version 1.5.4.0\r\n   if [ $majorVersion -eq 5 -a $minorVersion -eq 4 -a $correctVersion -eq 0 ]\r\n     then\r\n      echo \"Install CLI KO (version 1.5.4.0)\"\r\n     else\r\n       echo \"Install CLI OK\"\r\n       installCli=1\r\n     fi \r\n else\r\n  #Pour les versions sup\u00e9rieures \u00e0 prestashop 1.5 l'install CLI est OK\r\n\u00a0\u00a0\u00a0 if [ $majorVersion -gt 5 ]\r\n\u00a0\u00a0 \u00a0then\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0installCli=1\r\n\u00a0\u00a0 \u00a0else\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo \"Instal CLI KO (Version Mineure)\"\r\n\u00a0\u00a0 \u00a0fi\u00a0\u00a0\u00a0 \r\n fi\r\nelse\r\n echo \"Pas d'install CLI (version majeure)\"\r\nfi\r\n\r\n#Installation de la solution en CLI si cela fonctionne\r\n#echo \"install CLI $installCli\"\r\npwd\r\n\r\nif [ $installCli -eq 1 ]\r\n then\r\n echo \"Lancement de l'installation CLI\"\r\n cd install\r\n php index_cli.php --domain=\"${domaineName}\"  --db_name=$dbname --db_user=$dbuser --db_password=$dbpassword --email=$contactEmail --password=$adminpass\r\nelse\r\n echo \"Installation automatique pas encore disponible\"\r\nfi\r\n\r\n#Pour finir on renomme le dossier d'install et le dossier d'admin\r\ncd ..\r\nmv install _install\r\nmv admin admin-dev\r\n\r\n#Sp\u00e9cifique \u00e0 mon serveur : Mise en place des chmods\r\nchmod -R 777 cache\r\nchmod -R 777 tools\r\nchmod -R 777 config<\/pre>\n<p>Enregistrer ce fichier sous \u00ab\u00a0install-prestashop.sh\u00a0\u00bb<br \/>\nPour l&rsquo;utiliser et installer par exmple la version 1.5.5.0 il faudra saisir la commande suivante<\/p>\n<pre lang=\"bash\" escaped=\"true\">bash install-prestashop.sh 5 5 0<\/pre>\n<p>Pour la version 1.5.6.2<\/p>\n<pre lang=\"bash\" escaped=\"true\">bash install-prestashop.sh 5 6 2<\/pre>\n<p><strong>Edit 23\/05\/2014 : Maj du script pour le rendre compatible avec prestashop 1.6<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lors du d\u00e9veloppement de modules Prestashop, il est utile de tester son fonctionnement sur l&rsquo;ensemble des version de Prestashop. Cependant le processus d&rsquo;installation d&rsquo;une version sp\u00e9cifique de Prestashop fait perdre pas mal de temps \u00e0 chaque fois. Voici donc un script bash qui m&rsquo;a permis d&rsquo;industrialiser l&rsquo;installation de Prestashop sur mon serveur de d\u00e9veloppement. \/!\\ [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[245,254,6],"tags":[268,104,269],"class_list":["post-587","post","type-post","status-publish","format-standard","hentry","category-prestashop-2","category-serveurs-dedies","category-trucs-et-astuces","tag-bash","tag-prestashop","tag-prestashop-cli"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/587","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/comments?post=587"}],"version-history":[{"count":4,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/587\/revisions"}],"predecessor-version":[{"id":665,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/587\/revisions\/665"}],"wp:attachment":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/media?parent=587"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/categories?post=587"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/tags?post=587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}