Po aktualizacji z serwera Ubuntu 13.04 strony www nie będą się wyświetlać.
Błąd 403 Zabronione Nie masz uprawnień dostępu / na tym serwerze.
Zmieniłem zapisy kontroli dostępu z apache2.2 na apache2.4, ale to nie działało. Co jeszcze mogłem zrobić?
Po aktualizacji z serwera Ubuntu 13.04 strony www nie będą się wyświetlać.
Błąd 403 Zabronione Nie masz uprawnień dostępu / na tym serwerze.
Zmieniłem zapisy kontroli dostępu z apache2.2 na apache2.4, ale to nie działało. Co jeszcze mogłem zrobić?
Odpowiedzi:
Stało się to, że zmieniła się składnia plików konfiguracyjnych w apache2.4.
Źródło: To samo przytrafiło mi się po aktualizacji do 13.10
Wszystkie istniejące pliki /etc/apache2/conf.dpowinny zostać przeniesione do /etc/apache2/conf-available.
Teraz działają w ten sam sposób sitesi modsdziałają. Po prostu umieść pliki conf w conf-availablefolderze i włącz ten, który chcesz a2enconf <config-file-name>.
Miałem plik, conf.d/httpd.confktóry miał dyrektywę ServerName.
Aby to zadziałało, musiałem przenieść go do conf-availablekatalogu i włączyć ręcznie.
sudo mv /etc/apache2/conf.d/httpd.conf /etc/apache2/conf-available/httpd.conf
sudo a2enconf httpd
Wcześniej pliki /etc/apache2/sites-availablenie miały rozszerzenia. Na przykład /etc/apache2/sites-available/default. Teraz .confwymagane jest rozszerzenie.
Jeśli tak /etc/apache2/sites-available/some-site, w 13.04 możesz po prostu włączyć to za pomocą sudo a2ensite some-site. Teraz pojawi się komunikat o błędzie
BŁĄD: strona jakaś strona nie istnieje!
Aby to naprawić, dodaj a .confdo wszystkich plików konfiguracyjnych w sites-available. Możesz zrobić to samo w sites-enabledlub możesz usunąć wszystkie pliki i ponownie włączyć je ręcznie.
Zalecam wykonywanie ich ręcznie, ponieważ prawdopodobnie musisz naprawić każdy VHost (następny krok).
sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \;
jeśli zdecydowałeś się zrobić to ręcznie:
sudo rm /etc/apache2/sites-enabled/*
sudo a2ensite your-site-name
Jeśli masz następujące rzeczy:
<Directory /path/to/your/site/>
order allow,deny
allow from all
</Directory>
Powinien stać się:
<Directory /path/to/your/site/>
Require all granted
</Directory>
Aby uzyskać więcej informacji, sprawdź na komentarzach przez DaveRandom na zasadzie odpowiedzi na przepełnienie stosu.
Mówiąc najprościej, jeśli uaktualniłeś do apache2.4 i zachowałeś starą httpd.confwersję apache2.2, dyrektywa zezwalająca powinna nadal działać poprawnie. Jeśli zaktualizowałeś swój httpd.conf(co sugerowałbym), otrzymasz 403 błędów, dopóki nie zmienisz dyrektyw Order/ Allow/ Denyna ich odpowiedniki Require.
Jeśli miał opcje Directory pamiętać, że wszystkie one muszą być poprzedzany z +lub -czy żaden z nich w ogóle. Połączenie obu nie jest dozwolone:
Jest to dozwolone:
<Directory /path/to/your/site/>
Options +Indexes +FollowSymLinks -MultiViews
</Directory>
Tak też jest (zauważ, że oba te przykłady nie robią tego samego, poprzedni wyłącza MultiViewsopcję, następny nie):
<Directory /path/to/your/site/>
Options Indexes FollowSymLinks MultiViews
</Directory>
To nie jest już dozwolone:
<Directory /path/to/your/site/>
Options Indexes FollowSymLinks -MultiViews
</Directory>
Ostatnia opcja konfiguracji wyrzuci błąd składniowy, mówiąc:
Albo wszystkie opcje muszą zaczynać się od + lub -, albo żadna opcja nie może.
Gdy wszystko zostanie zrobione, musisz ponownie uruchomić serwer Apache, aby zmiany odniosły skutek:
sudo apache2ctl restart
Szczegółową instrukcję aktualizacji z wersji 2.2 do 2.4 można znaleźć w oficjalnej dokumentacji.
httpd.confbył tylko przykład. Możliwe, że nie będziesz mieć żadnych plików konfiguracyjnych w conf.dkatalogu, w takim przypadku po prostu pomiń ten krok. Co do tego apache2.conf, nie należy go przenosić do conf-availablekatalogu. Jest to główny plik konfiguracyjny apache, a jego ścieżka powinna być /etc/apache2/apache2.conf i nie można go zmieniać.
config.dlub sites availablefolder. zobacz wszystkie pliki konfiguracyjne tutaj: imgur.com/WczXp3v
Zakładam, że strony internetowe działają na twoim serwerze Ubuntu.
Sprawdź httpd.conf, aby upewnić się, że ustawienie DocumentRoot wskazuje właściwe miejsce.
Sprawdź, czy uprawnienia do pliku w folderze, do którego odwołuje się DocumentRoot, może odczytać użytkownik, na którym działa serwer WWW.
Sprawdź, czy masz odpowiedni plik index.html / index.htm itp. I czy serwer sieciowy nie próbuje zrobić listy katalogów.
Miałem podobne problemy.
Nie mogłem uruchomić apache 2.4, chyba że użyłem „Allow from All”, było to denerwujące, ponieważ chciałem zapewnić czystą przerwę od wersji <2.4. Po wielu próbach i błędach oraz wielu poszukiwaniach zauważyłem odniesienie do access_compat i zdałem sobie sprawę, że jest to tylko dla kompatybilności. Chociaż dokumentacja apache mówi, że można używać obu, zaleca się, aby nie używać.
Usunąłem ten moduł z pliku ładowania / etc / sysconfig / apache2, co natychmiast rozwiązało mój problem.
Pozdrawiam Liam
httpd.confpliku aniconf.dkatalogu. Ale jestapache2.confplik. Próbowałem przenieść go doconf-availablekatalogu i po ponownym uruchomieniu apache2 wystąpił następujący błąd: apache2: Nie można otworzyć pliku konfiguracyjnego /etc/apache2/apache2.conf: Brak takiego pliku lub katalogu - Co może być przyczyną?