2012-08-22 14 views
6

Amazon EC2を使用して、git経由でサーバーにデプロイされているWebサイトをホストしています。このチュートリアルは以前、同じ種類のEC2 Ubuntu Linux Serverインスタンスで使用されていましたが、完璧に機能しました。私が試してみて、サーバーにプッシュする場合しかし、私は次のエラーのトレースを受け取る:Gitがファイルアクセス許可を作成できません。

チュートリアル: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://[email protected]/var/www/website.git 
    8068aac..04eae11 master -> master 

私は、現時点では、リポジトリ内の一つのファイルを持っています、 index.htmlです。

エラートレースは、ファイルを作成する権限が拒否されていることを示しています。私が間違っている場所を教えてください。

+0

あなたはどのようなチュートリアルを使用しました

完全なコードでは、それはあなたが「開発者」グループにユーザーを追加したと仮定すると動作させるには? –

+0

申し訳ありません、OPが更新されました。 –

答えて

3

おそらく、チュートリアルのこの部分をしませんでした。

まず、作業ツリー(上記/var/www/www.example.org)フックを実行するユーザーによって書き込み可能でなければなりません(またはユーザがgit checkout -fを実行するためにsudoアクセスを必要とするか、それと似たようなもの)。私は別のWebサイトのルートディレクトリ内のファイルを更新するためのフックを作ったので、あなたが

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

を実行する場合

+0

rootとしてログインしていなければなりません。 –

+0

Git on Windowsはどうですか?私は管理者であり、実行中のコンソールでも、管理者として実行されていますが、この権限は現在拒否されています。そのような悪夢... –

1

から来て、私はこのエラーが発生しました。例:

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

私はproject.comディレクトリにグループ権限を追加するのを忘れていました。これにより、すべての作業が完了しました。次回のコミット/プッシュを実行すると、index.htmlが/var/www/project.comディレクトリに表示されます。

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 
関連する問題