コアポイント
.gitignore
それぞれの利点と短所を備えたプロダクションサーバーにウェブサイトを展開する方法はたくさんありますが、開始方法と終了方法は同じです。優れたWebサイトの展開ワークフローの鍵は、中間の手順です。
先日、Filezillaを使用してファイルを生産サーバーにアップロードしました。 Filezillaのインターフェイスはあまりフレンドリーではないといつも感じていましたが、長い間、それが標準的な練習だと思っていました。
同じプロジェクトでは、Gitを使用してファイルの変更を追跡します。入力を始めたとき、私は一時停止し、しばらく考えました。 Webサイトの展開がGitリポジトリをプッシュするのと同じくらい簡単な場合、もっと便利ではないでしょうか?
git push origin
慎重に考えてください、GitはWebサイトの展開ファイルを処理するのに最適なツールです。すべてのファイルの変更を追跡し、1つのコマンドで必要なものをプッシュまたはプルします。自分のウェブサイトを展開するときにGITを使用する方法をGoogleの検索を開始することにしました。
Gitを使用してWebサイトを展開することがわかった人気のある方法の1つは、Gitフックを最大限に活用することです(トムオラムは同様の方法を使用するのが好きです)。 Git Hooksが端末コンソールに入力するだけで事前定義されたスクリプトを開始すると想像してください。この事前定義されたスクリプトは、生産サーバーにアクセスし、最新のファイルの変更をプルします。 Push Changesと同じコマンドを使用してWebサイトを更新することもできます。このアプローチは、ローカルリポジトリをプッシュしたからといって、ライブの準備ができているわけではないということに気付くまで、素晴らしいと思いました。
gitを使用するのと同じくらい簡単なリポジトリをプッシュする方法が欲しいです。さらに重要なことは、コンテンツをオンラインで提供する際に完全に制御したいことです。 GITを使用してファイル転送を処理する同様のワークフローを見つけました。最も重要なことは、PHPフレームワークLaravelを使用して、より繰り返しのタスクを自動化することも可能であることがわかりました。
以下は私のWebサイトの展開ワークフローです:
構造設定
このセクションでは、中央リポジトリとして-Bareリポジトリをセットアップし、クローニングにより2つのリポジトリを作成します。 1つは、展開プロセスを実行する地元のWebサイトです。 Laravelもインストールします。
有用なリソース:
リポジトリを初期化します。
<code>ssh username@domain.com cd repos</code>
<code>git init --bare --shared mywebsite.git</code>
2オンラインWebサイトを作成します
public_html
センターをクローンする - このSSHセッションから作成してログアウトしたばかりのベアリポジトリ。
<code>cd ~/public_html/</code>
3ローカルWebサイトを作成します
Homesteadのようなものを使用している場合は、Vagrantコマンドを使用してSSHを使用してローカルサーバーに接続してファイルにアクセスする必要があります。<code>git clone username@domain.com:~/repos/mywebsite.git mywebsite exit</code>
<code>vagrant ssh</code>
Laravelを設定する前に、地元のWebサイトにインストールする必要があります。
<code>cd websites git clone username@domain.com:~/repos/mywebsite.git mywebsite</code>
インストールlaravel
/app/config/remote.php
後で参照する必要があるため、「生産」キーを覚えておいてください。
<code>'connections' => array( 'production' => array( 'host' => 'domain.com', 'username' => 'username', 'password' => '********************', 'key' => '', 'keyphrase' => '', 'root' => '/var/www', ), ),</code>
ファイルをローカルWebサイトリポジトリに追加して、それらの変更を追跡できるようにします。最初のコミットを実行します。
<code>git add .</code>
<code>git commit -m 'initial commit with laravel'</code>
<code>git push origin master</code>
良い仕事!あなたはすべてセットアップして構成されており、今では興味深いコンテンツを掘り下げる準備ができているはずです。
すべてがセットアップされた後、GITを使用してWebサイトを簡単に展開できます。コードを見て、そのコアコンテンツを理解してみましょう。
Laravelを使用してPHPで後で書き直すため、ワークフローを理解することが重要です。また、発生する可能性のある問題をデバッグするのにも役立ちます。1 SSHはオンラインサーバーに接続し、生産倉庫を見つけます。
<code>ssh username@domain.com cd repos</code>
<code>git init --bare --shared mywebsite.git</code>
ここでやめたいなら、私はあなたについて意見を持っていません。これは、それ自体がかなり信頼できる展開ワークフローです。しかし、Laravelで自動化することにより、より効率的にすることができます。
laravel を使用した自動展開
OK、Gitを使用してWebサイトを展開する方法がわかったので、Laravelを使用してこのプロセスを自動化しましょう。この部分は必要ではないかもしれませんが、Laravelを既に使用している場合、「なぜLaravelを使用しても、このWebサイトの展開ワークフローがシンプルで効率的で、制御可能で、カスタマイズ可能です。1。
ページを開き、次のPHPコード行をファイルに追加します。 /app
routes.php
<code>cd ~/public_html/</code>
http://localhost/deploy
2次に、コントローラーを作成して保存します。 Server
deploy
BaseController
コントローラーに共通の関数Server
を挿入します。
<code>git clone username@domain.com:~/repos/mywebsite.git mywebsite exit</code>
deploy
フォルダーに保存して、
<code>vagrant ssh</code>
興味深い部分はこちらです! /app/controllers
Server.php
3 laravelのsshファサードを
SSHファサードを挿入します。以前に設定した本番リモート構成にアクセスしたいと考えています。
deploy
<code>cd websites git clone username@domain.com:~/repos/mywebsite.git mywebsite</code>
run()
deploy
2番目は、サーバーから受け取るフィードバックを処理するために呼び出す関数です。
<code>'connections' => array( 'production' => array( 'host' => 'domain.com', 'username' => 'username', 'password' => '********************', 'key' => '', 'keyphrase' => '', 'root' => '/var/www', ), ),</code>
今、私たちがウェブサイトを展開したいときはいつでも、
にアクセスする必要があります。簡単ですか?はい、正確ではありません。<code>git add .</code>
終わりを呼び出す前に、いくつかのセキュリティの脆弱性に対処する必要があります。誰でもhttp://localhost/deploy
につまずいて、当社のウェブサイトを展開できます。これを防ぐために何かをセットアップすることです。
これを行うには多くの方法があり、疲れ果てるまでどの方法が最も安全であるかを議論することができます。ルートのパスワードを保護したり、IPアドレスを介してアクセスをブロックするなどしたりできます。
この例では、この例では、を使用して、ファイルが存在するかどうかを確認し、作成したルートを実行します。 .gitignore
controllers
新しいファイルを作成して.gitignore
に保存し、名前Server.php
に名前を付けます。 次のテキスト行をファイルに追加して保存します。 /app/controllers
.gitignore
ファイルが存在することを確認してください。
<code>ssh username@domain.com cd repos</code>
Server.php
<code>git init --bare --shared mywebsite.git</code>
クリエイティブを入手してくださいそれだけです!更新されたすべてのファイル、コミット、プッシュを保存するだけで、Gitフレンドリーなワークフローで展開を開始できます。
<code>cd ~/public_html/</code>
必要に応じてさらに進むことができます。クイックワンクリック展開のために、ブックマークに
を追加するだけです。ページに投稿するシンプルなHTMLフォームを作成して、特定のブランチをプルできるようにすることもできます。可能性は無限です。
GitとLaravelを使用した展開により、退屈なWebサイトの展開タスクが楽しくなります。 Gitを知っている場合、セットアップは簡単ですが、使いやすいです。
Laravelとgit http://localhost/deploy
GITを使用してLaravel Webサイトを展開するときに競合を解決する方法は?
特に複数の開発者が同じプロジェクトで作業している場合、GITを使用してLaravel Webサイトを展開するときに衝突が発生する可能性があります。これらの競合を解決するには、GITの競合解決ツールを使用する必要があります。競合が発生した場合、Gitは変更ベースを一時停止し、競合を修正する機会を与えます。その後、を使用して解決されたファイルを追加し、
を使用して再ゼンを続けることができます。作業を開始する前に、競合を最小限に抑えるために、常に最新の変更をリポジトリから引き出してください。私のlaravelプロジェクトでgitブランチを効果的に使用する方法は?
Git Branchは、Laravelプロジェクトのさまざまなバージョンを管理するための強力なツールです。各機能またはバグ修正の新しいブランチを作成できます。これにより、メインコードベースに影響を与えることなく複数のタスクを同時に処理できます。タスクが完了したら、ブランチをメインコードベースに戻すことができます。この方法により、メインコードベースが安定してエラーがないことが保証されます。自動展開プロセスは、多くの時間と労力を節約できます。 gitフックを使用できます。これは、git、push、受信などのイベントの前後にGitが実行するスクリプトです。メインブランチにプッシュするたびに、Webサイトを自動的に展開するスクリプトを作成できます。このようにして、あなたのウェブサイトが常に最新の変更と一致していることを確認できます。
gitは、変更をロールバックするいくつかの方法を提供します。 git revert
を使用して、特定のコミットで行われた変更を取り消すための新しいコミットを作成できます。または、git reset
を使用して、前のコミットにヘッドポインターを移動し、その後表示されるコミットを効果的に「忘れた」ことができます。変更を永続的に削除する可能性があるため、git reset
を使用する場合は注意してください。
セキュリティは、あらゆるWeb開発プロジェクトの重要な側面です。 GITでLaravelプロジェクトを展開するときは、.gitignore
を使用して、保留中の移行を適用できます。ただし、複数の開発者と協力する場合は、競合する移動が問題を引き起こす可能性があるため、注意してください。新しい移行を作成する前に、競合を回避するために、リポジトリから最新の変更を常に引き出してください。 php artisan migrate
Gitを使用してLaravelプロジェクトの変更を追跡する方法は?
を使用してコミット履歴を表示し、git log
を使用して特定のコミットで行われた変更を表示できます。これは、プロジェクトの進化をデバッグして理解するのに非常に役立ちます。 git diff
エラーと例外の正しい取り扱いは、スムーズなユーザーエクスペリエンスに不可欠です。 Laravelは、さまざまなタイプのエラーを処理するために使用できる強力な例外処理システムを提供します。エラーが発生した場合、GITを使用して、エラーを修正しながら前の安定した状態にロールバックできます。
以上がLaravelとGitを使用してWebサイトを展開しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。