웹 페이지를 통해 SVN 업그레이드를 수행할 수 있는 프로그램을 작성하고 싶은데, 주의해야 할 부분이 있습니다.
먼저 Apache의 사용자 계정으로 SVN Checkout을 실행하여 Apache가 SVN에 대한 링크 권한을 갖고 웹페이지를 통해 SVN 업데이트를 실행할 수 있도록 합니다
su -s /bin/bash www-data
CD /var/www
svn 체크아웃 http://www.xxx.com/svn/my_site
PHP로 쉘 명령을 실행하기 전에 내보내기 LANG=C.UTF-8이라는 환경 문을 추가해야 합니다. 그렇지 않으면 SVN 업데이트 시 Ubuntu의 Apache 기본값이 LANG=C
일 때 중국어를 만나면 오류가 나타납니다.
다음으로 --accept theirs-full 매개변수를 SVN에 추가해야 합니다. 이는 충돌이 발생하면 SVN 서버의 파일 버전이 기본 버전이 된다는 것을 의미합니다
마지막으로, PHP가 오류를 포함한 모든 정보를 얻을 수 있도록 2>&1을 추가하세요
putenv('LANG=C.UTF-8')
$result = shell_exec('svn update --accept theirs-full /var/www/my_site 2>&1');
echo nl2br($result)