11
votes

Système de construction PHP

J'utilise PHPunSControl qui fonctionne sur le contrôle de la croisière pour mon intégration continue et Test de l'unité. Je dispose également de la configuration pour exécuter phpdocumenter pour générer des phpdocs pour moi et il exécute le code PHP Sniffer pour faire respecter les normes de codage pour moi. Mais maintenant, je veux configurer quelque chose sur ce même serveur (Ubuntu) pour faciliter le déploiement d'un serveur distant. Je l'ai déjà configuré pour que chaque construire réussisse, une exportation SVN est effectuée à partir d'un réseau dans un répertoire dans le dossier Projets du serveur.

J'ai envisagé de rédiger un petit script PHP personnalisé qui sera SSH à un serveur distant configuré, Tarball dans la dernière exportation, copiez-la, jusqu'à ce que les migrations. Un script PHP comme celui-ci ne devrait pas être trop difficile initialement, à moins que je n'ai besoin d'éventuellement commencer à mettre à l'échelle sur plusieurs serveurs. Je sais qu'il y a des systèmes là-bas comme Phing , tissu et autres.

Ma question est si quelqu'un a une expérience avec ces personnes et peut fournir des professionnels et des contenus? J'ai commencé à installer Phing sur mon serveur et j'essaie de jouer en tissu à côté de jouer avec eux, mais vous vous demandiez si quiconque les utilisait de plus en plus, ou devait les mettre à l'échelle, pourrait fournir des commentaires.


0 commentaires

6 Réponses :


0
votes

Si je devais mettre en place un tel système de déploiement, je choisirais probablement une solution légèrement différente de ce que vous avez décrit ci-dessus. Au lieu d'avoir du code qui fonctionne localement sur mon système, se connecte à une liste de serveurs distants et effectue le "travail" là-bas, je voudrais apporter le module de mise à jour avec le reste du code et disposerait de tirer les données de mise à jour de mon serveur sur demande (ou plutôt quand je "ai" dit "ça va le faire). De cette façon, vous avez beaucoup moins à vous inquiéter de votre fin (il vous suffit de servir le code mis à jour via HTTP lorsque vous avez demandé et le serveur distant gère le reste). Juste mes 2 cents.


0 commentaires

8
votes

J'ai utilisé Capistrano avec PHP (même s'il s'agit d'un rails-y truc comme il est écrit dans Ruby).

Cela a été vraiment simple d'utiliser, mais cela a dit que je n'ai pas eu à faire grand chose avec elle. Nous nous déployons dans divers serveurs de stadification / de production différents, et l'extension multi-étapes a été utile dans ces scénarios.

Cependant, comme la plupart des choses Ruby, il y a beaucoup de crochets et de "magie" qui peuvent être déroutants si vous êtes nouveau à Capistrano et essayant de faire quelque chose de délicat avec ça.

Quant à la façon dont il se compare à d'autres outils de déploiement, je ne peux pas commenter. Je sais que nous avions l'habitude d'utiliser le pHing, mais je suis incertain pourquoi nous sommes passés à Capistrano.


0 commentaires

1
votes

Nous utilisons le pHing et il est arrivé utile. Nous ne l'utilisons pas pour l'emballage, mais il ne devrait pas être trop difficile de faire ce que vous recherchez. Nous l'utilisons principalement pour des tâches communes telles que la compensation de caches, des sites de développement de bâtiments et d'autres tâches pour le développement. Son a été une grosse aide et de ce que je peux rassembler, il semble être un clone de fourmis, bien qu'il ne puisse pas avoir toutes les fonctionnalités de cette fourmi.


0 commentaires

0
votes

J'ai écrit mon propre outil RSYNC comme pour cela, car je travaille à partir d'une très mauvaise connexion internet dans un 3ème pays du monde et possédez toutes sortes de défaillances et de connexions de faim afin que RSYNC ne fonctionne pas.

sur votre système distant, vous devez au moins écrire un script Litte qui fait des sauvegardes avant d'exécuter des migrations.

meilleur est que vous utilisez un système de miroir indépendant total sur votre système hôte Web et incluez des tests unitaires mineurs mais fondamentaux après une migration. Ensuite, effectuez une commutation racine pour mettre le site Web mis à jour en ligne. Cela nécessiterait d'exécuter quelques services interactifs en mode lecture seule pendant la migration (malheureusement, une caractéristique qui n'est pas de nombreuses personnes implémentant).

Mais tout d'abord - pense que si cela vaut vraiment la peine de le faire, si vous ne mettez à jour que chaque trimestre, une simple liste de contrôle sur papier serait suffisante.


0 commentaires