私は次の設定をしています:
2 人のユーザー: example と git
内部/home/git/repositories/project.git/hooks/post-receive
にはチェックアウトがあります/home/example/public_html/dev
したがって、すべての git プッシュで、プロジェクト ファイルはhttp://dev.example.comに公開されます。
問題は、チェックアウトが git ユーザーから実行されるため、dev ディレクトリ内のすべてのファイルが git:git によって所有され、パーミッションが 600 であることです。
そのため、 http://dev.example.comにアクセスしてもページは表示されません。ユーザーapacheにはアクセスできないためです。
post-receive フック内で chown を実行することを提案した人がいます。さて、ユーザー git は sudo である必要があります。そこで、ユーザー git を sudoer として追加しました。次の問題は「すみません、sudo を実行するには tty が必要です」だったので、#Default requiretty をコメントアウトしましたが、次の問題に遭遇しました。
ユーザー git を sudoer にすることは私が望んでいたことではない (安全ではない) ため、すべてを通常の状態に戻しました。
他に試すより安全なオプションはありますか?
おそらく、受信後フックが dev フォルダー内の php ファイルをトリガーすると、この php ファイルがチェックアウトを実行しますか?
または、dev フォルダーを /home/git 内のフォルダーにシンボリック リンクして、apache kan がブラウザーに表示するようにできますか?