2008-11-01 6 views
12

J'ai travaillé sur plusieurs projets PHP et j'ai toujours des problèmes avec l'organisation de mon travail. Où développez-vous votre application - sur localhost, serveur distant ou peut-être une production (!)? Quand je travaille sur mon localhost après avoir fait un chemin important, j'envoie de nouveaux fichiers par ftp - mais parfois il arrive d'oublier un fichier et c'est fatiguant de parcourir plusieurs répertoires pour copier les fichiers modifiés. Quelles sont les meilleures pratiques que vous proposez?Comment gérez-vous PHP Project Development Lifecycle?

Répondre

10

C'est la façon dont nous gérons notre site commercial:

  1. se développer dans un bac à sable locale
  2. Check-in à SVN
  3. build/test automatisé de SVN sur serveur interne dev
  4. Déploiement scripté à l'aide de rsync pour la mise en attente serveur pour QA/UAT
  5. Déployé par script sur les serveurs de production .

Les serveurs de stockage et de production sont hébergés par le fournisseur de services Internet et sont appariés matériel et version et exécutés RHEL, le serveur de développement interne correspond à la version CentOS.

De cette façon, lorsque le code frappe les serveurs de production ne devrait pas y avoir de mauvaises surprises que même les scripts de déploiement se vérifier à l'étape 4.

+1

Nous faisons quelque chose de similaire sauf que nous utilisons une extraction SVN pour construire la scène (permet de spécifier un numéro de révision ou une étiquette - dans le cas où le tronc est non déployable) - alors utilisez rsync pour que la production corresponde exactement à la scène. – DavidWinterbottom

0

Je développe sur une machine de développement qui a un environnement identique à celui de production - qui empêche un comportement différent à cause de différentes versions ou configs. Après avoir fini je déplace juste tous les fichiers sur le serveur de production.

Winmerge est un outil Windows sympa et gratuit pour différencier vos fichiers entre le développement et la machine de production.

+0

N'est-ce pas comme avoir un système de version de contrôle sans la possibilité de remonter dans le temps? –

1

Google App Engine dispose d'un outil approprié qui télécharge automatiquement vers les fichiers d'environnement de production qui sont modifiés; Je ne sais pas s'il y a quelque chose de similaire pour PHP. Donc, faire un script dev2prod (un script qui le fait automatiquement) devrait être une bonne solution.

Pour gérer le fichier source local, tout le monde peut vous suggérer d'utiliser un source code control system.

0

Développer dans votre machine locale avec la même configuration exacte que votre environnement de développement (c'est les mods Apache, les extensions PHP et ainsi de suite), en utilisant un système de contrôle de version (je préfère SVN) pour garder une trace des fichiers modifiés et ce n'est pas le cas.

Ensuite, vous pouvez écrire un script dans votre environnement de production ou de test pour copier/mettre à jour les fichiers du référentiel vers le chemin du serveur Web.

0

probablement obtenir grondé pour rediriger un ancien poste, mais voici comment je le fais en utilisant des outils gratuits:

J'utilise Netbeans, Git, bitbucket, arbre source, gitflow et FTPloy.

Bitbucket.com: créez un compte gratuitement. SourceTree: libre de bitbucket. Excellent outil pour gérer les dépôts git. Tous les commits, fusionne et tire peut être fait ici. Les problèmes dans bitbucket peuvent être suivis.Dans sourcetree, prenez la branche master et cliquez sur "git flow" - google gitflow - c'est le flux de travail fantastique des fonctions, hotfix, développement et release branches et sourcetree permet d'automatiser le processus. FTPloy.com automatise le déploiement de votre branche principale.

Gratuit est un dépôt/serveur. Mais vaut la mise à niveau si vous voulez pousser la branche de développement vers un sandbox serveur pour les tests.

Espérons que cela aide quelqu'un à chercher sur le Web!