Onde no Apache 2 você define a diretiva ServerName globalmente?

29

NOTA: Isso está relacionado à minha pergunta: " Apache 2.4 não será recarregado, algum problema com minha configuração? ".

Estou tentando testar um site local localmente. Pelo que entendi, o Apache 2 (e talvez o Apache também) tem algo chamado VirtualHost . Meu pouco de compreensão me diz que o virtualhosting é uma maneira em que um servidor / endereço IP pode servir vários domínios.

De qualquer forma, estou recebendo o seguinte erro ao executar o configtest do Apache 2 para ver onde estou falhando. Eu estou rodando o Apache 2.4.10-1, e parece que há muitas mudanças que aconteceram entre o Apache 2.2 e o Apache 2.4 que eu não conheço.

$ 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

Este é o arquivo /etc/hosts :

 $ cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    debian mini

Eu também vejo um arquivo /etc/hosts.conf vazio. Talvez os dados em /etc/hosts precisem ser copiados para /etc/hosts.conf para o servidor ter conhecimento?

Meu nome de host:

$ hostname
debian

Este é o arquivo de configuração do site:

$ 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>

Eu também li sobre a vinculação a endereços e portas , mas não entendi isso muito bem várias razões. Não dá / compartilha um exemplo sobre em qual arquivo essas linhas precisam ser colocadas e o que virá antes e depois. Um exemplo teria sido muito melhor.

Eu fiz isso e reiniciei o servidor, mas ainda recebo o mesmo erro.

~$ 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

Parece que há três arquivos de configuração no Debian que eu preciso conhecer e entender.

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

e

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

Aparentemente, o apache2.conf é o arquivo de configuração global, enquanto o httpd.conf é um arquivo de configuração do usuário. Há também o ports.conf. Tanto o apache2.conf quanto o ports.conf estão nos padrões, exceto que eu mudei o nível de log do Apache de warn para debug .

Eu tentei um ao outro:

$ 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

Talvez alguém tenha mais conhecimento.

    
por shirish 12.09.2014 / 03:30

3 respostas

38

O arquivo a ser editado:

/etc/apache2/apache2.conf

Comando para editar o arquivo:

sudo nano /etc/apache2/apache2.conf

Para um nome de servidor global, você pode colocá-lo na parte superior do arquivo (fora das tags de host virtual).

A primeira linha parece:

ServerName myserver.mydomain.com

Em seguida, salve e teste a configuração com o seguinte comando:

apachectl configtest

Você deve receber:

Syntax OK

Em seguida, você pode reiniciar o servidor e verificar se você não recebeu a mensagem de erro:

sudo service apache2 restart
    
por 10.12.2014 / 13:27
5

Você deve definir a diretiva ServerName :

ServerName localhost

No Debian, você pode configurá-lo em /etc/apache2/conf.d/httpd.conf .

No macOS, você pode configurá-lo em /private/etc/apache2/httpd.conf .

    
por 12.09.2014 / 03:50
1

Para localizar seu arquivo de configuração do Apache, tente executar o seguinte comando:

apachectl -t -D DUMP_INCLUDES

Em seguida, edite esse arquivo e localize a linha com ServerName e remova o comentário. Assim:

ServerName localhost
    
por 01.11.2017 / 16:33