ChDUP Posted August 11, 2018 Share Posted August 11, 2018 (edited) Bonjour à toutes et tous Nous nous demandons comment mettre en place notre environnement de dev et de preprod pour travailler sur une preprod conforme à la version de prod (on a une replication de base vers un serveur local toutes les nuits). Le problème tient surtout à l'importance de l'id_shop directement lié à l'URL sous Prestashop. Nous voudrions que chacun puisse accéder via un sous-domaine, par exemple dev1.monsite.com, dev2.monsite.com, mais que tout le monde utilise la même bdd (celle que nous répliquons). Comment fonctionnez-vous avec vos équipes de devs, des intervenants exterieurs, etc pour maintenir et développer vos Prestashop ? Merci Edited August 13, 2018 by ChDUP changement de titre (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted August 11, 2018 Share Posted August 11, 2018 Si chacun utilise la même bdd vous allez forcément vous colisionner ! Pas la bonne idée à mon avis Mais sinon il te suffit de créer autant d'environnement que souhaité et de ne pas forcer la redirection sur l'url canonique et chacun verra son code sur la même bdd. Attention quand même, les liens dynamiques, et menu ne respecterons pas ce "domaine" sauf à forcer cela via une override de link Link to comment Share on other sites More sharing options...
ChDUP Posted August 12, 2018 Author Share Posted August 12, 2018 ah oui , ne pas forcer la redirection, effectivement. Il faut que je teste le comportement. Mais de ce que j'ai vu, l' ID_shop est determiné par l'URL donc tout ce qui découle de l'ID_shop (modules activés, prix, etc) découle de l'URL. Je vais tester , voir comment ça se comporte (et nous sommes en multiboutique) Link to comment Share on other sites More sharing options...
ChDUP Posted August 13, 2018 Author Share Posted August 13, 2018 sans forcer la redirection vers l'URL canonique, Presta change tout de même pour le domaine du 1er shop. (celui indiqué dans la table shop_url) Link to comment Share on other sites More sharing options...
ChDUP Posted August 17, 2018 Author Share Posted August 17, 2018 du coup, j'avoue que je ne comprend pas à quoi sert cette option "diriger vers l'URL canonique" ? Le comportement semble être le même avec ou sans cette activation Link to comment Share on other sites More sharing options...
Xelp59 Posted August 17, 2018 Share Posted August 17, 2018 Concernant vos environnements de dev, vous êtes sur quoi ? Quelque chose comme Docker / Vagrant ? Car pour Vagrant, vous pourriez créer une machine virtuelle que chacun pourrait déployer sur son poste. Cette image pourrait, à son chargement, soit récupérer un dump tout frais ou meme, se connecter à la base de votre choix. Ensuite différentes solutions sont possibles pour le projet /www et les vhosts. Ensuite, vous pouvez étendre les fonctions et configurations de ce Vagrant via quelques scripts d'installation assez simples à mettre en place. Link to comment Share on other sites More sharing options...
ChDUP Posted August 17, 2018 Author Share Posted August 17, 2018 le but à terme est d'avoir nos environnements sous Docker. Mais nous gardons le souhait de pouvoir faire tourner le site sous une autre URL que celles configurées pour les shops dans la bdd. Link to comment Share on other sites More sharing options...
loranger Posted September 20, 2018 Share Posted September 20, 2018 C'est exactement le problème que j'avais : Partager la base de données d'un Prestashop pour bosser localement à plusieurs, tout en gardant chaque poste accessible en http depuis le réseau local (et donc sur des ips et hostname différents). On s'est inspirés du rewritter fourni par l'image docker prestashop officielle. On a donc modifié le vhost de l'apache du docker pour ajouter cette directive php : php_value auto_prepend_file /docker_prepend.php Dorénavant, chaque page appelée depuis le prestashop hébergé dans l'un de nos environnements docker est prepended par ces quelques lignes de PHP : <?php $pdo_dsn = sprintf('mysql:host=%s;dbname=%s', getenv('DB_SERVER'), getenv('MYSQL_DATABASE')); $DBHandler = new PDO($pdo_dsn, getenv('DB_USER_FRONT'), getenv('DB_PASSWD')); $DBStatement = $DBHandler->prepare("UPDATE `ps_shop_url` SET `domain` = :domain, `domain_ssl` = :domain WHERE `id_shop` = :shop_id AND `domain` != :domain;"); $DBStatement->execute([ 'domain' => $_SERVER['HTTP_HOST'], 'shop_id' => getenv('SHOP_ID'), ]); Si la requête (HTTP) courante provient d'un HTTP_HOST différent du domaine souhaité (celui du shop_id voulu), le domain est alors ré-écrit juste avant que Prestashop soit initialisé. C'est pas joli-joli, mais c'est Presta qu'a commencé. En tout cas, ça fonctionne et ça nous permet de tous travailler sur nos environnements locaux à partir de la même base de données, tout en nous permettant de joindre le serveur des autres dans jamais se soucier du hostname. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now