Zainstalowałem apache2 na Ubuntu 13.10. Jeśli spróbuję uruchomić go ponownie za pomocą
sudo /etc/init.d/apache2 restart
Dostaję tę wiadomość:
AH00558: apache2: Nie można wiarygodnie określić w pełni kwalifikowanej nazwy domeny serwera, używając 127.0.1.1. Ustaw globalnie dyrektywę „ServerName”, aby ukryć ten komunikat
Czytam więc, że powinienem edytować mój httpd.conf
plik. Ale ponieważ nie mogę go znaleźć w /etc/apache2/
folderze, próbowałem go zlokalizować za pomocą tego polecenia:
/usr/sbin/apache2 -V
Ale wynik jest następujący:
[Fri Nov 29 17:35:43.942472 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Fri Nov 29 17:35:43.942560 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Fri Nov 29 17:35:43.942602 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Fri Nov 29 17:35:43.942613 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Fri Nov 29 17:35:43.942627 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.947913 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948051 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948075 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}
Wiersz 74 /etc/apache2/apache2.conf
to:
Mutex file:${APACHE_LOCK_DIR} default
Rzuciłem okiem na mój /etc/apache2/envvar
plik, ale nie wiem, co z nim zrobić.
Co powinienem zrobić?
apache-2.2
ubuntu
Kurt Bourbaki
źródło
źródło
Odpowiedzi:
Ten komunikat jest wyświetlany, ponieważ bezpośrednio wykonałeś plik binarny apache2. W Ubuntu / Debian konfiguracja apache opiera się na pliku envvar, który jest tylko aktywowany.
Jeśli uruchomisz apache ze skryptu init lub apachectl.
Pierwotny problem polega na tym, że nie masz prawidłowej nazwy hosta (fqdn) dla swojego komputera.
Jeśli nie możesz tego zmienić, zmień
ServerName
zmienną/etc/apache2/apache2.conf
nalocalhost
lub preferowaną nazwę FQDN.źródło
ServerName localhost
sięapache2.conf
(bohttpd.conf
nie zawsze jest stosowana na Ubuntu) i teraz wszystko działa tak jak powinno. Czy możesz dodać szczegóły do swoich odpowiedzi, abym mógł oflagować je jako zaakceptowane?apache2ctl
nie działało dla mnie, musiałem skorzystać z usługi :sudo service apache2 restart
apache2
przede wszystkim złamali polecenie?AH00558: apache2: Could not reliably determine the server's fully qualified domain name
ale nie rozwiązujeConfig variable ${APACHE_LOCK_DIR} is not defined
.Źródło envvars, uruchamiając go w następujący sposób:
i wtedy
Powinieneś wziąć:
źródło
/etc/apache2/envvars
nie istniejeapachectl -V
zamiast ręcznie ładować zmienne środowiskowe.source /etc/apache2/envvars && sudo -E apache2 -V
zalogować się jakoroot
i wykonaj powyższą odpowiedź. Pozyskanie apache2 env do zwykłego użytkownika, który następnie musi użyć sudo, nie będzie działać bez „-E”. Zwykłe uprawnienia użytkownika nie mogą odczytać prywatnego folderu certyfikatu wśród innych problemów. Otrzymasz błąd. Musisz sudo -E lub całkowicie uruchomić konto root.CMD . /etc/apache2/envvars; /usr/sbin/apache2 -DFOREGROUND
Sprawdź swój
/etc/apache2/envvars
APACHE_LOCK_DIR. W moim Ubuntu 12.04 oznacza to/var/lock/apache2$SUFFIX
, że SUFFIX zwykle jest pusty.Sprawdź, czy katalog istnieje i czy można go zapisać.
Czy to możliwe, że plik envvars nie jest poprawnie pozyskiwany? Jeśli spojrzysz na
/etc/init.d/apache2
to, zobaczysz, że pochodzą.Mój (domyślnie)
/etc/apache2/envvars
:Jeśli nic nie działa, spróbuję ponownie zainstalować pakiety.
źródło
Jak inni powiedzieli, musisz załadować (źródło) swoje środowisko przed bezpośrednim uruchomieniem. Inną opcją jest użycie:
apache2ctl
npsudo apache2ctl -S
zrzucić moich gospodarzy
źródło
TL; DR; Powinieneś uruchomić apache2 używając tego, co już masz:
Szczegółowe:
Ten komunikat oznacza, że musisz zdefiniować nazwę serwera / nazwę domeny. Nie jest to konieczne dla lokalnego hosta / testowania produkcji, nie musisz się tym martwić.
Gdy spróbujesz uruchomić go w inny sposób, używając tylko
apache2
, otrzymasz te komunikaty o błędach z powodu tego, co zostało powiedziane wcześniej: zmienne środowiskowe są definiowane, gdy zaczynasz używać domyślnego skryptu winit.d
.źródło
Może to rozwiąże problem
źródło
Musisz zaktualizować DocumentRoot z
/var/www/html
do/var/www
Zmodyfikuj plik /etc/apache2/sites-available/000-default.conf w następujący sposób
źródło
To działa dla mnie
źródło