回答:
ここではいくつかのことが行われています。
するとsudo git checkout ...
、これらすべてのファイルはrootユーザーとrootグループによって所有されます。標準のアクセス許可では、これらのファイルを後で変更するにはrootになる必要があります。
/var/www/
デフォルトではwww-data
グループが所有しています。ユーザーのデフォルトではないもの。
書き込む最も簡単な方法/var/www/
は、ユーザーをwww-dataグループに追加することです。もちろん、ユーザーが所有するようにディレクトリを変更することもできますが、それらをプリエンプトしない場合、これはいくつかの厄介な影響を与える可能性があります。
www-dataグループにユーザーを追加した後、再度ログインする必要があります。
具体的には、ルートが所有するデータの現在の混乱を修正する必要があります。ルートとして削除(および再チェックアウト)することもできますが、保存していない作業がある場合は、すべてをユーザーに戻すほうが簡単です。次の例は非常に面倒で、私たちが話していることは/ var / www /内の唯一のものであることを前提としています。
sudo chown -R www-data: /var/www/
.git
ディレクトリへのアクセスを人々に与えることは彼らにあなたが人々にアクセスさせたくないものへのアクセスを与えることができますが、.git/
問題全体を軽減するディレクトリへのアクセスを防ぐことができます。
フォルダのオーナーを変更しますか?wwwフォルダーを/ home / usernameに移動しました。/etc/apache2/sites-enabled/000-defaultの場所を変更できます
/var/www
は書き込みできません。
私はこの答えには少し遅れますが、リポジトリをhttpsからsshに変更する必要があるたびにパスワードを入力しないようにすることがわかりました。
Github.comヘルプセクションから:
git remote set-urlコマンドは、既存のリモートリポジトリURLを変更します。
ターミナルを開きます。
現在の作業ディレクトリをローカルプロジェクトに変更します。
変更するリモートの名前を取得するために、既存のリモートをリストします。
git remote -v
origin https://github.com/USERNAME/REPOSITORY.git (fetch)
origin https://github.com/USERNAME/REPOSITORY.git (push)
git remote set-urlコマンドを使用して、リモートのURLをHTTPSからSSHに変更します。
git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
リモートURLが変更されたことを確認します。
git remote -v
#新しいリモートURLを確認
origin git@github.com:USERNAME/REPOSITORY.git (fetch)
origin git@github.com:USERNAME/REPOSITORY.git (push)
sudo git checkout
ました。別のディレクトリに移動して、/ var / wwwディレクトリにアプリをデプロイした方がよいでしょうか?そもそも、プロジェクトを最初にvarディレクトリにチェックアウトするのはよくないことだとどこかで読んだだけです。1人がホームディレクトリにプロジェクトをチェックアウトすることを勧めました