Objawy i rozwiązanie
Na wielu stronach internetowych lub forach Q&A ludzie mylą objawy i rzeczywiste przyczyny. Właśnie zaktualizowałem serwer Ubuntu z 13.10 do 14.04.1 i napotkałem dokładnie te same objawy opisane przez OP, w tym:
1- apache najwyraźniej nie działa. Zmienna konfiguracji 2- apache niezdefiniowana. 3 - błąd składniowy wymieniony przez PO.
Problem polega na tym, że nie wszystkie z tych symptomów są rzeczywiście związane z rzeczywistym problemem i służą jedynie jako odwrócenie uwagi od tych, którzy starają się jak najlepiej pomóc.
Różne problemy z rootowaniem mogą powodować, że administratorzy odwiedzają takie witryny z mniej więcej tym samym opisem: „Uaktualniłem system operacyjny, a teraz apache nie działa ...”
Jedna konkretna przyczyna
Mając wszystkie dokładnie takie same objawy, jak PO, pociągało mnie to pytanie. Niestety jedyną odpowiedzią, która zawierała prawidłową wskazówkę dotyczącą prawdziwej głównej przyczyny mojego problemu, była zanegowana (-1), opublikowana przez user1469291 z powtórzeniem 1 !! Przeszukałem więc inne strony internetowe, dopóki nie znalazłem jasnego wyjaśnienia problemu (a tym samym rozwiązania).
Poniższe rozwiązanie może nie rozwiązać prawdziwego problemu PO, ale jestem pewien, że pomoże innym, którzy mogą zainteresować się tym pytaniem z tych samych powodów, co ja.
/etc/apache2/apache2.conf zawiera:
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
co oznacza, że zostaną załadowane tylko pliki konfiguracji witryny w / etc / apache2 / sites-enabled / ending .conf. Starsze dowiązanie symboliczne w tym katalogu zostanie zignorowane.
Kiedyś był po prostu obsługiwany przez strony / *. Dlatego wszystkie moje pliki konfiguracji wirtualnego hosta, które po prostu nazwałem ww1.example.com, ww2.example.com itp., Działały, ale nagle i początkowo w niewytłumaczalny sposób przestały działać po aktualizacji.
Więc zmień powyższą dyrektywę i ponownie załaduj apache lub, tak jak ja, ręcznie usuń wszystkie starsze dowiązania symboliczne w witrynach z włączoną funkcją /, zmień nazwę wszystkich plików w witrynach dostępnych /, aby dodać przyrostek .conf, a następnie ponownie włącz każdy z nich strona indywidualnie.
Ponadto domyślne dyrektywy w apache.conf są bardziej rygorystyczne:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all deny
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Jeśli więc hostujesz swoje wirtualne witryny w / home / user / gdzieś, pamiętaj, aby odpowiednio zastąpić dyrektywę.