Dove in Apache 2 imposti la direttiva ServerName a livello globale?


37

NOTA: questo è legato alla mia domanda: " Apache 2.4 non si ricaricherà, nessun problema con la mia configurazione? ".

Sto cercando di testare un sito locale, localmente. A quanto ho capito, Apache 2 (e forse anche Apache) ha qualcosa chiamato VirtualHost. Il mio po 'di comprensione mi dice che il virtualhosting è un modo in cui un server / indirizzo IP può servire più domini.

Ad ogni modo, visualizzo il seguente errore quando eseguo Apache 2 configtestper vedere dove sto fallendo. Sto eseguendo Apache 2.4.10-1 e sembra che ci siano stati molti cambiamenti tra Apache 2.2 e Apache 2.4 di cui non sono a conoscenza.

$ 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

Questo è il /etc/hostsfile:

 $ cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    debian mini

Vedo anche un /etc/hosts.conffile vuoto . Forse i dati in /etc/hostsdevono essere copiati affinché /etc/hosts.confil server prenda conoscenza?

Il mio nome host:

$ hostname
debian

Questo è il file di configurazione del sito:

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

Ho anche letto del legame con indirizzi e porte , ma non l'ho capito bene per diversi motivi. Non fornisce / condivide un esempio di quale file devono essere inserite quelle righe e cosa verrà prima e dopo. Un esempio sarebbe stato molto meglio.

L'ho fatto e riavviato il server, ma ho ancora lo stesso errore.

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

Sembra che ci siano tre file di configurazione in Debian che devo conoscere e comprendere.

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

e

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

Apparentemente, apache2.conf È il file di configurazione globale mentre httpd.conf è un file di configurazione dell'utente. C'è anche doors.conf. Sia apache2.conf che doors.conf sono predefiniti, tranne per il fatto che ho modificato il livello di Google di Apache da warna debug.

Ho provato un'altra cosa:

$ 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

Forse qualcuno ha più intuizioni.

Risposte:


43

Il file da modificare:

/etc/apache2/apache2.conf

Comando per modificare il file:

sudo nano /etc/apache2/apache2.conf

Per un servername globale puoi metterlo nella parte superiore del file (al di fuori dei tag host virtuali).

La prima riga è simile a:

ServerName myserver.mydomain.com

Quindi salvare e testare la configurazione con il seguente comando:

apachectl configtest

Dovresti ricevere:

Sintassi OK

Quindi è possibile riavviare il server e verificare di non ricevere il messaggio di errore:

sudo service apache2 restart

2
Questa è la risposta corretta Debian. Ho provato /etc/apache2/conf-available/fqdn.conf, o servername.confo httpd.confinutilmente. Debian Jessieeapache 2.4.10
Dr Beco,

2
Se hai conf-available/e conf-enabled/, crea un file conf-available/e usa il comando a2enconfper abilitarlo. In questo modo, dpkg non ti infastidirà per le modifiche non monitorate quando / se il apache2-commonpacchetto si aggiornaapache2.conf
Kevin

Il file conf-availabledopo questo e una modifica potrebbero essere /etc/apache2/conf-available/servername.confcon contenuto ServerName myserver.mydomain.com(provato su Raspberry Pi, Apache 2.4.10, Debian 8 (Jessie), kernel Linux 4.4.34).
Peter Mortensen,

@PeterMortensen potresti usare l'esempio condiviso così posso capire cosa intendi.
shirish

Il file non esiste
Black

5

È necessario impostare la direttiva ServerName :

ServerName localhost

In Debian, puoi impostarlo /etc/apache2/conf.d/httpd.conf.

Su macOS, puoi impostarlo /private/etc/apache2/httpd.conf.


5
In Ubuntu,
impostalo

1
Debian o: apache2.conf.
Dr Beco,

1
Per quali versioni di Apache / Debian funziona? Non penso che funzioni per Apache 2.4. Potrebbe essere /etc/apache2/apache2.confinvece.
Peter Mortensen,

funziona, Apache 2.4 su Debian 8
erajuan

2

Per individuare il file di configurazione di Apache, prova a eseguire il comando seguente:

apachectl -t -D DUMP_INCLUDES

Quindi modifica quel file e individua la linea con ServerNamee decommentalo, quindi sembra:

ServerName localhost

0

Nel file di configurazione di apache24, vedrai la riga ServerName:80:

  1. Lascialo vuoto.
  2. Quindi sotto quella riga nello spazio vuoto scrivi:
    ServerName www.name (of your official domain or website.com:80)
  3. Salva il file di configurazione.
  4. Vai a cmd, aprilo come amministratore cambia dirin apache24
  5. Poi cd apache24poi cd binpoi httpd.exe

Vedrai che il problema è stato risolto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.