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, configtest
aby 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/hosts
plik:
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 debian mini
Widzę też pusty /etc/hosts.conf
plik. Być może /etc/hosts
należy skopiować dane, aby /etc/hosts.conf
serwer 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 warn
na 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.
źródło
/etc/apache2/conf-available/fqdn.conf
, lubservername.conf
czyhttpd.conf
bezskutecznie. DebianJessie
iapache 2.4.10
conf-available/
iconf-enabled/
, utwórz plikconf-available/
i użyj polecenia,a2enconf
aby go włączyć. W ten sposób dpkg nie będzie Cię drażnić z powodu nieśledzonych zmian, gdy / jeśliapache2-common
pakiet zostanie zaktualizowanyapache2.conf
conf-available
po tym i edycja może być/etc/apache2/conf-available/servername.conf
z zawartościąServerName myserver.mydomain.com
(wypróbowana na Raspberry Pi, Apache 2.4.10, Debian 8 (Jessie), jądro Linuksa 4.4.34).Musisz ustawić dyrektywę ServerName :
W Debianie możesz to ustawić
/etc/apache2/conf.d/httpd.conf
.W systemie macOS możesz to ustawić
/private/etc/apache2/httpd.conf
.źródło
apache2.conf
./etc/apache2/apache2.conf
zamiast tego.Aby zlokalizować plik konfiguracyjny Apache, spróbuj uruchomić następujące polecenie:
Następnie edytuj ten plik i zlokalizuj linię
ServerName
i odkomentuj go, aby wyglądał następująco:źródło
W pliku konfiguracyjnym apache24 zobaczysz wiersz
ServerName:80
:ServerName www.name (of your official domain or website.com:80)
cmd
, otwórz go jako zmiana administratoradir
w miejscu, w którym znajduje się apache24cd apache24
następniecd bin
następnie httpd.exeZobaczysz, że problem został rozwiązany.
źródło