Etc/경험담

[aws,php,git] www-data 를 이용하여 git command 사용하기.

생각하는달팽이 2016. 6. 15. 22:56

안녕하세요?

이번시간에는 CMS 툴에서 필요한 CSV 파일 컨트롤러를 만들면서 경험한 일들을 설명하고자 합니다.

먼저 사용자의 요구사항은 다음과 같습니다.


1. CSV 를 업로드 할 수 있어야한다.

2. 업로드된 CSV 가 자동으로 Push 될 수 있어야한다.

3. 업로드된 CSV 리스트를 확인가능하고, 해당 CSV 를 선택하여 다시 적용할 수 있어야한다.


CSV 업로드 및 리스트 제공은 쉬웠습니다. 그러나 git 에 push 를 하기위해서는 권한문제가 생겼습니다.


포인트는 간단합니다.


www-data 라는 user 를 생성하고.

www-data 의 id_rsa 를 생성한 후 

해당 id_rsa.pub 값을 git 의 ssh-key 에 등록해줍니다.


이후 php 의 exec() 함수를 이용하여 git 을 add,commit,push,pull 할 수 있었습니다.


감사합니다.


다음은 제가 사용한 명령어들의 리스트를 간단한 설명들로 표현해보겠습니다.


1. www-data 의 ssh-key 생성


 sudo -u www-data ssh-keygen -t rsa 



2. www-data 유저의 권한으로 git 커맨드 사용


 sudo -u www-data git <command> 


결과 화면입니다.




이번 경험의 요점은 권한 설정입니다.


결국 웹에서 컨트롤시에 사용되는 유저는 `www-data` 이므로, `www-data` 가 git 에 대한 permission 을 부여받게 해주는 것이 포인트였습니다. 추가적으로, 저의 경우 apache가 아닌 nginx 를 사용하였습니다.


다음이시간에는 더 유익한 정보로 찾아오도록 하겠습니다.

감사합니다.

반응형