한동안 잘 작동했던 Apache를 사용하여 VirtualHosts로 구성된 몇 개의 사이트가 있습니다. 최근에 서버의 호스트 이름을 서비스중인 도메인 이름 중 하나로 변경하고 서버의 외부 IP 주소를 가리키는 / etc / hosts에 추가했습니다.
그렇게 한 후 랩톱에서 도메인에 액세스하면 Apache의 기본 "작동합니다!"로 이동합니다. 페이지. / etc / apache2 / sites-enabled /에서 000-default를 제거하면 올바른 사이트가 표시됩니다. 'www'로 사이트에 액세스하려고합니다. prefix는 000-default가 사이트 사용 가능인지 여부에 관계없이 올바른 사이트로 이동합니다.
이 모든 것을 기반으로, 호스트 이름 또는 / etc / hosts (또는 둘 다)를 구성한 방법으로 인해 기본 구성이 기본 페이지를 제공한다고 생각하지만 그 동안 비활성화하는 방법을 알 수는 없습니다. 해당 설정을 그대로 둡니다. 어떤 제안이라도 환영합니다!
편집-내 현재 VirtualHost 구성은 다음과 같습니다.
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
ServerAdmin me@domain.com
DocumentRoot /srv/www/domain
ErrorLog /srv/www/domain/logs/error.log
CustomLog /srv/www/domain/logs/access.log combined
</VirtualHost>
요약하면 : 여러 개의 VirtualHosts가 설정되어 있으며 이것이 제대로 작동하지 않는 유일한 호스트입니다. http://www.domain.com에 액세스 할 수는 있지만 http://domain.com 은 Apache의 기본 "작동합니다!"로 이동합니다. 페이지. 000-default 구성을 비활성화하면 올바른 페이지가 표시됩니다. 이것은 서버의 호스트 이름을 domain.com으로 설정하고 domain.com을 서버의 외부 IP 주소로 가리키는 / etc / hosts에 행을 추가 한 후에 시작되었습니다. 가능하면 그런 식으로 남겨두고 싶습니다.
편집 : 내가 달릴 apache2ctl -S
이후 /usr/sbin/apache2 -S
"잘못된 사용자 이름 $ {APACHE_RUN_USER} 아파치"내게 준. 출력은 다음과 같습니다.
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server domain.com (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost domain.com (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost other.com (/etc/apache2/sites-enabled/other:1)
port 80 namevhost another.com (/etc/apache2/sites-enabled/another:1)
port 80 namevhost domain.com (/etc/apache2/sites-enabled/domain:1)
Syntax OK