Où dans Apache 2 définissez-vous la directive ServerName globalement?

37

NOTE: Ceci est lié à ma question: " Apache 2.4 ne rechargera pas, aucun problème avec ma configuration? ".

J'essaie de tester un site local, localement. Si je comprends bien, Apache 2 (et peut-être aussi Apache) a quelque chose qui s'appelle VirtualHost. Mon petit peu de compréhension me dit que virtualhosting est un moyen par lequel un serveur / une adresse IP peut desservir plusieurs domaines.

Quoi qu'il en soit, je reçois l'erreur suivante lors de l'exécution d'Apache 2 configtestpour voir où j'échoue. J'utilise Apache 2.4.10-1 et il semble que de nombreux changements se soient produits entre Apache 2.2 et Apache 2.4, dont je ne suis pas au courant.

$ 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

C'est le /etc/hostsfichier:

 $ cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    debian mini

Je vois aussi un /etc/hosts.conffichier vide . Peut-être /etc/hostsfaut-il copier les données dans /etc/hosts.confpour que le serveur prenne connaissance?

Mon nom d'hôte:

$ hostname
debian

Ceci est le fichier de configuration du 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>

J'ai également lu des articles sur la liaison aux adresses et aux ports , mais je ne l'ai pas bien compris pour plusieurs raisons. Cela ne donne pas / ne donne pas un exemple indiquant dans quel fichier ces lignes doivent être placées et ce qui se passera avant et après. Un exemple aurait été beaucoup mieux.

Je l'ai fait et ai redémarré le serveur, mais j'obtiens toujours la même erreur.

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

Il semble que je doive connaître et comprendre trois fichiers de configuration dans Debian.

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

et

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

Apparemment, apache2.conf EST le fichier de configuration global alors que le fichier httpd.conf est un fichier de configuration utilisateur. Il y a aussi ports.conf. Apache2.conf et ports.conf sont tous les deux par défaut, sauf que j'ai changé le niveau de journalisation d'Apache de warnà debug.

J'ai essayé une autre chose:

$ 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

Peut-être que quelqu'un a plus de perspicacité.

shirish
la source

Réponses:

43

Le fichier à éditer:

/etc/apache2/apache2.conf

Commande pour éditer le fichier:

sudo nano /etc/apache2/apache2.conf

Pour un nom de serveur global, vous pouvez le placer en haut du fichier (en dehors des balises d'hôte virtuel).

La première ligne ressemble à:

ServerName myserver.mydomain.com

Puis sauvegardez et testez la configuration avec la commande suivante:

apachectl configtest

Tu devrais obtenir:

Syntaxe OK

Ensuite, vous pouvez redémarrer le serveur et vérifier que vous n'obtenez pas le message d'erreur suivant:

sudo service apache2 restart
Mark N Hopgood
la source
2
C'est la réponse correcte de Debian. J'ai essayé /etc/apache2/conf-available/fqdn.conf, ou servername.confou httpd.confen vain. Debian Jessieetapache 2.4.10
Dr Beco le
2
Si vous avez conf-available/et conf-enabled/, créez un fichier conf-available/et utilisez la commande a2enconfpour l'activer. De cette façon, dpkg ne vous importunera pas à propos des modifications non suivies lorsque / si le apache2-commonpaquet se met à jourapache2.conf
Kevin
Le fichier conf-availableaprès cela et une édition peuvent être /etc/apache2/conf-available/servername.confavec du contenu ServerName myserver.mydomain.com(essayé sur Raspberry Pi, Apache 2.4.10, Debian 8 (Jessie), noyau Linux 4.4.34).
Peter Mortensen
@PeterMortensen pourriez-vous utiliser l'exemple partagé pour que je puisse comprendre ce que vous voulez dire.
Shirish
Le fichier n'existe pas
Black
5

Vous devez définir la directive ServerName :

ServerName localhost

Dans Debian, vous pouvez le définir /etc/apache2/conf.d/httpd.conf.

Sur macOS, vous pouvez le configurer /private/etc/apache2/httpd.conf.

cuonglm
la source
5
Dans Ubuntu, définissez-le dans /etc/apache2/apache2.conf
macki
1
Debian soit: apache2.conf.
Dr Beco
1
Pour quelles versions d'Apache / Debian cela fonctionne-t-il? Je ne pense pas que cela fonctionne pour Apache 2.4. Cela pourrait être à la /etc/apache2/apache2.confplace.
Peter Mortensen
ça marche, Apache 2.4 sur Debian 8
erajuan le
2

Pour localiser votre fichier de configuration Apache, essayez d’exécuter la commande suivante:

apachectl -t -D DUMP_INCLUDES

Ensuite, éditez ce fichier et localisez-le avec les lignes ServerNameet décommentez-le.

ServerName localhost
Kenorb
la source
0

Dans le fichier de configuration apache24, vous verrez la ligne ServerName:80:

  1. Laissez le champ vide.
  2. Puis sous cette ligne dans l'espace vide, écrivez:
    ServerName www.name (of your official domain or website.com:80)
  3. Enregistrez le fichier de configuration.
  4. Allez à cmd, ouvrez-le en tant que changement d’administrateur dirà l’endroit où est apache24
  5. Ensuite , cd apache24puis cd binensuite httpd.exe

Vous verrez que le problème est résolu.

Rachel Horsham
la source