apache2 : ServerName에 127.0.1.1을 사용하여 서버의 정규화 된 도메인 이름을 안정적으로 확인할 수 없습니다.


73

Apache를 다시 시작할 때이 경고가 계속 나타납니다.

* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ]

이것은 내 etc/hosts파일 의 내용입니다 .

#127.0.0.1  hpdtp-ubuntu910
#testproject.localhost  localhost.localdomain   localhost
#127.0.1.1  hpdtp-ubuntu910

127.0.0.1   localhost
127.0.0.1   testproject.localhost
127.0.1.1   hpdtp-ubuntu910



# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

이것은 내 /etc/apache2/sites-enabled/000-default파일 의 내용입니다 .

<VirtualHost *:80>
  ServerName testproject.localhost
  DocumentRoot "/home/morpheous/work/websites/testproject/web"
  DirectoryIndex index.php
  <Directory "/home/morpheous/work/websites/testproject/web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf /lib/vendor/symfony/symfony-1.3.2/data/web/sf
  <Directory "/lib/vendor/symfony/symfony-1.3.2/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

에 가면 http://testproject.localhost빈 페이지가 나타납니다.

아무도 내가 뭘 잘못하고 있는지 알아낼 수 있습니까?

답변:


52

기본적으로 Ubuntu는 서버 이름이 무엇인지 모르기 때문에 Apache 구성에서 ServerName을 지정하지 않습니다. IP 주소에서 역방향 조회를 시도하여 아무것도 반환하지 않으므로 IP 주소를 ServerName 으로 사용해야합니다 .

이 문제를 해결하려면 가상 호스트 외부에 ServerName 지정 문을 추가 /etc/apache2/httpd.conf하거나 ( 예 : in ) 기본 IP 주소에 대해 역방향 DNS 응답을 설정하십시오 (이 경우 127.0.1.1).

그것을 무시하는 것도 완벽합니다.


3
이것은 직관적이지 않습니다. 가상 호스트 외부 에 ServerName을 추가 하면 동일한 Apache 서버에서 여러 가상 호스트를 어떻게 제공 할 수 있습니까? (결국 가상 서버의 요점입니다.)-/ 당신은 /etc/apache2/httpd.conf
user35402

7
그런 다음 VirtualHost 블록 내에 ServerName / ServerAlias를 추가하여 VirtualHost가 원하는 호스트 이름과 만 일치하도록 할 수 있습니다. 하향식에 대해서는 httpd.apache.org/docs/2.2/mod/core.html#servername 을 읽으 십시오.
crb

한 시간 동안이 답변을 검색했습니다. 인터넷과 관련하여 많은 문제가 있었지만 이것은 내 문제를 해결했습니다. Thx
Mike

@ 당신과 다른 사람들처럼 천재입니다! 이 답변을 4 일 동안 검색했습니다 . (완전히 근무일이 아닙니다.) +1 이것은 가상 호스트 외부에 ServerName 지시문을 영향을 미치지 않고 추가 할 수 있음을 설명하는 첫 번째 대답이므로 +1입니다. 이를 염두에두고 ReinoutS의 솔루션이 나를 위해 일했습니다 (+1도).
Sony Santos

27

빠른 수정 사항은 다음과 같습니다.

echo ServerName $HOSTNAME > /etc/apache2/conf.d/fqdn

감사. / etc / hosts 또는 httpd.conf를 사용하는 수정 프로그램 중 어느 것도 효과가 없었지만 이것은 효과가 없었습니다.
Ryan

1
apache2를 실행하는 Ubuntu 13.04에서 수정했습니다. 감사합니다!
dmanexe

16

이 경고를 해결하는 또 다른 방법은의 127.0.1.1라인 에 정규화 된 도메인 이름을 입력하는 것 입니다 /etc/hosts. 실제로 dns 서버의 어떤 것으로도 해결되는 fqdn 일 필요는 없습니다.

127.0.1.1  hpdtp-ubuntu910.lan  hpdtp-ubuntu910

추가를 기대하지 않는 모든 프로그램의 동작을 유지하면서 트릭을 수행합니다 .lan. 순서가 중요합니다. .lan주소가 다른 주소보다 앞에 오는 이 예에서와 같이 더 많은 레벨을 가진 이름을 먼저 지정해야합니다 .


7

이 솔루션은 내 개발 요구에 적합합니다.

배경:

데비안 리눅스 Sid :
VirtualHost 개발 : 10 개의 서버 이름이 있습니다 (사이트 내에서 10 개의 가상 호스트 항목 사용 가능)

내부에 각각 고유 한 로컬 호스트 IP 주소를 할당했습니다 /etc/hosts.

127.0.0.1   joe   localhost.localdomain   localhost
127.0.1.1   joe
127.0.1.2   joomla
127.0.1.3   schmoo
127.0.1.4   forrest
127.0.1.5   store
127.0.1.6   publisher
127.0.1.7   studios
127.0.1.8   drupal
127.0.1.9   graphics
127.0.1.10  wordpress
...

The following lines are desirable for IPv6 capable hosts

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

다른 가상 호스트를 추가하려면 (개발을 위해 꽤 많은 것이 있습니다) 다른 로컬 호스트 IP 주소에 항목을 추가하고 Apache 2.2를 다시 시작하기 전에 사이트를 활성화하십시오.

127.0.0.11 *newhost*

VirtualHost 파일로 사용하려는 모든 항목에 대해 다음을 수행하십시오.

/ etc / apache2 / sites-available /

조 줌라 스쿠 포레스트 스토어 출판사 스튜디오 드루팔 그래픽 워드 프레스

모든 가상 호스트는 a2ensite / a2dissite 호스트 이름을 통해 활성화 / 비활성화됩니다

오류를 억제하려면

웹 서버 재시작 : apache2apache2 : ServerName에 127.0.0.1을 사용하여 서버의 정규화 된 도메인 이름을 안정적으로 확인할 수 없습니다 ... 대기 apache2 : ServerName에 127.0.0.1을 사용하여 서버의 정규화 된 도메인 이름을 안정적으로 결정할 수 없습니다 ''

[데비안의 빈 파일]에서 httpd.conf 를 편집 /etc/apache2/httpd.conf하십시오 :

ServerName 127.0.1.1

그런 다음 라인에 추가 , 주석 처리 또는 비활성화 한 모든 이름에 대해 조회가 해결 됩니다.

잊어 버린 경우 : 유일한 VirtualHost * : 80 항목은 ports.conf 파일 에만 있어야 합니다.

/etc/apache2/ports.conf

**NameVirtualHost *:80**
Listen 80

<IfModule mod_ssl.c>
   # If you add NameVirtualHost *:443 here, you will also have to change
   # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
   # to <VirtualHost *:443>
   # Server Name Indication for SSL named virtual hosts is currently not
   # supported by MSIE on Windows XP.
   Listen 443
</IfModule>

<IfModule mod_gnutls.c>
   Listen 443
</IfModule>

VirtualHost 항목에서 VirtualHost * : 80을 제외하십시오.

예 : virtualhost joe

<VirtualHost *:80>
    **ServerAlias joe**
    **...**
</VirtualHost>

6

ServerNamehttpd.conf의 설정 이 작동하지 않았습니다. ServerName 127.0.0.1에서 설정 하여 수정했습니다 /etc/apache2/conf.d/name.

우분투 12.10 Alpha3을 실행 중이며 ServerName두 지점 모두에서 정의했습니다.

출처 : http://linuxconfig.net/manual-howto/error-solution-could-not-reliably-determine-the-servers-fully-qualified-domain-name.html


쿨, 이것은 나에게도 효과가 있었지만 같은 문제가있었습니다.
Priyank Bolia

5

서버 구성 수준 ServerName 항목이 없습니다. Apache를 기본값으로 사용하려면 호스트 외부에 ServerName 항목이 있어야합니다.

VirtualHost 내에 ServerName 항목을 넣으면 문제가 해결되지 않습니다. ServerName 지시문을 참조 하십시오 .


3

이 문제를 해결하려면 /etc/apache2/httpd.conf 또는 /etc/apache2.conf를 편집하고 다음 줄을 추가해야합니다.

ServerName nameofserver

1
네가 옳아! 그러나이 답변은 새로운 정보 나 통찰력을 제공하지 않고 crb의 답변 내용을 복제합니다. 나는 그것을 삭제하거나 다른 사람들의 대답과 다른 세부 사항을 추가하는 것을 고려할 것입니다.
Royce Williams

1

ServerName기본 가상 호스트 를 추가해야한다고 생각합니다 . 존재하지 않기 때문에 기본 IP 주소를 사용합니다. 그리고 일종의 경고입니다. 귀하의 웹 서버는 여전히 작동합니다.


귀하의 의견을 이해하지 못합니다. 내 파일에 이미 ServerName이 있습니다. <VirtualHost 127.0.0.1:8080> ServerName mysite.localhost 댓글을 남겨주시겠습니까?

1
특정 가상 호스트뿐만 아니라 -default- virtualhost의 경우.
Kzqai

0
  1. 다음 단계를 사용 하여 httpd.conf 파일 에 ServerName을 추가해야 합니다.

    sudo gedit /etc/apache2/httpd.conf
    

    기본적으로 httpd.conf파일은 비어 있습니다. 이제 파일에 다음 줄을 추가하면됩니다.

    ServerName localhost
    

    파일을 저장하고에서 종료하십시오 gedit. 마지막으로 서버를 다시 시작하십시오.

    sudo /etc/init.d/apache2 restart
    

2) Include httpd.conf끝에 추가apache2.conf


-1

설치 후 httpd.conf 파일이 etc / apache2 디렉토리에 없으면 기본 아파치 구성 파일 인 apache2.conf에 참조가 없으므로 작성된 httpd.conf에 아무것도 추가하지 않습니다. 아무것도. 대신 "ServerName hostname"행을 apache2.conf 파일에 추가하면됩니다.


-1

/ etc / hosts에 여전히 이러한 항목이 있습니까? (위의 답변을 건너 뛰었습니다)

127.0.0.1 로컬 호스트 127.0.0.1 testproject.localhost

두 IP 주소 127.0.0.1은 여기에서 동일합니다.

루프백 IP 서브넷에서 testproject.localhost에 다른 IP 주소를 제공하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.