そこで、特定のフォルダー内にあるすべてのDrupal Webサイトを管理するシステムを作成しています(このフォルダーに新しいWebサイトを作成できます)。
次のステップは、ユーザーがWebサイトを以前のバージョンに戻すことができるようにする方法を作成することです。
私の解決策は?ローカルの「gitserver」を作成し、システムで実行されるすべてのアクション(モジュールの更新/インストール、コアのアップグレードなど)に対して、そのサイトの新しいバージョンを作成します。
でリポジトリの作成を担当する「git」ユーザーを作成しました/~/gitrepos/
。そして、新しいWebサイトごとに、sudo -u git
apacheユーザー(www-data)内で実行mkdir
およびを使用しgit init --bare
ます。現在、新しいフォルダーを作成し、それらのフォルダーでgitリポジトリーを初期化することができます。
しかし、Webサイトの変更をそれらのリポジトリにプッシュしようとすると、「許可が拒否されました」というメッセージが表示されます。
新しいサイトが検出されたら、次のようにします。
- [www-dataと
sudo -u git
] を使用してリポジトリを作成しますmkdir
とgit init
- [www-dataを使用して]Webサイトディレクトリのgitリポジトリ(.gitフォルダ)を初期化します
git init
- ファイルをコミットキューに追加します[www-dataを使用]
git add *
- 変更をコミットして、新しく作成されたリポジトリにデータを入力します[www-dataを使用]
git commit -m 'msg'
- リポジトリのリモートアドレスを追加します[www-dataを使用]
git remote add origin ssh://git@localhost/path/to/repo/
- 変更をプッシュする[www-dataを使用]
git push -u origin master
そして今、私は常に「許可が拒否されました」と表示されるため、このステップで立ち往生しています。
認証せずにローカルの「gitserver」に変更をプッシュする方法はありますか?
または、www-dataがローカルの「gitserver」に変更をプッシュできるようにするために作成する必要があるsshキーはどれですか?
私はここで本当に迷っています。誰かがwww-dataユーザーがプッシュできるローカルの「gitサーバー」をセットアップするための段階的な方法を持っているなら、それは素晴らしいことです。
注:www-dataのホームディレクトリは/var/www/
であるため、このディレクトリにssh-keysを保存することはお勧めできません。
はい、私はここで尋ねる前にこれを理解しようとして少なくとも4時間を費やしました。
私がフォローしようとしたリソースのいくつか:
- http://www.hackido.com/2010/01/installing-git-on-server-ubuntu-or.html
- http://toroid.org/ams/git-website-howto
- http://pthree.org/2008/11/28/setup-a-git-repository/
- GitベースのWebサイト展開ワークフロー
- http://tumblr.intranation.com/post/766290565/how-set-up-your-own-private-git-server-linux
- http://blogs.gurulabs.com/aaron/2008/11/setup-a-git-repository.html
私が「gitserver」を引用する理由は、gitserverのようなものがないからです。
http://blogs.gurulabs.com/aaron/2008/11/setup-a-git-repository.htmlからの引用:
つまり、「gitserver」や「gitclient」というものはありません。Gitは、ファイルシステム属性を念頭に置いてファイルシステム開発者によって開発されました。したがって、代わりに、「オリジン」と呼ばれるリモートGitリポジトリとローカルGitリポジトリがあります(...)