하나의 '브레인'에 액세스하는 여러 사이트를 처리하는 방법은 무엇입니까?
-
19-09-2019 - |
문제
일반적으로 내 개발은 중소기업과 전자 상거래 사이트에만 적용되었습니다.
내 다음 프로젝트는 30개의 사이트를 포함할 것입니다. 하지만 두 사이트는 서로 약 95%의 공통점을 갖습니다.나는 그들이 변경 사항, 프레임워크 업데이트 등을 한 번만 롤아웃할 수 있다는 것을 의미하는 1개의 '브레인'을 갖기를 원합니다.
Stack Overflow 사이트 제품군(수퍼유저, stackoverflow, serverfault 등)이 이 작업을 수행하는지 궁금합니다.
내가 선택한 언어/플랫폼은 PHP 5.3, MySQL 5 및 Kohana Framework입니다.
두뇌는 다음과 같아야합니다
- 모든 사이트를 처리할 수 있는 1개의 관리 시스템
- 모든 템플릿은 두뇌에 존재하지만 제목, 로고 등과 같은 자리 표시자가 있습니다.
- 전역 템플릿에 대한 업데이트를 롤아웃할 수 있는 방법은 자동으로 다른 모든 사이트로 필터링됩니다.
나는 이것이 뇌에 많은 스트레스를 줄 것이라는 것을 알고 있으므로 서버 측 캐싱을 많이 사용해야 합니다.
각 도메인이 뇌에 액세스하도록 하려면 어떻게 해야 합니까? 예를 들면 다음과 같습니다.
http://www.mysite2.com/products/something
자동으로 액세스됨 http://www.mothership.com/mysite2/products/something
그리고 그것이 최선의 방법이겠습니까?어떤 팁이 있나요?나는 올바른 길을 가고 있습니까?
더 자세한 내용은 언제든지 문의해 주세요.
해결책
이를 수행하는 가장 쉬운 방법은 가상 호스팅을 사용하는 것입니다.기본적으로 모든 사이트를 하나의 시스템에서 실행합니다.한 시스템에는 모든 사이트를 제공하는 Apache 구성이 있습니다.
사이트가 다른 것보다 더 유사한 경우 모든 사이트를 하나의 디렉토리로 지정하면 됩니다.PHP 파일은 자신이 제공하는 사이트를 감지할 수 있습니다.모양과 느낌을 처리하기 위해 각 사이트마다 다른 머리글과 바닥글을 제공할 수 있습니다.이 방법으로 특정 페이지를 제한할 수도 있습니다.
사이트가 유사한 것보다 더 다른 경우 각각 다른 디렉토리를 가리키고 각 디렉토리에 해당 사이트와 관련된 페이지가 있습니다.
공통 기능의 경우 mod_rewrite와 같은 기능을 사용하여 다른 사이트의 URL을 동일한 스크립트에 매핑하거나 공통 기능을 포함하거나 요구하는 각 위치에 PHP 스크립트를 가질 수 있습니다.
기본적으로 옵션이 많습니다.귀하의 목표는 사이트를 유지 관리하기 쉽게 만들고 코드 중복을 최소한으로 유지하는 것입니다.
요청에 따라 읽을 것을 제안했습니다.
- Apache 가상 호스팅 구성:이것은 복잡한 주제이므로 어두운 깊이에 도달하기 위해 Serverfault로 가져가는 것이 좋습니다.
- Apache에서 가상 호스트 설정;그리고
- PHP 요령:여러 도메인을 처리하는 방법.
다른 팁
Apache에서 다음을 사용하여 이를 달성할 수 있습니다. <VirtualHost> Directive
.Apache 2.x에서 이를 수행하려면 다음을 편집하십시오. httpd.conf
그리고 이 줄의 주석 처리를 제거합니다(보통 파일 끝 부분에 있음). Include conf/extra/httpd-vhosts.conf
.그런 다음 파일을 찾으십시오. httpd-vhosts.conf
그리고 입장 VirtualHosts
이 형식으로:
<VirtualHost 10.1.2.3>
DocumentRoot /home/site1
ServerName site1.com
</VirtualHost>
<VirtualHost 10.1.2.3>
DocumentRoot /home/site2
ServerName site2.com
</VirtualHost>
<VirtualHost 10.1.2.3>
DocumentRoot /home/site2
ServerName site3.com
</VirtualHost>