8721 sujets

Développement web côté serveur, CMS

Bonjour,

Je n'utilise pas actuellement de système de gestion de version sur mes projets de développement (PHP) et je souhaite mettre en place GIT.
Je suis donc totalement débutant en la matière et j'aurais besoin en particulier d'un conseil sur la "meilleure" façon de l'installer et de l'utiliser compte-tenu de mon environnement de travail (quitte à modifier celui-ci si nécessaire).

Pour faire simple je fais du dév PHP sous Windows 7 / Dreamweaver et mes fichiers locaux sont actuellement sur un disque réseau partagé (on ne rigole pas SVP).
Pour tester, j'envoie mes fichiers par FTP sur un serveur Linux Debian 8 indépendant qui fait office de serveur de développement (et de pré-prod en fait) - je n'ai pas de serveur local sur mon windows.
J'ai donc 2 copies de développement (une "locale" sur le disque partagé et une distante en local sur le linux) + une 3eme copie en prod chez l'hébergeur quand tout est OK.

Ma question est : est-ce que je dois installer GIT sur mon Windows local ou sur mon Linux distant (c'est soit l'un soit l'autre je suppose) ?

Mais en fait cette question en cache une autre qui devrait peut-être être résolue en préalable : est-ce que mon environnement de travail est "optimum" ? je parle notamment du fait d'avoir 2 copies potentiellement non synchronisées et de systématiquement faire du FTP. Est-ce que je ne devrais pas soit directement travailler sur le répertoire linux (à faire monter en partage sous windows) ? ou je ne sais quelle autre architecture ?
je précise que j'ai quand même essayé pas mal de solutions et aucune ne m'a satisfaite (Wamp, Xampp, Bitnami Wamp en local, LAMP en instance Google cloud, virtualisation avec Vagrant/Virtual Box) et que j'ai abouti à la conclusion que le mieux restait d'avoir une machine linux en réseau sur laquelle j'ai toute la main donc je tiens quand même à ce trio machine de travail windows / serveur de dév linux / serveur de prod.

Merci pour vos conseils.
Bonsoir,

En préambule, je commencerais par dire qu'il existe probablement au moins autant de façon de travailler qu'il n'y a d'individus et d'entreprises sur Terre, et il n'y a probablement pas de solution universelle qui convienne et plaise à tout le monde; ça sera donc à chacun de se mettre à l'aise en fonction de ses possibilités.

Personnellement je trouverais assez pénible de devoir sans cesse transférer des fichiers par FTP, donc pour moi un serveur local est indispensable pour développer dans de bonnes conditions. Après la forme importe peu, soit WAMP qui fonctionne très bien, soit une VM vagrant avec dossier partagé qui fonctionne aussi très bien; les deux ont des avantages et des inconvénients.
Qu'est-ce qui t'a déplu ou qui n'a pas joué pour toi dans ces solutions ?
A creuser peut-être, la possibilité depuis windows 10 d'avoir un genre de VM debian totalement intégrée (quand c'est installé, il suffit de taper bash et paf on est dans une console linux où on peut presque tout faire)

Pour ta première question sur git: où l'installer, je te recommanderais de l'installer aux deux places: sur ton windows local, et ton linux distant à la fois.
Comme git est un système décentralisé, ça peut être pratique de jouer des push et des pull pour se synchroniser. L'avantage c'est que tout est versionné et il n'y a aucun risque de perdre quoi que ce soit.
A ce stade ça reste malgré tout manuel.

Cependant, un truc que je trouve cool avec git est la possibilité de mettre des hooks. Sur mes sites perso, j'ai fait en sorte que quand je push sur master, le site en prod fait un pull de son côté et se met ainsi à jour. Je n'ai plus besoin de me casser les pieds avec du FTP (d'ailleurs je n'ai pas installé de serveur FTP sur mon dédié, ça fait un potentiel trou de sécurité en moins)
D'autres trouveront ce genre d'automatisme dangereux car il y a un risque de casser la prod si on balance par inadvertance des conneries sur master, à chacun de voir où poser les limites en fonction de ses usages.
Merci pour cette réponse qui commence à m'éclairer un peu. Installer sur les 2 OK, je comprends, pour pouvoir bénéficier de la décentralisation et donc pouvoir récupérer à tout moment, où que je sois, l'ensemble de mon dépôt (par exemple sur mon portable à la maison) vu que mon serveur linux est accessible de l'extérieur et pas ma machine de travail (quoique avec teamviewer...) mais aussi si un jour je travaille avec un autre développeur...
là où c'est pas clair pour moi c'est sur la console : je suppose qu'on l'installe sur les 2 mais on n'utilise que la console windows pour faire toutes les opérations (push, commit..) puis il faut mettre en place une sorte de config (les hooks dont tu parles?) pour qu'il y ait une synchro avec le distant mais a priori pas besoin de se connecter à la console sur le distant ?

Concernant les wamp, xampp, bitnami wamp et autres : essaie de faire tourner magento 2 avec et tu comprendras ce que je veux dire ... 15 à 30 secondes pour afficher la première page avec une install de base (même pas de produits) !!!
je suis bloqué sur Windows 7 par mon administrateur donc je ne sais pas si c'est mieux en 10 : j'ai passé des heures sur les forums pour essayer de trouver la cause : un qui dit c'est l'antivirus, l'autre la config apache, le troisième qui dit que c'est skype qui bouffe le port 80... aucune solution proposée ne m'a permis d'arriver à un résultat correct pour commencer à développer.

Les solutions cloud (bitnami lamp sur Google cloud), j'ai arrêté parce j'ai rencontré plusieurs problèmes d'administration de serveur différents de ceux rencontrés sur ma debian perso et je ne suis pas suffisamment expert pour y remédier. En plus l'interface de Google cloud et le support, non merci !! Je me suis découragé après quelques heures sur les forums. Cela dit, j'ai pas essayé Amazon, digital ocean... ou autres concurrents mais de toutes façons, cela ne répond pas au problème du FTP systématique...

Après j'ai essayé virtual box et vagrant et là pareil quelle galère de devoir installer tout un tas de machins (python, chocolate machin chose) et au final pas de synchro entre mon local et mon répertoire virtuel. Encore bouffé du forum et a priori c'est pas au point sur Windows 7 donc j'ai lâché l'affaire.

Après je suis tombé sur cet article de Josh Lockhart dans lequel je me suis reconnu : http://www.newmediacampaigns.com/blog/woah-i-switched-to-windows-and-its-awesome-for-php-development
+ les commentaires intéressants
Et j'ai commencé à penser que peut-être open-server ? mais non je n'y crois pas.
Le built-in server de PHP ? trop limité
Peut-être IIS à la place de Apache mais c'est trop différent de mon prod (plein de htaccess, mod_rewrite et tout), ça va pas le faire...
Je viens de découvrir webMatrix (dernier commentaire) mais j'ai dû mal à croire que ce soit très différent

Le mieux est peut-être de passer à Windows 10 et même d'utiliser directement le Windows Linux Subsystem mais en attendant je suis bloqué !!

Merci
Administrateur
Pourquoi ne pas envisager de se servir d'un service externe pour le repo, par exemple Gitlab, Github, Bitbucket ? Celui-ci fera office de "serveur" et il restera à installer un client git sur les machines qui devront s'en servir pour récupérer les fichiers et/ou les push vers le repo.

L'installation d'un serveur git n'est pas toujours facile au début lorsqu'on le découvre.
Ah oui j'ai oublié de mentionner cette possibilité qui me semblait être la meilleure en effet.
J'étais d'ailleurs sur le point d'installer Gitlab sur mon serveur avant de partir dans d'autres directions. Preuve que je ne sais plus où j'en suis.

Merci de valider cette option et de me remettre dans le droit chemin !!!
En plus avec Gitlab, nos projets sont en sécurité Smiley smile
https://www.nextinpact.com/news/103135-gitlab-erreur-humaine-et-sauvegardes-defaillantes-entrainent-perte-300-go-donnees.htm

PS : je ne l'utiliserai pas en mode hébergé....
Administrateur
Bonjour,

+1 avec QuentinC :
il est hautement préférable que chaque dév ait git sur sa machine et qu'il y ait 1 dépôt commun. Ca fonctionne aussi avec 50 dépôts pour des projets bien décentralisés mais 1 seul c'est mieux Smiley smile
Ces 2 étapes sont de base prévues dans git.

Sous Windows, l'install proposée par SCM fonctionne bien et propose un 'Git bash' bien pratique (par rapport à cmd et Powershell quand on a connu la ligne de commande Linux...). Au quotidien, j'utilise SourceTree qui globalement fonctionne correctement même si de petits détails sont irritants (moins qu'avec SmartGit toutefois et ça a l'avantage de la gratuité)