-
Serveur Test PHP et SVN
Bonjour
Je suis en train de mettre en place toute la structure pour déployer une application PHP sur un serveur. Voici l’architecture :
3 serveurs :
- Local (wamp)
- Test (commun à tous les développeurs)
- Prod
On passe de local à test à l’aide d’un SVN.
- J’arrive à passer les fichiers de local à test (commit, …)
- J’arrive à les voir sur mon serveur : http://svn.local/projettest
(voir image en pj)
Maintenant, comment faire pour voir le résultat? voir la page index interprété par le serveur?
Je pensais pouvoir faire un VHost qui pointe sur le dossier SVN, hors l'arborescence côté client et serveur n'est pas du tout la même. Voici le contenu de mon dossier "projettest" contenu dans le repository SVN.
- conf
- dav
- db
- format
- hooks
- locks
Mais impossible dans ces dossiers de mettre la main sur les mien. Y a t'il une façon de faire svp?
Je voudrais par exemple que http://projettest.local affiche et exécute réellement les pages, et non qui me les listes comme http://svn.local/projettest
Quelqu’un sait il comment faire svp?
Par avance merci à tous
-
Si j'ai bien compris votre souci, vous avez un poste de développement où vous développez votre application et un serveur pour le test où vous souhaitez déployer votre application.
Le plus simple est de vous abonner au travers d'un des dossiers de votre serveur à votre dépot de version.
En lançant la commande SVN update, votre environnement de test se construira. De cette façon, vous pouvez utiliser revenir à une version précédente sur votre environnement de test.
Vous créez votre vhost sur le dossier qui est est abonné au répertoire SVN.
-
Exact, je ne l'avais pas vu sous cet angle là. Je pense en effet que c'est le mieux. Par contre, pour ce qui est du serveur de test au serveur de prod, ai je intérré d'utiliser SVN, ou bien de passer par l'intégration continue à l'aide d'outil comme Phing et PHPundercontrol?
-
Phing n'est pas un outil d'intégration continue mais un outil de build.
Son usage est intéressant dans votre situation.
Vous pouvez constriuire un build (target) qui transfère la version de test vers le serveur de production.
Pour publier votre application sur le serveur de production, vous pouvez passer par SVN en prenant quelques précautions (souscrire exclusivement à une version taggée qui aura été testée et validée).
L'intégration continue est une autre étape. Je ne suis pas sur que ce soit la réponse adapté dans votre cas.
En effet, à part cas particulier, vous publiez le code sur le serveur de production lors d'une release testée et non pas à intervalle régulier.
L'intégration continue, c'est plus assurer la continuité dans le temps de votre workflow (Exécution des tests unitaires à intervalle régulier, reporting, publication des nightybuilds...). Je pense qu'il serait imprudent de publier une nighty build en production, ce serait risqué et de nombreux problèmes pourraient apparaitre.
-
Ok je me suis peut être emmêlé les pinceaux.
Donc j'ai du svn:
- Local <--> Test
- Test <--> Prod
L'utilité de Phing dans ce cas là est juste de lancer la commande svn alors?
N'y a t'il pas moyen à l'aide de Phing de mettre à jour sur le serveur de Prod sans passer par svn (FTP, rsync, ...) mais en ne transférant que les fichiers qui ont été modifiés?
Cela m'éviterait d'avoir deux serveur SVN, surtout sur le serveur de prod ou je me moque d'avoir les différentes versions. Par contre je ne veux pas avoir à recopier tout les fichiers à chaque fois, car ça serait trop long.
En tout cas merci de vos explications.