web-dev-qa-db-ja.com

Laravelデプロイメント...標準的な方法はありますか?

私はプロジェクトでLaravel 4を真剣に使用しています。RESTfulアプリケーションを開発するときにこのフレームワークが多くの利点を提供することを理解しています。しかし、展開/公開とLaravelを使用するアプリです。私はまだFTPを使用してファイルを実稼働ホストに転送しています。しかし、私の質問は、Laravelから同じことを行う標準的な方法はありますか?少し工夫すれば、php artisan publish[Production server name and SSH credentials]パラメータとして。

私は Anahkiasen/rocketeerChristopher Pitt から興味深いものを読みましたが、どちらも素晴らしい情報源ですが、laravelを使用してアプリケーションを公開するためのコンセンサスまたは標準的な方法はありますか?

22
James

これは実際にはLaravel問題/質問ではありません。開発者フォーラムでPHPアプリケーションをデプロイするために彼らが何をするかを尋ねる必要があります。

あなたのLaravelアプリケーションは基本的にPHPアプリケーションであり、一部のパッケージはComposerによって提供されるので、ComposerアプリケーションよりもLaravel 1つですが、いくつかのLaravelの実行、php artisan migrate、またはアプリケーションをポストデプロイするためのその他の職人のコマンドであるかどうかは、Laravelよりもアプリケーションの要件です。

展開を行うためのパッケージ Deeployer を開発しました。このパッケージの目的は、アプリケーションをプロダクション(またはステージング)ブランチにプッシュするたびに、Githubがフックを起動して、自分のVPSにアプリケーションをデプロイするために必要なことをサーバーに指示することです。基本的な展開では、次のようになります。

1)git pullリポジトリ

2)composer updateベンダーフォルダを更新するには

3)bower updateインストールしたjsまたはcssをダウンロードします

4)php artisan migrateデータベーススキーマをアップグレードするには

5)chmodchownを実行して、ファイルのダウンロード中にこれらのコマンドによってディレクトリに加えられた可能性のある権限を修正します

見る?これらは私の展開構造に非常に特有なものです。そのため、展開アプリについてコンセンサスを見つけることは本当にないと思います。 Anahkiasenが最初にRocketeerを構築したとき、誰かが叫んだ:「すでにCapistranoがあるのに、なぜこれをしているのか?」。

昨日私はこれにぶつかりました: http://www.deployhq.com/packagesBen Corlet によって使用されました。

Rocketeerもあります: http://rocketeer.autopergamene.eu/

Laravel自体には独自のSSHリモートコンポーネントがあります(私はDeeployerで使用し、Rocketeerも使用しています)。これは、アプリのデプロイに必要なことをすべて実行するのに役立つ場合があります。

そのため、パッケージ、アプリ、または単にLaravelを使用して、デプロイメントのニーズを考えて方法を見つける方がよいでしょう。

Capistranoのような多くの展開ツールがあります。 Deployerをご覧になることをお勧めします。シンプルなAPIがあり、人気のあるフレームワークとアプリのレシピがバンドルされており、100%並列タスクを実行できます。また、PHPにのみ必要です。

簡単なタスクの例を次に示します。

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

また、それは良質のコードを持っています:

Code QualityCode ClimateCode Coverage

Deployer

6
Anton Medvedev

あなたはチェックアウトしたいかもしれませんRocketeerhttp://rocketeer.autopergamene.eu/

3
fl3x7

基準を求めているなら、基準はないと思います。しかし、FTPの代替案として、サイトを本番環境にデプロイする方法としてgitを使用することを検討しましたか?

方法は次のとおりです。 http://danbarber.me/using-git-for-deployment/ (リンクが壊れています) https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps

基本的に要約すると、bare git repository、独自のlocal repository、およびproduction repository ..があり、フックをbare git repositoryにプッシュすると、正しいフックを構成することになります。その中で、本番リポジトリに、コミットした最新の変更を本番にプルするよう指示します。さらに、環境に応じて設定に正しい認証情報を設定します。新しいフォルダを作成できます。 app/config/productionapp/config/stageにより、両方のサーバーの電源を入れている間でもアプリケーションを簡単に実行できます。

1
reikyoushin

標準的な方法についてもよくわかりません。 Laravelで動作する ForgeEnvoyer があるので、これは調査する必要があります。

Laravel RocketeerとGitを使用しています。セットアップが非常に簡単で、複数のサーバーを使用できます(ステージング、本番など))

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

0
dericcain