Apache 2에서 ServerName 지시문을 전역 적으로 어디에 설정합니까?


37

참고 : 이것은 내 질문과 관련이 있습니다. " Apache 2.4가 다시로드되지 않습니다 . 구성에 문제가 있습니까? ".

로컬 사이트를 로컬로 테스트하려고합니다. 내가 아는 것처럼 Apache 2 (아파치도)에는이라는 것이 VirtualHost있습니다. 약간의 이해는 가상 호스팅이 하나의 서버 / IP 주소가 여러 도메인에 서비스를 제공 할 수있는 방법이라는 것을 말해줍니다.

어쨌든, Apache 2를 실행할 때 다음 위치에서 오류가 발생합니다 configtest. Apache 2.4.10-1을 실행 중이며 Apache 2.2와 Apache 2.4 사이에 많은 변경 사항이있는 것으로 보입니다.

$ sudo apache2ctl configtest
[sudo] password for shirish:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

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

 $ cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    debian mini

/etc/hosts.conf파일도 있습니다. 서버가 인식 /etc/hosts하기 /etc/hosts.conf위해 데이터를 복사해야 합니까?

내 호스트 이름 :

$ hostname
debian

이것은 사이트의 구성 파일입니다.

$ cat /etc/apache2/sites-available/minidebconfindia.conf
<VirtualHost mini:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html/in2014.mini/website

    <Directory />
        Options +FollowSymLinks +Includes
        Require all granted
    </Directory>

    <Directory /var/www/html/in2014.mini/website/>
        Options +Indexes +FollowSymLinks +MultiViews +Includes
        Require all granted
    </Directory>
</VirtualHost>

또한 주소와 포트에 바인딩하는 것에 대해 읽었 지만 여러 가지 이유로 잘 이해하지 못했습니다. 이러한 줄을 넣을 파일과 이전과 이후에 올 파일에 대한 예는 제공하지 않습니다. 예가 훨씬 나았을 것입니다.

나는 그것을하고 서버를 다시 시작했지만 여전히 같은 오류가 발생합니다.

~$ sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

데비안에는 세 가지 구성 파일이 있고 이해해야합니다.

/etc/apache2$ ls *.conf
apache2.conf  ports.conf

/etc/apache2/conf.d$ ls *.conf
httpd.conf

분명히 apache2.conf는 전역 구성 파일이고 httpd.conf는 사용자 구성 파일입니다. ports.conf도 있습니다. Apache의 로그 레벨을에서 (으) warn로 변경 한 것을 제외하고 apache2.conf 및 ports.conf는 모두 기본값 debug입니다.

나는 다른 것을 시도했다.

$ sudo apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
127.0.1.1:80           debian (/etc/apache2/sites-enabled/minidebconfindia.conf:1)
*:80                   127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

누군가 더 많은 통찰력을 가지고있을 수도 있습니다.

답변:


43

편집 할 파일 :

/etc/apache2/apache2.conf

파일을 편집하는 명령 :

sudo nano /etc/apache2/apache2.conf

글로벌 서버 이름의 경우 파일 맨 위에 (가상 호스트 태그 제외) 배치 할 수 있습니다.

첫 번째 줄은 다음과 같습니다.

ServerName myserver.mydomain.com

그런 다음 다음 명령을 사용하여 구성을 저장하고 테스트하십시오.

apachectl configtest

당신은 얻을 것이다 :

구문 OK

그런 다음 서버를 다시 시작하고 오류 메시지가 표시되지 않는지 확인할 수 있습니다.

sudo service apache2 restart

2
이것이 데비안 정답입니다. 나는 시도 /etc/apache2/conf-available/fqdn.conf하거나, servername.conf또는 httpd.conf아무 소용에. 데비안 Jessie, 그리고apache 2.4.10
Beco 박사

2
conf-available/및 이있는 경우 conf-enabled/파일을 생성 conf-available/하고 명령 a2enconf을 사용하여 활성화하십시오. 이런 식으로 dpkg는 apache2-common패키지가 업데이트 될 때 추적되지 않은 변경에 대해 귀찮게하지 않습니다apache2.conf
Kevin

이 파일 conf-available과 편집 후의 파일은 /etc/apache2/conf-available/servername.conf내용 이있을 수 있습니다 ServerName myserver.mydomain.com(Raspberry Pi, Apache 2.4.10, Debian 8 (Jessie), Linux kernel 4.4.34에서 시도).
Peter Mortensen

@PeterMortensen 당신이 의미하는 것을 이해할 수 있도록 공유 된 예제를 사용할 수 있습니까?
shirish

파일이 존재하지 않음
Black

5

ServerName 지시문을 설정해야합니다 .

ServerName localhost

데비안에서는에서 설정할 수 있습니다 /etc/apache2/conf.d/httpd.conf.

macOS에서는에서 설정할 수 있습니다 /private/etc/apache2/httpd.conf.


5
우분투에서 /etc/apache2/apache2.conf에 설정하십시오
macki

1
데비안 : apache2.conf.
Dr Beco

1
어떤 버전의 Apache / Debian이 작동합니까? Apache 2.4에서는 작동하지 않는다고 생각합니다. /etc/apache2/apache2.conf대신 할 수 있습니다 .
Peter Mortensen

그것은 작동합니다, 데비안 8에서 아파치 2.4
erajuan

2

Apache 구성 파일을 찾으려면 다음 명령을 실행하십시오.

apachectl -t -D DUMP_INCLUDES

그런 다음 해당 파일을 편집하고 줄을 찾아서 ServerName주석 처리를 제거하십시오.

ServerName localhost

0

apache24 설정 파일에서 다음 줄을 볼 수 있습니다 ServerName:80:

  1. 비워 두십시오.
  2. 그런 다음 빈 공간에서 해당 줄 아래에 씁니다.
    ServerName www.name (of your official domain or website.com:80)
  3. 구성 파일을 저장하십시오.
  4. 으로 이동하여 cmd관리자 dir가 apache24가있는 위치로 변경 하면 엽니 다.
  5. 그런 cd apache24다음 cd binhttpd.exe

문제가 해결 된 것을 볼 수 있습니다.

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