Apache에서 올바른 방법으로 여러 가상 호스트 만들기(macosx)

Apache에서 올바른 방법으로 여러 가상 호스트 만들기(macosx)

Apache에서 여러 가상 호스트를 정의하려고 할 때 이상한 문제가 발생했습니다. 이것은 httpd.conf 파일에 대한 내 코드입니다:

<VirtualHost *:8888>
    ServerName site1.local
    DocumentRoot /Applications/MAMP/htdocs/site1/public

    <Directory /Applications/MAMP/htdocs/site1/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:8888>
    ServerName site2.local
    DocumentRoot /Applications/MAMP/htdocs/site2/public

    <Directory /Applications/MAMP/htdocs/site2/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

브라우저에서 "site2.local"에 액세스하려고 하면 "site1.local"로 리디렉션됩니다. 이는 httpd.conf 파일 아래에 삽입한 모든 VirtualHost 정의에 발생합니다. "site2.local" 또는 기타 항목에 액세스하려면 해당 VirtualHost 정의를 맨 위에(첫 번째 정의처럼) 배치해야 합니다. 따라서 저는 Apache가 첫 번째 VirtualHost만 올바르게 실행하고 있다고 가정합니다.

또한 또 다른 문제: VirtualHost에 정의되지 않은 htdocs 폴더의 프로젝트 파일에 액세스하려고 하면 "금지됨, 이 서버의 /project/에 액세스할 수 있는 권한이 없습니다."라는 메시지가 표시됩니다. 이러한 프로젝트에 액세스하려면 httpd.conf 파일에서 모든 VirtualHost 정의를 제거해야 합니다.

내가 뭘 잘못하고 있는 걸까요?

내 경우에는 이것들(VirtualHost에 정의됨)이 Zend Framework가 포함된 PHP 프로젝트입니다. 저는 MacOSX를 사용하고 있습니다.

감사합니다

답변1

너는 그리워하고있다

NameVirtualHost *:8888

그리고

<VirtualHost _default_:8888>
DocumentRoot /www/default
</VirtualHost> 

Apache 기본 가상 호스트에 대한 자세한 내용은 이 온라인 문서를 참조하세요.

http://httpd.apache.org/docs/2.2/vhosts/examples.html

관련 정보