Apache 2에서 ServerName 지시문은 전역적으로 어디에 설정되어 있습니까?

Apache 2에서 ServerName 지시문은 전역적으로 어디에 설정되어 있습니까?

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

로컬 사이트를 로컬에서 테스트하려고 합니다. 내가 아는 바로는 Apache 2(그리고 아마도 Apache)에는 VirtualHost.

configtest어쨌든 Apache 2를 실행하여 실패한 위치를 확인하면 다음 오류가 발생합니다. 나는 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

데비안에는 내가 알고 이해해야 할 3가지 구성 파일이 있는 것 같습니다.

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

그리고

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

분명히 apache2.conf는 전역 구성 파일이고 httpd.conf는 사용자 구성 파일입니다. ports.conf도 있습니다. apache2.conf와 ports.conf는 둘 다 기본값입니다. 단, Apache의 로그 수준 warndebug.

내가 시도한 또 다른 것:

$ 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

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

답변1

편집할 파일:

/etc/apache2/apache2.conf

파일 편집 명령:

sudo nano /etc/apache2/apache2.conf

글로벌 서버 이름의 경우 파일 상단(가상 호스트 태그 외부)에 넣을 수 있습니다.

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

ServerName myserver.mydomain.com

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

apachectl configtest

당신은 다음을 얻어야합니다 :

문법이 결정됨

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

sudo service apache2 restart

답변2

설정해야 합니다.서버 이름 지시어:

ServerName localhost

데비안에서는 이것을 /etc/apache2/conf.d/httpd.conf.

macOS에서는 다음을 수행할 수 있습니다 /private/etc/apache2/httpd.conf.

답변3

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

apachectl -t -D DUMP_INCLUDES

그런 다음 파일을 편집하고 해당 줄을 찾아서 ServerName다음과 같이 주석 처리를 제거합니다.

ServerName localhost

답변4

apache24 구성 파일에는 다음 줄이 표시됩니다 ServerName:80.

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

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

관련 정보