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

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빈 페이지가 나타납니다.

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



답변

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

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

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


답변

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

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

답변

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

127.0.1.1  hpdtp-ubuntu910.lan  hpdtp-ubuntu910

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


답변

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

배경:

데비안 리눅스 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>

답변

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


답변

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

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


답변

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

ServerName nameofserver