Je viens de commencer à travailler pour une nouvelle entreprise en tant que développeur web interne. Jusqu'à présent, ils ont externalisé le travail de développement de leurs sites Web et ont décidé de les apporter à l'interne, d'où mon emploi.Meilleure pratique pour configurer Apache et SVN pour plusieurs sites et utilisateurs?
Je n'ai travaillé que sur des projets et n'ai jamais utilisé le contrôle de version.
Nous venons d'embaucher un autre développeur Web pour travailler à mes côtés et on m'a demandé de me pencher sur le contrôle de version, car il y aura jusqu'à 4 personnes qui ont besoin d'accéder aux fichiers du site Web.
Je suis complètement dépassé en ce qui concerne l'obtention d'une bonne configuration des sites Apache lors de l'exécution sous contrôle de version.
Nous avons actuellement un serveur Web de développement local exécutant Ubuntu et Apache2 et un serveur Web en direct dans un centre de données. Le serveur local héberge plusieurs sites Web ayant chacun un sous-dossier dans la racine Web, à savoir/home/htdocs/sitename_com et/home/htdocs/sitename2_com. Nous éditons actuellement des fichiers de sites Web sur PC en utilisant des partages samba ou FTP. Ce que je veux faire est d'installer SVN afin que les utilisateurs puissent extraire une copie de travail du code d'un seul site, apporter des modifications et ensuite valider les modifications dans le référentiel. Nous aurions alors besoin de pouvoir tester les sites et ensuite, quand nous serions heureux de transférer les fichiers sur notre serveur live.
Maintenant, je me suis vite rendu compte de la configuration de SVN que lorsqu'un utilisateur extrait une copie de travail sur sa machine, il ne peut pas réellement tester les modifications avant de les remettre dans le référentiel. C'est parce que les fichiers sont en PHP et doivent être exécutés via un serveur web. Maintenant, je pourrais simplement mettre XAMP sur chaque machine, mais cela aurait une configuration différente de l'installation d'Apache2 sur le serveur de développement. Ce n'est pas une option pour moi. Je suppose que les copies de travail ne doivent pas être créées sur la machine de l'utilisateur, mais à l'intérieur de la racine web du serveur de développement, c'est le même serveur que le référentiel lui-même. Je pourrais créer un partage de samba au dossier de copie de travail d'utilisateurs afin qu'ils puissent faire des changements de leur machine de fenêtres.
J'ai quelques questions:
- Pouvez-vous voir un site Web stocké dans un référentiel dans le navigateur sans avoir à vérifier d'abord?
- Si non, le site devra être extrait à un emplacement dans la racine web du même serveur?
- Dois-je utiliser un référentiel pour chaque site ou référentiel avec des sous-dossiers pour chaque site?
- Lorsqu'un utilisateur valide les modifications qu'il a apportées à une copie de travail vers le référentiel, nous devons tester ces modifications et les modifications de tous les autres qui ont été validées. Est-il possible d'obtenir SVN pour copier les modifications validées dans une zone de transit dans la racine Web pour le test?
Ou est-il une meilleure façon de le faire?
Je n'arrive pas à trouver des informations claires sur Internet concernant les meilleures pratiques lors de la configuration de SVN pour les sites Web. Il est clair comment SVN se rapporte au code source d'une application C++ où vous compilez simplement votre copie de travail sur votre machine pour le tester mais les sites Web doivent fonctionner sur un serveur Web et chaque copie de travail doit être testée sur le serveur web avant de revenir dans le référentiel.
Les sont plusieurs sites sur le serveur avec plusieurs utilisateurs travaillant sur chaque site.Nous devons être en mesure de travailler sur les sites en même temps, tester tous les changements dans une zone de transit et aimerions également une zone en direct où nous aurons un miroir exact du site en direct où nous pouvons fusionner tous les changements et tester avant télécharger sur le serveur en direct.
Tous les exemples que j'ai trouvés sur Internet utilisent des exemples d'un seul serveur hébergeant un seul site. Dans mon cas, notre serveur live héberge environ 10 sites.
Si quelqu'un pouvait me donner des conseils sur la façon de configurer ceci, la structure du répertoire Apache, la structure du référentiel, etc. Je l'apprécierais vraiment.
Merci d'avance!