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