0

そこで、特定のフォルダー内にあるすべてのDrupal Webサイトを管理するシステムを作成しています(このフォルダーに新しいWebサイトを作成できます)。

次のステップは、ユーザーがWebサイトを以前のバージョンに戻すことができるようにする方法を作成することです。

私の解決策は?ローカルの「gitserver」を作成し、システムで実行されるすべてのアクション(モジュールの更新/インストール、コアのアップグレードなど)に対して、そのサイトの新しいバージョンを作成します。

でリポジトリの作成を担当する「git」ユーザーを作成しました/~/gitrepos/。そして、新しいWebサイトごとに、sudo -u gitapacheユーザー(www-data)内で実行mkdirおよびを使用しgit init --bareます。現在、新しいフォルダーを作成し、それらのフォルダーでgitリポジトリーを初期化することができます。

しかし、Webサイトの変更をそれらのリポジトリにプッシュしようとすると、「許可が拒否されました」というメッセージが表示されます。

新しいサイトが検出されたら、次のようにします。

  1. [www-dataとsudo -u git] を使用してリポジトリを作成します
    • mkdirgit init
  2. [www-dataを使用して]Webサイトディレクトリのgitリポジトリ(.gitフォルダ)を初期化します
    • git init
  3. ファイルをコミットキューに追加します[www-dataを使用]
    • git add *
  4. 変更をコミットして、新しく作成されたリポジトリにデータを入力します[www-dataを使用]
    • git commit -m 'msg'
  5. リポジトリのリモートアドレスを追加します[www-dataを使用]
    • git remote add origin ssh://git@localhost/path/to/repo/
  6. 変更をプッシュする[www-dataを使用]
    • git push -u origin master

そして今、私は常に「許可が拒否されました」と表示されるため、このステップで立ち往生しています。

認証せずにローカルの「gitserver」に変更をプッシュする方法はありますか?

または、www-dataがローカルの「gitserver」に変更をプッシュできるようにするために作成する必要があるsshキーはどれですか?

私はここで本当に迷っています。誰かがwww-dataユーザーがプッシュできるローカルの「gitサーバー」をセットアップするための段階的な方法を持っているなら、それは素晴らしいことです。

注:www-dataのホームディレクトリは/var/www/であるため、このディレクトリにssh-keysを保存することはお勧めできません。


はい、私はここで尋ねる前にこれを理解しようとして少なくとも4時間を費やしました。

私がフォローしようとしたリソースのいくつか:


私が「gitserver」を引用する理由は、gitserverのようなものがないからです

http://blogs.gurulabs.com/aaron/2008/11/setup-a-git-repository.htmlからの引用:

つまり、「gitserver」や「gitclient」というものはありません。Gitは、ファイルシステム属性を念頭に置いてファイルシステム開発者によって開発されました。したがって、代わりに、「オリジン」と呼ばれるリモートGitリポジトリとローカルGitリポジトリがあります(...)

4

1 に答える 1

1

解決:

仮定:

  • あなたのwww-dataホームディレクトリは/var/www/
  • すべての git コマンドを処理するユーザーはgituser

手順:

www-dataユーザーがパスワードを入力せずに変更を git リポジトリにプッシュできるようにするには、次のようにします。

  • www-data ユーザー用の新しい ssh-key を作成します
    • www-data:~$ ssh-keygen -t rsa
    • enter質問ごとに を押します (パスワードは空白のままにしてください)
  • 新しく作成した ssh-key をに追加します/home/gituser/.ssh/authorized_keys
    • gituser:~$ touch ~/.ssh/authorized_keys
    • gituser:~$ chmod 0600 ~/.ssh/authorized_keys
    • gituser:~$ cat /var/www/.ssh/id_rsa.pub >> /home/gituser/.ssh/authorized_keys

その背後にある考え方は、www-dataの ssh-key をgituserの「信頼できる」キーに追加することです。その後、パスワードを入力しなくても、www-datassh 経由でサーバーに接続して認証できるようになります。gituser

gitにはサーバーへのsshアクセスが必要であることを忘れないでください(少なくとも私がいる環境では)。

これが役立つかもしれません: http://www.linuxproblem.org/art_9.html

于 2012-06-23T15:46:53.983 に答える