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?

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.


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


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


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”


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