7

Amazon EC2を使用して、gitを介してサーバーにデプロイされるWebサイトをホストしています。以前、同じ種類のEC2 Ubuntu Linux Serverインスタンスでこのチュートリアルを使用しましたが、問題なく動作しました。ただし、サーバーにプッシュしようとすると、次のエラートレースが表示されます。

チュートリアル:http ://toroid.org/ams/git-website-howto

痕跡:

$ git push origin master

Counting objects: 5, done.
Writing objects: 100% (3/3), 250 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: unable to create file index.html (Permission denied)
To ssh://ubuntu@myserv.er/var/www/website.git
   8068aac..04eae11  master -> master

現在、リポジトリ内にあるファイルは1つだけです。それはindex.htmlです。

エラートレースは、ファイルを作成するためのアクセス許可が拒否されていることを示しています。どこが悪いのか教えていただけますか?

4

4 に答える 4

5

あなたが走れば私は信じます

 sudo chown -R git:git /srv/git/ 

これは、gitpushを実行するときに.git/ディレクトリに対して拒否された権限を修正する方法から来ていますか?

于 2012-08-22T16:53:07.977 に答える
4

あなたはおそらくチュートリアルのこの部分をしなかったでしょう:

まず、作業ツリー(上記の/var/www/www.example.org)は、フックを実行するユーザーが書き込み可能である必要があります(または、ユーザーがgit checkout -fなどを実行するにはsudoアクセスが必要です)。

于 2012-08-22T16:46:32.793 に答える
1

参考までに、別のWebサイトのルートディレクトリにあるファイルを更新するためのフックを作成したため、このエラーが発生しました。例えば:

/var/www/project.git  # (where we push updates)
/var/www/project.com  # (where the website exists)

project.comディレクトリにグループ権限を追加するのを忘れました。これですべてが機能しました。次のcommit/pushを実行すると、index.htmlが/var/www/project.comディレクトリに表示されました。

ユーザーを「developers」グループに追加したと仮定して機能させるための完全なコード:

sudo chmod -R g+ws /var/www/project_name.git
sudo chgrp -R developers /var/www/project_name.git
sudo chmod -R g+ws /var/www/project_name
sudo chgrp -R developers /var/www/project_name

そして、共有リポジトリのgit設定:

git config core.sharedRepository group
于 2015-07-16T15:39:01.613 に答える
1

アンチウイルスまたはその他のプログラムが原因で、そのファイルがフォルダに書き込まれなくなっている可能性があります。注意深く観察すると、許可が拒否されたファイルを除いて、他のすべてのファイルが作成されていることがわかります。特定のファイルタイプの作成を妨げている保護ソフトウェアを使用している可能性があり、ログインしているユーザータイプに関係なく、そのソフトウェアを無効にするまでファイルは作成されません。

したがって、実行中のWindowsについて、ウイルス対策ソフトウェアがこの背後にないことを確認してください。

于 2019-06-21T10:10:51.020 に答える