Gdzie w Apache 2 ustawiasz globalnie dyrektywę ServerName?


37

UWAGA: Jest to związane z moim pytaniem: „ Apache 2.4 nie chce się ponownie załadować, czy jest jakiś problem z moją konfiguracją? ”.

Próbuję przetestować lokalną witrynę, lokalnie. Jak rozumiem, Apache 2 (a może także Apache) ma coś o nazwie VirtualHost. Trochę zrozumienia mówi mi, że wirtualny hosting to sposób, w jaki jeden serwer / adres IP może obsługiwać wiele domen.

W każdym razie pojawia się następujący błąd podczas uruchamiania Apache 2, configtestaby zobaczyć, gdzie zawiodłem. Korzystam z Apache 2.4.10-1 i wydaje się, że między Apache 2.2 a Apache 2.4 zaszło wiele zmian, o których nie wiem.

$ 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

To jest /etc/hostsplik:

 $ cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    debian mini

Widzę też pusty /etc/hosts.confplik. Być może /etc/hostsnależy skopiować dane, aby /etc/hosts.confserwer mógł je rozpoznać?

Moja nazwa hosta:

$ hostname
debian

To jest plik konfiguracyjny strony:

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

Czytałem również o wiązaniu adresów i portów , ale nie zrozumiałem tego dobrze z wielu powodów. Nie podaje / nie udostępnia przykładu, w którym pliku należy wstawić te wiersze i co nastąpi przed i po. Przykład byłby znacznie lepszy.

Zrobiłem to i zrestartowałem serwer, ale nadal pojawia się ten sam błąd.

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

Wygląda na to, że w Debianie są trzy pliki konfiguracyjne, które muszę znać i rozumieć.

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

i

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

Najwyraźniej apache2.conf JEST globalnym plikiem konfiguracyjnym, podczas gdy httpd.conf jest plikiem konfiguracyjnym użytkownika. Istnieje również ports.conf. Zarówno apache2.conf, jak i ports.conf mają wartości domyślne, z wyjątkiem tego, że zmieniłem loglevel Apache z warnna debug.

Próbowałem jeszcze jednej rzeczy:

$ 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

Może ktoś ma więcej wglądu.

Odpowiedzi:


43

Plik do edycji:

/etc/apache2/apache2.conf

Polecenie edycji pliku:

sudo nano /etc/apache2/apache2.conf

W przypadku globalnej nazwy serwera możesz umieścić ją na górze pliku (poza znacznikami wirtualnego hosta).

Pierwsza linia wygląda następująco:

ServerName myserver.mydomain.com

Następnie zapisz i przetestuj konfigurację za pomocą następującego polecenia:

apachectl configtest

Powinieneś wziąć:

Składnia OK

Następnie możesz zrestartować serwer i sprawdzić, czy nie pojawia się komunikat o błędzie:

sudo service apache2 restart

2
To jest poprawna odpowiedź Debiana. Próbowałem /etc/apache2/conf-available/fqdn.conf, lub servername.confczy httpd.confbezskutecznie. Debian Jessieiapache 2.4.10
Dr Beco

2
Jeśli masz conf-available/i conf-enabled/, utwórz plik conf-available/i użyj polecenia, a2enconfaby go włączyć. W ten sposób dpkg nie będzie Cię drażnić z powodu nieśledzonych zmian, gdy / jeśli apache2-commonpakiet zostanie zaktualizowanyapache2.conf
Kevin

Plik conf-availablepo tym i edycja może być /etc/apache2/conf-available/servername.confz zawartością ServerName myserver.mydomain.com(wypróbowana na Raspberry Pi, Apache 2.4.10, Debian 8 (Jessie), jądro Linuksa 4.4.34).
Peter Mortensen

@PeterMortensen czy możesz skorzystać z udostępnionego przykładu, aby zrozumieć, co masz na myśli.
shirish

Plik nie istnieje
Czarny

5

Musisz ustawić dyrektywę ServerName :

ServerName localhost

W Debianie możesz to ustawić /etc/apache2/conf.d/httpd.conf.

W systemie macOS możesz to ustawić /private/etc/apache2/httpd.conf.


5
W Ubuntu ustaw go w
/etc/apache2/apache2.conf

1
Debian albo: apache2.conf.
Dr Beco

1
Dla jakich wersji Apache / Debian to działa? Nie sądzę, żeby to działało w Apache 2.4. Może być /etc/apache2/apache2.confzamiast tego.
Peter Mortensen

to działa, Apache 2.4 na Debianie 8
erajuan

2

Aby zlokalizować plik konfiguracyjny Apache, spróbuj uruchomić następujące polecenie:

apachectl -t -D DUMP_INCLUDES

Następnie edytuj ten plik i zlokalizuj linię ServerNamei odkomentuj go, aby wyglądał następująco:

ServerName localhost

0

W pliku konfiguracyjnym apache24 zobaczysz wiersz ServerName:80:

  1. Zostaw puste.
  2. Następnie poniżej tego wiersza w pustym miejscu napisz:
    ServerName www.name (of your official domain or website.com:80)
  3. Zapisz plik konfiguracyjny.
  4. Idź do cmd, otwórz go jako zmiana administratora dirw miejscu, w którym znajduje się apache24
  5. Następnie cd apache24następnie cd binnastępnie httpd.exe

Zobaczysz, że problem został rozwiązany.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.