3

우리는 호스팅 된 솔루션으로 제공 될 응용 프로그램을 개발 중입니다. 나는 기본 코드를 복제하지 않고 동일한 코드로 여러 사이트를 어떻게 사용할 수 있는지 이해하는 것을 당부했다.동일한 코드베이스에서 여러 웹 사이트가 실행되고 있습니까?

예 : 웹 사이트 1 : www.example.com 및 웹 사이트 2 : www.sample.com은 동일한 코드에서 실행되지만 구성 설정이 다르며 테마가 다를 수 있습니다 ... 우리가 자체 도메인 이름을 실행하는 것처럼 WordPress에.

나는 이것을 어떻게 할 수 있는지 알고 싶습니다.

데이터베이스의 경우에도 마찬가지입니다. 각 웹 사이트마다 개별 데이터베이스를 만들거나 웹 사이트 ID가있는 동일한 데이터베이스를 각 테이블의 열로 사용하는 것이 좋습니다.

pls 나를 도와주세요.

[설명] 해당 도메인 별칭. 그것은 ... 서비스가 될 것입니다. 다른 클라이언트는 다른 테마로 자신의 도메인 이름으로 동일한 애플리케이션을 제공 받게됩니다. 어떤 블로거와 같은 일이 자신의 도메인 이름 만 같은 블로그 애플리케이션

[기술] 특별히 우리가 PHP 사용하는 를 사용할 구성을 결정하기 위해 호스트 이름을 사용하는 방법을 찾고 있어요와 MySQL

+0

좋은 질문은 아니지만 게시하기 전에 교정 할 시간이 있으면 좋았을 것입니다. –

+0

나는 이전 질문을 확인하고 이것을 발견했다. http://stackoverflow.com/questions/1530286/single-codebase-multiple-websites 이해할 수는 없습니다. – Masade

+0

답장을 기다리는 중 – Masade

답변

2

코드를 재사용하는 것이 분명 바람직합니다. 자신의 게시물에서 사이트가 서로 얼마나 다른지 상상하기 란 어렵습니다. 로고와 색상 체계 또는 다른 기능에 대해 이야기하고 있습니까?

다른 모양으로 시작하겠습니다. & 느낌. 또한 이것이 서버의 유일한 응용 프로그램이라고 가정합니다.

디렉토리 구조를 신중하게 계획하는 것이 좋습니다. 예 :

www-root/ 
/lib 
/themes 
     /domain1 
     /domain2 


index.php: 

<?php 
$host = $_SERVER['HTTP_HOST']; 
$include_theme = "themes/" . $host . "/configuration.php"; 
//make sure the file exists 
require_once($include_theme); 

이것은 단순한 접근 방식이지만 대략적인 사항입니다.

+0

이것이 정확히 내가 찾던 것이었다. 테마와 설정 만 변경됩니다. 내가 데이터베이스에서 구성 데이터를 사용하고 있습니다. – Masade

+0

감사합니다. 기쁜 데 도움이되었습니다. 추가 질문이 있으면 여기에 다른 의견을 게시하십시오. –

1

와 .. 않습니다 사실 아주 간단합니다.

코드 기반은 단일이어야하며 단일이어야합니다. 그것을 hosting1과 hosting2에 업로드하십시오. 유지 보수 할 때 코드를 업데이트하자마자 호스팅 공간에 업로드하십시오.

나는이 사이트가 어떻게 작동하는지 생각해 봅니다. 페이지의 바닥 글을보십시오. stackoverflow, meta, superuser 및 serverfault가 있습니다. 오른쪽 하단의 주석이 지금 뭐라고하는지 보면 "svn revision : 5404"가됩니다. 똑같은 것. 4 개의 사이트에 하나의 코드 기반이 게시되었습니다. 데이터베이스는 물론 다르며 완전히 다른 내용을 포함합니다.

그래서 변수 부분은 다음과 같습니다

  1. 구성

  2. 설정

  3. 데이터

복사해야 할 그 사람이.

구성 및 설정이 하드 코드되지 않지만 일부 데이터베이스 테이블 또는 적어도 일부 외부 구성 파일에 저장되도록 코드를 작성해야합니다. 이것들은 코드에 포함될 필요가 없도록 코드 (또는 원한다면 구현)에 포함되지 않습니다. 당신이 그들을 가지고 있다면, 그들을 데리고 나가십시오.

+0

단일 호스팅으로해야합니다. 나는 약 1000 개의 웹 사이트를 호스팅 할 예정이다. 그래서 모든 호스팅 계정을 업데이트하는 것이 실용적이지 않다. – Masade

+0

여러 사이트를 가지고 있다는 생각은 무엇인가? 도메인 별칭일까요? 또는 가족의 여러 사이트일까요? –

+0

도메인이 아닌 별칭입니다. 같은 ... 서비스가 될 것입니다. 다른 클라이언트는 다른 테마로 자신의 도메인 이름으로 동일한 애플리케이션을 제공 받게됩니다. 블로거가하는 것처럼 ... 도메인 이름은 같지만 블로그 응용 프로그램은 동일합니다. – Masade

1

에 동일한 서버를 가리키는 두 개의 서로 다른 도메인이 있고 호스트 이름을 기반으로 다른 구성을 설정할 수 있다고 가정합니다. 나는 이것을 추천하지 않을 것이다. 특히 사용자가 많거나 코드 기반을 가리키는 많은 수의 도메인이있는 경우 안정성과 성능에 문제가 발생할 수 있습니다.

일반적으로 여러 사이트를 실행하는 경우 각각 다른 서버가 있어야합니다.

편집 :

다른 대답에 대한 의견을 읽고 나면, 내가 조금 더 잘 사용 사례를 이해합니다.

아키텍처를 올바르게 설계하고 대규모 사용자로드를 처리 할 수있는 일종의로드 균형 조정 체계를 구현하면이 용도로 사용할 많은 수의 사이트가있는 경우이 작업을 수행 할 수 있습니다 . 요약하자면

:

  • 여러 서버를 얻고,이를 통해 부하를 분산.
  • 큰 사용자로드를 처리 할 응용 프로그램을 디자인하십시오.
  • 호스트 이름을 사용하여 사용할 구성을 결정합니다.
+0

그것은 내 서버 비용을 증가시킬 것입니다. 어떻게 정상적으로 그것을합니까? 블로거가 내 마음에 드는 예입니까? 그들은 보통 그것을 어떻게합니까? – Masade

+0

내 편집을 참조하십시오. 이 응용 프로그램을 개발하는 데 사용하는 언어는 무엇입니까? 응용 프로그램을 개발할 때 사용하고있는 것이 무엇인지 알면 구현을 도와 드릴 수 있습니다. –

+0

예. 우리는 계획을 세우고 있습니다. 부하 분산 등 ... 세 번째 부분을 수행하는 방법에 대한 코드를 얻을 수 없습니다. "호스트 이름을 사용하여 어떤 구성을 사용할 지 결정하십시오" – Masade

0

현재 약 15,000 개의 고유 도메인을 사용하고 있습니다. 어렵지 않지만 제대로 구현하려면 몇 가지 설계 고려 사항이 필요합니다.

는 단일 코드베이스 & 서버 떨어져 그것을 할, 그리고 본질적으로 들어오는 요청의 HTTP_HOST 값에 전적으로 의존하는 코드를 작성할 수 있습니다. 그런 다음 DB에있는 모든 것이 적절하게 데이터를 분리하고 적절한 데이터/html로 요청에 응답하는 수단으로 그 가치를 벗어납니다.

0

보안상의 이유로, 당신은 고려해 볼 수 있습니다 : 그 예를 들어, 사용자가 파일을 다른 웹 사이트에 액세스 할 수 없습니다 업로드 있도록

A)는 각 호스트에 대해 별도의 open_basedir 제한을 설정 /shared_library /host1의/user_images /host2/user_images

허용 된 경로에 공유 및 도메인 관련 디렉토리를 포함 할 수 있습니다.

B) 각 호스트에 대해 다른 데이터베이스에 연결하여 실수로 다른 웹 사이트의 데이터를 가져 오지 않도록하고 데이터베이스 서버를 쉽게 조정할 수 있습니다 (예 : 다른 도메인의 데이터베이스 서버로 이동)

매우 간단한 응용 프로그램을 사용하는 경우 하나의 데이터베이스를 사용하지 못할 수도 있습니다.

어쨌든 변경을 수행 할 때 사이트가 깨지지 않도록 전략을 준비해야합니다.