Ubuntu Apache2 DefaultRuntimeDir musi być poprawnym katalogiem, bezwzględnym lub względnym względem ServerRoot

17

Mam serwer WWW z systemem Ubuntu 17.04, który próbuję skonfigurować Apache. Wszystko działało świetnie, dopóki nie zdecydowałem się hostować dwóch stron internetowych na jednej maszynie za pośrednictwem virtualHosts. Teraz apacheodmawia uruchomienia nawet z włączonym jednym hostem. Przy każdej próbie uruchomienia Apachepojawia się ten błąd:

apache2: Syntax error on line 80 of /etc/apache2/apache2.conf:
DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot.

Żadna z moich prób rozwiązania tego problemu nie dotyczyła niczego, w tym:

apt purge apache2 && rm -r /etc/apache2 

Cały wiersz 80 komunikatu o błędzie mówi mi, że jest DefaultRuntimeDir ${APACHE_RUN_DIR}.

I nigdy nie widzę, gdzie i co APACHE_RUN_DIRjest zadeklarowane.

Czy ktoś może mi pomóc?

timhyd
źródło

Odpowiedzi:

17

Komenda

source /etc/apache2/envvars

rozwiązałem mój problem (po wypróbowaniu WSZYSTKICH innych).

Aby sprawdzić, czy wszystko jest w porządku, użyj polecenia

apache2 -S

Odkryłem, że było to szybsze niż używanie moich rekordów DNS.

Ianm
źródło
1
Skorzystałem z, source /etc/apache2/envvarsale potem mój katalog domowy zmienił się z ~na homei kiedy napisałem cd, to pokazało się -bash: cd: HOME not set. Kiedy wszedłem do envvars, jedną z pierwszych linii jest # this won't be correct after changing uidi unset HOME. Jakiś pomysł jak to naprawić?
Mihail Minkov
7

Brakuje aktualizacji w „man apache2”, przynajmniej dla opcji -V;

Dzisiaj należy używać „apachectl” lub „apache2ctl” zamiast

„apache2” dla co najmniej niektórych opcji, jak podano w

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879571

Rocdufer
źródło
W ogóle nie jest jasne, jak to odpowiada na pytanie.
Randy Cragun,
6

Apache2 używa /etc/apache2/envvarsdo ustawiania zmiennych środowiskowych. Możesz użyć tych informacji, aby upewnić się, że katalog ${APACHE_RUN_DIR}wskazuje na prawidłowy.

Ten sam problem występował podczas aktualizacji z 14.04 do 17.04. Problem polegał na: ${APACHE_RUN_DIR}ustawiono na /var/run/apache2, ale brakowało folderu apache2 /var/run.

Naprawiono dla mnie: mkdir /var/run/apache2

Niyol
źródło
7
nawet jeśli folder został utworzony lub folder jest już przedstawiony (jak w mojej sytuacji), musisz uruchomić następujące polecenie. source /etc/apache2/envvars
Peshmerge
wystarczy uruchomić komendę envvares, jeśli uruchamiasz Apache bez skryptu startowego, jeśli używasz init.d / system.d, plik zostanie pobrany automatycznie.
Niyol,
@Peshmerge THanks! czy możesz mi powiedzieć, jak go zachować po ponownym uruchomieniu? wydaje się, że po ponownym uruchomieniu musimy ręcznie wykonać to polecenie za każdym razem
T.Todua,
1

w moim przypadku chodziło o wiersz „Wymagaj wszystkich odrzuconych” w pliku apache2.conf, który (ponownie) w moim przypadku został wpisany jako „Wymagaj odrzucenia”

Гдето Якутский
źródło
0

php5.6Moduł Apen Reenebling pomaga rozwiązać ten problem.

Naciśnij Ctrl+ Alt+ Ti wpisz te:

sudo a2dismod php5.6
sudo a2enmod php5.6

Następnie uruchom ponownie usługę Apache2:

sudo service apache2 restart
Vladimir Ch
źródło