2016-08-26 4 views
0

현재 Apache 구성을 설정하려고합니다. 하나의 IP (예 : 10.10.10.10)와 하나의 도메인 (예 : www.mydomain.com)이 있습니다.Apache 동일 도메인 다중 가상 호스트

이 서버는 현재이 개 사이트를 호스팅하는 각 사이트가 자신의 conf와 php.ini 파일에 자신의 아파치 인스턴스를 가지고 :

/appli/projects/project1/apache_2.4/conf/project1.conf => 사이트 1

/appli/projects/project2/apache_2.4/conf/project2.conf => 사이트 2

project1.conf은 (SSL 443과 같은) 그런 식으로 설정됩니다

<VirtualHost 10.10.10.10:80> DocumentRoot /appli/projects/project1/apache_2.4/htdocs/project1folder/ ServerName mydomain.com </virtualHost>

project2.conf은 (SSL을위한 453와 같은) 그런 식으로 설정 : 나는 "mydomain.com"I가 "사이트 1"하지만 난 가고 있어요에 연결하고 그래서

<VirtualHost 10.10.10.10:90> DocumentRoot /appli/projects/project2/apache_2.4/htdocs/project2folder/ ServerName mydomain.com </virtualHost>

을 정말 좋지 않다 "사이트 2"...

내가 그런 일을하고 싶은에 액세스하기위한 mydomain.com:453을 쳐야 :

mydomain.com/site1 => "사이트 1"(또는 site1.mydomain.com)

mydomain.com/site2 => "사이트 2"(또는 site2.mydomain.com)

내가 "사이트 1"타격 mydomain.com을 유지하고 싶습니다.

불행히도 각 사이트마다 Apache 인스턴스가 있기 때문에 설정 방법을 모릅니다.

마지막으로, PHP (Apache) SESSION을 다중 Apache 인스턴스에 공유 할 수 있는지 또는 사이트간에 정보를 공유하기 위해 COOKIES 도메인 전체를 사용해야하는지 알고 싶습니다.

정말 명확한 지 모르겠지만 더 많은 정보가 필요한지 물어보십시오.

미리 감사드립니다.

+0

무엇을하려합니까? 'mydomain.com/site1'과'mydomain.com/site2'를 원한다면,'mydomain.com'을 두 개의 서로 다른 폴더에'site1'과'site2'를 포함하는 폴더로 지정하면 어떨까요? 여러 인스턴스 또는 복수의 가상 호스트가 필요하지 않습니까? –

+0

Btw .. 당신은 정말로'apache'를 제외한 모든 태그를 제거해야합니다 ..이 질문은 순수하게 아파치 설정에 관한 것입니다 ... 아무것도 ... –

+0

다른 태그를 제거했습니다. 그것은 미안한 다른 것들을 염려 할 수도 있다고 생각했습니다. 같은 Htdocs 안에'Site 1'과'Site 2'를 넣어야한다는 것을 의미합니까? 하나는 다른 사람이 추락 한 경우에 영향을받지 않았다면 다중 Apache 인스턴스를 사용하는 것이 더 똑똑하다고 느꼈습니다 ... – Dabeliuteef

답변

1

나의 추천은 이것이다 :

파일 구조 :

htdocs/ 
    site1 
     ...files... 
    site2 
     ...files... 

아파치 가상 호스트 :

<VirtualHost 10.10.10.10:80> 
    DocumentRoot /appli/projects/project1/apache_2.4/htdocs/ 
    ServerName example.com 
</virtualHost> 

... 다음은 SSL-에 대해 같은 일을 가상 호스트.

이제 http://example.com/site1http://example.com/site2을 사용할 수 있으며 https도 마찬가지입니다.

다른 포트 (기본값 80 및 443 이외의 다른 포트)를 사용하려면 사이트에 액세스 할 수 있도록 명시 적으로 포트 이름을 쓰거나 역방향 프록시를 설정해야합니다 .)

당신은 당신의 가상 호스트에 site1site2에 대한 특정 규칙을 정의 할 수 있습니다 사이트 당

구성 :.

<VirtualHost 10.10.10.10:80> 
    DocumentRoot /appli/projects/project1/apache_2.4/htdocs/ 
    ServerName example.com 

    <Directory /appli/projects/project1/apache_2.4/htdocs/site1/> 
     # Some specific vhost config... 
    </Directory> 

    <Directory /appli/projects/project1/apache_2.4/htdocs/site2/> 
     # Some specific vhost config... 
    </Directory> 

</virtualHost> 

site1.example.comsite2.example.com과 같은 다른 하위 도메인을 원하면 http를 포트 80, https를 포트 443으로 사용하면서 폴더를 직접 가리키는 다른 가상 호스트를 수행하십시오.

https에 대한 다중 도메인 인증서 또는 와일드 카드 인증서가 있어야한다는 점을 기억하십시오 (두 호스트 이름이기 때문에). 또는 Let's Encrypt을 설치할 수도 있습니다.

+0

솔루션으로 더 깨끗해 보입니다. 모든 사이트간에'SESSIONS' 및/또는'COOKIES'를 공유 할 수 있습니까? 또한 'www.exemple.com'과 같이 로그인 페이지 (예 : www.exemple.com/login.php)로 이동 한 다음 'www.exemple.com/site1/'으로 리디렉션 할 수 있습니까? index.php' 연결 후. 만약 누군가가'www.exemple.com/site1' 또는''/ site2'에 로그인하지 않으면'www.exemple.com/login.php'로 리다이렉트 될 것입니다. – Dabeliuteef

+0

예, 작동 할 것입니다. 하나의 사이트로만 보입니다. –

+0

좋은 일을합니다, 고마워요;) – Dabeliuteef