PHP 코드로 Git 동작하기

김성민·2023년 7월 31일
0

이번 새로운 프로젝트를 앞에 두고 PHP 어플리케이션 단에서, Git 을 사용할 수 있는지에 대한 기술 검증이 필요 하였다.

간단하게 git repository 에 우리가 자주 사용하는 커맨드로 기능 동작이 가능한지에 대해 알아 보는중 필요한 환경 설정에 대해서 공유 한다.

사용한 PHP - Git extension : czproject

간단한 커맨드인 get branch, add, commit.. 등은 가능하지만 실제 repository 에서 pull / push 를 할 때, 아래 에러가 발생 하였다.

fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.

한참을 찾아 본 후 해결한 방법은 아래와 같다.

위 에러는 컨테이너 안에서 CLI 가 아닌 어플리케이션이 git 명령어를 실행 하는 경우, 사용 할 수 있는 pub 키가 인증되지 않기 때문에 발생 한 에러이다.

  1. php 는 root 권한이 아닌 www-data 권한을 사용해서 어플리케이션을 실행 하기 때문에, www-data 권한이 자동으로 pub 키를 읽어올 수 있어야한다.★★★ (이걸 한참 놓치고 있었음..)

    a. 이 때, root 는 일반적으로 /root/.ssh/ 경로에 id_rsa 파일을 읽어 온다.

    b. 하지만 www-data 는 /var/www/.ssh 경로에서 id_rsa 파일을 읽어 온다

sudo mkdir -m 0700 /var/www/.ssh
sudo chown -R www-data:www-data /var/www/.ssh
sudo -u www-data ssh-keygen (empty passphrase) // /var/www/.ssh 경로에 id_rsa, id_rsa.pub 이 생성됨 을 확인
ssh-keyscan bitbucket.org >> /var/www/.ssh/known_hosts // knwon_hosts 파일 안에 bitbucket.org 로 key 가 생김
  1. 생성된 id_rsa.pub 파일 안의 내용을 bitbucket / github.. 등에 등록 해줘야 한다.

이렇게 하면 php 가 어플리케이션 단에서 git 을 사용 할 수 있다.

0개의 댓글