
램프 응용 작업을 하고 있습니다. 우리는 2개의 서버(Debian) Live와 Dev를 보유하고 있습니다.
나는 새로운 기능을 추가하고 버그를 수정하기 위해 지속적으로 개발 메인에 노력하고 있습니다.
모든 것이 잘 작동하면 관련 코드를 라이브 시스템에 scp합니다. 데이터베이스(mysql)는 각 시스템에 대해 로컬입니다.
이제 이것은 매우 기본적인 설정이므로 작업 흐름을 약간 개선하고 싶습니다. 버전 관리를 위해 git과 github을 사용합니다. 분명히 저는 실제로 하나의 지점만을 사용했습니다. 서로 다른 시간에 코드 작업을 하는 3명의 개발자가 있을 수 있습니다. 우리는 모두 동일한 Linux 사용자 이름을 사용하여 개발 서버에 연결하고 필요할 때 코드를 직접 편집합니다. 그런 다음 일반적으로 하루가 끝나면 코드를 github에 커밋하고 푸시합니다.
염두에 두어야 할 한 가지는 로컬 시스템에서 작동하지 않는 많은 Apache 및 하위 도메인 구성이 있으므로 로컬 시스템에서 이 코드를 실행하는 것이 쉽지 않다는 것입니다. 따라서 로컬이 아닌 개발 서버에서 작업하는 것이 중요합니다.
이제 메인 트렁크가 필요하고 대규모 코드를 다시 작성하는 브랜치가 필요하기 때문에 새로운 프로세스를 생성해야 합니다.
이를 수행하는 가장 좋은 방법은 무엇입니까? 각 개발자에 대해 서로 다른 Unix 로그인을 생성하고 변경 사항에 대해 개발 서버에서 서로 다른 작업 영역을 설정해야 합니까? 예를 들어
/var/www/mysite_derek /var/www/mysite_paul /var/www/mysite_mike
내 생각에는 그들이 메인 브랜치에서 끌어온 다음 거기에 자체 브랜치를 만들고 다시 병합할 수 있다는 것입니다. 이것이 git 로컬 및 github에서 어떻게 작동할지 잘 모르겠습니다.
다른 github 사용자 계정도 만들어야 합니까?
나는 이것을 '올바른' 방법으로 하고 싶고 많은 잠재적인 개발자를 확보할 수 있는 미래를 보장하고 싶지만 지나치게 복잡하게 만들고 싶지도 않습니다. 나는 간단하고 우아한 솔루션을 선호합니다.
추천이나 제안이 있나요?
답변1
약 12명의 개발자와 함께 사용하는 솔루션은 다음과 같습니다. 매우 잘 작동하며 더 이상 서버 구성을 수정할 필요 없이 유연한 설정이 가능합니다. 네트워크 대기 시간과 서버 스토리지 속도로 인해 개발자 40~50명으로 확장되지 않을 수 있습니다.
우리는/var/www/Samba를 통해 트리를 생성하므로 Windows 클라이언트는 로컬 IDE 및 VCS 클라이언트를 사용하여 LAMP 서버에서 편집할 수 있습니다. Linux 서버에는 아무도 계정이 없습니다.
다음과 같이 디렉터리 구조를 만듭니다.
/var/www/mysite.com/www/derek/
/var/www/mysite.com/www/paul/
/var/www/mysite.com/www/mike/
내부 DNS에서 **.dev*가 램프 서버의 IP 주소를 가리키는 와일드카드 레코드를 만듭니다. 나는 추측한다123.45.67.89여기.
Apache에서 다음과 유사한 가상 호스트를 정의합니다.
<VirtualHost 123.45.67.89>
ServerName lamp.dev
ServerAlias *.dev
VirtualDocumentRoot /var/www/%-3.0.%-2/%-4/%1/
</VirtualHost>
중요한 부분은 이 가상 호스트가 '.dev'로 끝나는 모든 수신 요청에 응답하도록 하는 ServerAlias 와일드카드입니다. 또 다른 중요한 것은 VirtualDocumentRoot로, 복잡해 보이지만 그렇게 나쁘지는 않습니다. 단순히 들어오는 호스트 이름을 여러 부분으로 나누고 그 부분에서 DocumentRoot를 구성합니다. 당신은 할 수 있습니다여기에서 자세한 내용을 읽어보세요..
이제 모든 개발자가 방문할 수 있습니다.http://derek.www.mysite.com.dev/mysite의 개인 작업 복사본을 봅니다.
새 사이트, 하위 도메인 또는 개발자를 추가하는 것은 단순히 Samba 공유에 올바른 디렉토리를 생성하는 것입니다.
프로덕션 서버에 배포하려면 scp를 버리고 다음을 살펴보는 것이 좋습니다.카피스트라노, 뛰어난 중앙 집중식 웹 프론트엔드웨비스트라노. Capistrano는 약간 Rails 중심이지만 예를 들어 PHP에 적용하려면 몇 줄만 있으면 됩니다. Webistrano는 버튼 하나만 누르면 버전 제어에서 바로 사이트를 배포하거나 업데이트할 수 있는 중앙 GUI를 제공합니다. 쉽게 스크립트로 작성된 배포를 사용하면 문제가 발생할 경우 안정적으로 반복하고 롤백할 수 있으므로 무시해서는 안 됩니다.