web-dev-qa-db-fra.com

Laravel déploiement ... il y a un moyen standard?

Je commence à utiliser Laravel 4 sérieusement dans mes projets. Je comprends que ce cadre offre de nombreux avantages lors du développement d’applications RESTful. Mais je comprends qu’il n’ya pas de consensus sur la manière dont le déploiement/la publication et l’application utilisent Laravel. J'utilise toujours FTP pour transférer des fichiers sur mon hôte de production. Mais ma question est la suivante: existe-t-il un moyen standard de faire de même, mais depuis Laravel? Je suis fidèle, croyant qu'avec un peu d'ingéniosité, on peut créer quelque chose comme php artisan publish [nom du serveur de production et informations d'identification SSH]} [].

J'ai lu quelque chose d'intéressant dans Anahkiasen/rocketeer et Christopher Pitt , deux excellentes sources, mais existe-t-il un consensus ou un moyen standard de publier des applications utilisant laravel?

21
James

Ce n'est pas vraiment un problème/une question deLaravel, vous devez demander sur un forum dev-ops ce qu’ils feraient pour déployer une application PHP comme la vôtre.

Votre application Laravel est fondamentalement PHP, certains packages sont fournis par Composer. Il s’agit donc plutôt d’une application Composer que d’un Laravel, mais vous pouvez avoir certains besoins Laravel, tels que l'exécution de php artisan migrate, ou toute autre commande artisanale pour post-déployer votre application, ou non, c'est donc plus une exigence de votre application que Laravel, à droite ?

J'ai développé un paquet pour faire mes déploiements, Deeployer . L'intention de ce paquet est que chaque fois que j'appliquerai mon application à la branche de production (ou intermédiaire), Github déclenchera un hook qui indiquera à mon serveur de faire tout ce qui est nécessaire pour déployer mon application sur mon propre VPS. Dans un déploiement de base, il va:

1) git pull le référentiel

2) Exécutez composer update pour mettre à jour mon dossier de fournisseur

3) Exécutez bower update pour télécharger les fichiers js ou css que j'ai installés

4) Exécutez php artisan migrate pour mettre à niveau mon schéma de base de données

5) Exécutez chmod et chown pour réparer les autorisations que ces commandes auraient pu imposer à mes répertoires lors du téléchargement de fichiers.

Voir? Ce sont des choses qui sont très particulières à ma structure de déploiement, c'est pourquoi je ne pense pas vraiment que vous allez trouver un consensus sur une application de déploiement. Quand Anahkiasen a construit Rocketeer pour la première fois, quelqu'un a crié: "Pourquoi faites-vous cela si nous avons déjà Capistrano?".

Hier, je suis tombé sur celui-ci: http://www.deployhq.com/packages , utilisé par Ben Corlet de Cartalyst et d'autres gentils gars.

Il y a aussi Rocketeer: http://rocketeer.autopergamene.eu/ .

N'oubliez pas que Laravel lui-même a son propre composant SSH Remote (je l'ai utilisé sur Deeployer et Rocketeer également), ce qui pourrait vous aider à faire le nécessaire pour déployer votre application.

Vous devez donc mieux cerner vos besoins en matière de déploiement et trouver votre chemin, en utilisant un package, une application ou simplement Laravel.

19

Il y a beaucoup d'outils de déploiement, comme Capistrano. Je vous recommande de jeter un coup d'œil à Deployer: son API est simple, elle est fournie avec des recettes pour les frameworks et les applications populaires, et elle peut exécuter 100% des tâches en parallèle. En outre, il ne nécessite que pour PHP.

Voici un exemple de tâche simple:

task('my_task', function () {
    // Your tasks code...
});

En outre, il a un code de bonne qualité:

 Code Quality  Code Climate  Code Coverage

Deployer

6
Anton Medvedev

Vous voudrez peut-être consulter Rocketeer: http://rocketeer.autopergamene.eu/

3
fl3x7

Si vous demandez une norme, je ne pense pas qu'il en existe une. Mais une alternative à FTP, eh bien, avez-vous envisagé d'utiliser git comme moyen de déployer votre site en production?

Voici comment vous le faites: http://danbarber.me/using-git-for-deployment/ (Le lien est cassé) https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps

En résumé, vous résumez le fait que vous avez un bare git repository, votre propre local repository et votre production repository .. maintenant en configurant les hooks appropriés. Lorsque vous passez au bare git repository, un hook interne indique au référentiel de production d'extraire les dernières modifications que vous avez validées. à la production. De plus, en configurant les informations d'identification correctes dans votre configuration en fonction de l'environnement, vous pouvez créer un nouveau dossier ex. app/config/production et app/config/stage pour pouvoir exécuter facilement l'application même en activant les deux serveurs.

1
reikyoushin

Je ne suis pas si sûr d'un moyen standard non plus. Vous avez Forge et Envoyer qui travaillent avec Laravel, c’est un point à examiner. 

Voici un moyen de déployer Laravel en utilisant Rocketeer et Git. Il est très facile à installer et vous permet d’utiliser plusieurs serveurs (pensez mise en scène, production, etc.)

http://dericcain.com/blog/deploying-laravel-5-with-rocketeer

0
dericcain