1

ubuntu を使用した vps があり、Git を使用して Laravel アプリケーションをデプロイしたいと考えています。Laravelには、フレームワーク自体(アプリ、ブートストラップ、ベンダー)用のフォルダーと、パブリックファイル用のフォルダー(「パブリック」、笑)があるため、これらすべてのフレームワークフォルダーをApacheサーバーの「www」フォルダーの外に置きたいと思います。 「www」にコピーされた「public」フォルダの内容。プッシュされたすべてのファイルを(チェックアウトを使用して)wwwフォルダーにコピーするフックを作成することについて読んだことがありますが、すべてのファイルをwwwにチェックアウトしたくありません。「パブリック」内にあるファイルと残りのファイルだけです。ファイル(laravelファイル)を外部にプッシュしました。

私のフォルダ構造は次のようになります。

  • myapp (ローカル リポジトリからプッシュ)
    • Laravel フレームワークのフォルダー
    • Laravel パブリック フォルダー
  • www
    • laravel の public フォルダーの内容

どうすればこの構造を実現できますか? プッシュできるようにベアレポを使用していますが、「ベア」であるため、ファイルのコピーがなく、次のような受信後フックを作成できません: www フォルダーを空にして、すべてのコンテンツをコピーします。 var/myapp/public のそれへ。もう 1 つのオプションは、www フォルダーにすべてのファイル (パブリックおよび非パブリック) を配置することです。これにより、チェックアウト メソッドを使用できますが、すべてのアプリ ロジックをパブリック www フォルダーの外に配置する方がよい場所を読みました。

誰か手を貸してくれませんか?前もって感謝します。

4

2 に答える 2

1

git経由でlaravel Webサイトをデプロイする

@marcanuy の記事は過去に優れたリソースであることが証明されていましたが、残念ながらリンクにアクセスできなくなったようです。

だから私のような初心者のために、私は彼の答えをさらに説明しています

1. サーバーでベア git リポジトリを開始します。

私のセットアップでは、ホームディレクトリにgitフォルダーとwebサイトフォルダーがあります。そのため、git フォルダー内に、 website.git という名前の新しいフォルダーを作成しました。内部で裸のgitリポジトリを初期化しました

cd website.git
git --bare init

2. ウェブサイトなどの git にリモートを追加します

ローカルの git リポジトリには、サーバー内のリポジトリを指すリモートがあります。

 git remote add website ssh://<user>@hostname/home/<username>/git/website.git

3.ポストフックスクリプトを設定します(@marcanuy answerから)

作業ツリーのパスを更新します。私の場合は /home/username/website です。更新後も実行可能にします。

4. apache を laravel パブリック フォルダーにポイントします。

これで、リモート Web サイトにプッシュして、ファズなしでライブ サイトに変更を加えることができます。

于 2014-10-21T16:54:36.093 に答える