Webアプリのクローンを格納するディレクトリ/var/www
を作成しました。最初にgithubからアプリをクローンしたとき、Sudoを使用する必要があり、git pull
を実行するたびにSudoが必要になりました。このため、いくつかの問題に直面しています。たとえば、私のsshキーが一致していません。したがって、git pull
を実行するときは、sshの代わりにhttpsを使用し、アプリをプルおよび更新するたびにユーザー名とパスワードを手動で入力する必要があります。 gitを使用するたびにSudoを使用する必要がないように、これを構成するにはどうすればよいですか?
ここでいくつかのことが行われています:
Sudo git checkout ...
を実行すると、これらのファイルはすべてルートユーザーとルートグループが所有します。標準のアクセス許可では、これらのファイルを後で変更するには、rootになる必要があります。
/var/www/
はデフォルトでwww-data
グループが所有しています。ユーザーのデフォルトではないもの。
/var/www/
で記述する最も簡単な方法は、単に ユーザーをwww-dataグループに追加する です。もちろん、ディレクトリをユーザーが所有するように変更することはできますが、これを先取りしていない場合、これは厄介なノックオン効果を持つ可能性があります。
ユーザーをwww-dataグループに追加した後、再度ログインする必要があります。
具体的には、現在所有している大量のルート所有データを修正する必要があります。ルートとして削除(および再チェックアウト)することもできますが、保存していない作業がある場合は、すべてをユーザーに戻す方が簡単です。次の例は非常に怠zyであり、/ var/www /にあるのは私たちが話していることだけであると想定しています。
Sudo chown -R www-data: /var/www/
フム、フォルダの所有者を変更しますか? wwwフォルダーを/ home/usernameに移動しました。その場所は/ etc/Apache2/sites-enabled/000-defaultで変更できます
私はこの答えに少し遅れていますが、レポジトリをhttpsからsshに変更しなければならないたびにパスワードを入力しないようにすることがわかりました。
Github.comヘルプセクションから:
Gitremote 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 [email protected]:USERNAME/REPOSITORY.git
リモートURLが変更されたことを確認します。
git remote -v
#新しいリモートURLを確認する
Origin [email protected]:USERNAME/REPOSITORY.git (fetch)
Origin [email protected]:USERNAME/REPOSITORY.git (Push)