
저는 Debian 7을 사용하고 이 튜토리얼에 따라 주소가 sub.domain.com인 가상 호스트를 설치했습니다.http://www.debian-administration.org/articles/412
활성화하고 PC를 재부팅했지만 여전히 하위 도메인이 열립니다 /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>
그런데 아파치 구성을 다시 로드하면 다음과 같은 결과가 나타납니다.
NameVirtualHost *:80 has no VirtualHosts
어떤 제안이 있으십니까?
답변1
튜토리얼만 링크하는 것만으로는 정보가 충분하지 않습니다. 구성 파일을 게시하는 것이 더 좋습니다. /var/www
가상 호스트 주소를 열 때 발생하는 문제에는 더 많은 원인이 있을 수 있습니다.
Apache 구성 파일은 컨텍스트 없이 지시문이 전역적으로 적용되는 방식으로 작성되었습니다. 그렇지 않으면 컨텍스트 내에서만 적용됩니다. 가상 호스트는 default
또는 *
가상 호스트가 기본값으로 설정된 방식으로 수행됩니다. 그러한 것이 없으면 구성을 구문 분석하는 동안 처음으로 발견된 가상 호스트가 기본값으로 사용됩니다.
이제 마지막으로 가능한 대답은 다음과 같습니다.
1) 가상 호스트에서 DocumentRoot 지시문을 설정하지 않았으며 (아마도 기본) 전역 DocumentRoot가 /var/www
.
2) 가상호스트가 예상대로 작동하지 않습니다. 이름을 잘못 지었을 때 이런 일이 가끔 발생합니다. 디버그 로깅을 활성화 LogLevel debug
하고 원하는 주소를 열 때 무슨 일이 일어나고 어떤 가상 호스트가 호출되는지 확인하세요. 데비안의 로그 파일은 (100% 확실하지는 않음) 에 있습니다 /var/log/apache2/
.
구성 파일과 디버그 메시지를 게시하면 유용한 제안이 나올 가능성이 크게 높아집니다.
업데이트:
이름 기반 가상 호스팅을 설정하신 것 같습니다. 기본적으로 구성이 합리적으로 보입니다. 절 에서는 다음과 <VirtualHost ...>
같이 대상 포트를 지정해야 합니다 <VirtualHost *:443>
.
지시문은 DocumentRoot
여기 ServerName
에 있습니다. 괜찮습니다. 아마도 페이지를 요청할 때 가상 호스트가 호출되지 않을 수 있습니다.
이는 Apache가 어떤 IP가 가리키는지 모르기 때문일 수 있습니다 sub.domain.com
. DNS에 있습니까 sub.domian.com
, 아니면 적어도 호스트 파일에 있습니까?
이름 기반 가상 호스트에 대한 추가 정보:http://httpd.apache.org/docs/2.2/vhosts/name-based.html