Jak naprawić błędy mod_authz_host Apache w systemie Linux



Wypróbuj Nasz Instrument Do Eliminowania Problemów

Podczas instalowania usługi apache2 na Red Hat Enterprise Linux, Arch, Scientific Linux, Debian Server, Ubuntu Server lub dowolnej innej dystrybucji, która ją obsługuje, może się okazać, że pojawi się błąd dotyczący modułu mod_authz_host, który uniemożliwia wykonanie usługi . Prawdopodobnie zauważysz ten błąd jako problem za każdym razem, gdy ponownie uruchomisz usługę Apache2. Ten błąd zwykle ma postać ostrzeżenia składniowego dotyczącego pierwszego wiersza pliku plik, ale teoretycznie możesz uzyskać inny błąd.



Bez względu na to, z którą linią możesz mieć problemy, poprawka ma niewiele wspólnego z mod_authz_host, który nie jest instalowany lub nawet ładowany do pamięci RAM. W rzeczywistości, jeśli otrzymujesz ten błąd, oznacza to, że usługa serwera Apache2 poprawnie ładuje plik moduł. Problem polega po prostu na tym, że dyrektywa jest gdzieś nie na miejscu, a zmiana układu kodu powinna dość szybko rozwiązać problem. Zwróć uwagę, że od czasu do czasu zobaczysz instrukcje instalacji mod_authz_host w apache2, co nie ma znaczenia w tej dyskusji. Twoje błędy nie pochodzą z braku konkretnego pakietu ani z jakiejś niespełnionej zależności. Sposób, w jaki twórcy wybrali sformułowanie tych błędów, prowadzi do tych powszechnych nieporozumień.



Poprawianie dyrektyw modułu ogranicz.conf

W celu omówienia skorzystamy z encyklopedii dystrybucji Linuksa pod adresem distrowatch.com dla naszych przykładów. Oficjalna dokumentacja apache2 używa jako przykładu dev.example.com, a w każdym razie nie będziesz chciał używać żadnego z tych adresów.



Otworzyć plik za pomocą edytora tekstu. Ponieważ jest to katalog chroniony, musisz mieć uprawnienia administratora. Użyliśmy , ale możesz też użyć vi lub innego preferowanego edytora tekstu. Nie musisz nawet koniecznie używać edytora konsoli, ale w razie potrzeby upewnij się, że używasz gksu zamiast sudo.

Po załadowaniu pliku zwróć szczególną uwagę na coś, co brzmi, na przykład:



Rozkaz odmów, pozwól

Odmowa od wszystkich

Zezwalaj z distrowatch.com

Ten tekst powinien istnieć tylko wewnątrz Bloki. Zwróć uwagę na spację w pierwszym tagu. Jeśli masz ten wiersz tekstu unoszący się poza jakimikolwiek blokami, dodaj tagi dookoła niego lub przesuń go, aby brzmiał tak:

Rozkaz odmów, pozwól

Odmowa od wszystkich

Zezwalaj z distrowatch.com

Pamiętaj, że musisz zastąpić distrowatch.com rzeczywistym adresem URL, z którym pracujesz. Jeśli znajdziesz jakieś wiersze bezpośrednio odwołujące się do dev.example.com, albo skopiowałeś je bezpośrednio z przykładowego kodu, albo zostały dodane domyślnie. Domena example.com istnieje jedynie w celach ilustracyjnych w dokumentach technicznych i nie służy żadnemu faktycznemu celowi. Oficjalna dokumentacja na httpd.apache.org/docs/2.2/howto/access.html rzeczywiście zawiera odniesienia do nich. Prawdopodobnie możesz je bezpiecznie usunąć, dodając nowy tekst w.

Jeśli kiedykolwiek zajdzie potrzeba dołączenia katalogu do pliku limited.conf, możesz go zastąpić tagi z tagów, ale musisz jeszcze raz zachować odstęp w pierwszym znaczniku. Pamiętaj, aby zapisać dokument, a następnie zamknąć go przed ponownym uruchomieniem usługi Apache2. Od teraz nie powinno być żadnych dalszych problemów.

To właśnie oznacza serwer Apache, gdy zwraca błąd podobny do:

Rzeczywisty błąd miałby numer wiersza zamiast oktotorpy, ale oznacza to, że dyrektywy nie są bezpiecznie zawarte w tych tagach. Podczas debugowania skryptu możesz przejść bezpośrednio do wiersza podanego w błędzie, aby sprawdzić, co jest z nim nie tak. Chociaż omawiany błąd powie ci, że dziennik błędów Apache może zawierać więcej informacji, prawdopodobnie tylko wzmocni te same koncepcje omówione tutaj.

W podobny sposób można poprawić przyszłe błędy składniowe. Może się okazać, że po naprawieniu tego, usługa apache2 wypluwa kolejny błąd. Jest to normalne, choć może to zabrzmieć dziwnie, ponieważ wykonuje kod tylko do pierwszej linii, z którą napotka problem. Gdyby były problemy w dalszej kolejności, to nigdy by do nich nie dotarły. Jeśli masz takie problemy, zwróć szczególną uwagę na numer wiersza podczas edycji pliku plik. Jeśli używasz nano do edycji pliku, zawsze możesz przytrzymać klawisz Ctrl i nacisnąć klawisz C, aby sprawdzić, w której linii znajduje się kursor. Dzięki temu proces debugowania będzie przebiegał znacznie płynniej.

Może się okazać, że masz wiele bloków unoszących się wokół w taki sposób, które nie są do niczego przyczepione. Każdy z nich musi mieć na sobie tagi. Usuń dodatkowe bloki za każdym razem, gdy stwierdzisz, że masz wiele kopii tego samego adresu URL z tymi samymi dokładnymi dyrektywami, ponieważ te duplikaty mogą potencjalnie powodować problemy. Zwykle wystarczy mieć tylko jedną kopię dowolnego określonego adresu URL, ponieważ nie należy przekazywać dodatkowych dyrektyw dotyczących jednej z nich do serwera apache2, ponieważ mogą one ostatecznie się zrównoważyć.

3 minuty czytania