저는 Debian 7을 사용하고 있으며 이 튜토리얼에 따라 주소가 sub.domain.com인 가상 호스트를 설치했습니다.http://www.debian-administration.org/articles/412
활성화하고 컴퓨터를 다시 시작했지만 하위 도메인이 여전히 열려 있습니다. /var/www
다음은 /etc/apache2/sites-available/에 있는 "sub.domain.com" 파일의 내용입니다.
<VirtualHost *>
ServerName sub.domain.com
DocumentRoot /usr/share/destfolder
ServerAdmin [email protected]
ErrorLog /var/log/apache2/sub.domain.com-error_log
CustomLog /var/log/apache2/sub.domain.com-access_log common
</VirtualHost>
그런데 Apache 구성을 다시 로드하면 다음과 같은 결과가 나타납니다.
NameVirtualHost *:80 has no VirtualHosts
어떤 제안이 있으십니까?
답변1
튜토리얼에 링크하는 것만으로는 정보가 충분하지 않으므로 구성 파일을 게시하는 것이 좋습니다. /var/www
가상 호스트 주소를 열 때 발생하는 상황에는 더 많은 이유가 있을 수 있습니다.
Apache 구성 파일은 지시문이 컨텍스트 없이 전역적으로 적용되는 방식으로 구축되었습니다. 그렇지 않으면 상황에 따라서만 적용됩니다. 기본적으로 설정된 대로 가상 default
호스트가 완성됩니다. *
그러한 가상 호스트가 없는 경우 구성을 구문 분석할 때 처음 발견된 가상 호스트가 기본 호스트로 간주됩니다.
이제 마지막으로 가능한 답변은 다음과 같습니다.
1) 가상 호스트에서 DocumentRoot 지시문을 설정하지 않았으며 (아마 기본) 전역 DocumentRoot가 /var/www
.
2) 웹 호스트가 예상대로 작동하지 않습니다. 이름을 잘못 지었을 때 이런 일이 가끔 발생합니다. 디버그 로깅을 활성화 LogLevel debug
하고 원하는 주소를 열 때 어떤 일이 발생하는지, 어떤 가상 호스트가 호출되는지 관찰하세요. Debian에서는 로그 파일이 위치합니다(100% 확실하지는 않음) /var/log/apache2/
.
구성 파일을 게시하고 메시지를 디버깅하면 유용한 제안을 받을 가능성이 크게 높아집니다.
고쳐 쓰다:
이름 기반 가상 호스팅이 켜져 있는 것 같습니다. 기본적으로 구성이 합리적으로 보입니다. 이 <VirtualHost ...>
절에서는 대상 포트 <VirtualHost *:443>
등을 지정해야 합니다.
지침 DocumentRoot
과 지침이 ServerName
모두 여기에 있으므로 그대로 사용하면 됩니다. 페이지를 요청할 때 웹 호스트가 호출되지 않을 수 있습니다.
이는 아마도 Apache가 IP가 무엇을 가리키는지 모르기 때문일 것입니다 sub.domain.com
. sub.domian.com
DNS가 있거나 최소한 호스트 파일에 있습니까 ?
이름 기반 가상 호스팅에 대한 추가 정보:http://httpd.apache.org/docs/2.2/vhosts/name-based.html