Как да коригирам грешки в Apache mod_authz_host в Linux



Опитайте Нашия Инструмент За Премахване На Проблемите

Когато инсталирате услугата apache2 на Red Hat Enterprise Linux, Arch, Scientific Linux, Debian Server, Ubuntu Server или която и да е друга дистрибуция, която я поддържа, може да откриете, че получавате грешка относно модула mod_authz_host, който предотвратява изпълнението на услугата . Вероятно ще откриете, че тази грешка е проблем всеки път, когато рестартирате услугата apache2. Тази грешка обикновено идва под формата на предупреждение за синтаксис за първия ред на файл, но теоретично бихте могли да получите различна грешка.



Независимо с кой ред може да имате проблеми, корекцията няма много общо с това, че mod_authz_host не е инсталиран или дори е зареден в RAM. Всъщност, ако получавате тази грешка, това означава, че услугата на сървъра apache2 правилно зарежда модул. Проблемът е просто свързан с факта, че дадена директива някъде не е на мястото си и пренареждането на кода трябва да реши проблема ви доста бързо. Моля, обърнете внимание, че от време на време ще виждате инструкции за инсталиране на mod_authz_host в apache2, което не е от значение за тази дискусия. Грешките ви не произтичат от липса на конкретен пакет, нито от някаква неизпълнена зависимост. Начинът, по който разработчиците са избрали да формулират тези грешки, водят до тези често срещани заблуди.



Коригиране на директивите на модула restrict.conf

За целите на дискусията ще използваме енциклопедията за разпространение на Linux на адрес distrowatch.com за нашите примери. Официалната документация на apache2 използва dev.example.com като пример и във всеки случай няма да искате да използвате нито един от тези адреси.



Отвори файл с текстов редактор. Тъй като това е в защитена директория, ще трябва да имате root достъп. Използвахме , но можете също да използвате vi или друг текстов редактор, който предпочитате. Дори не е задължително да използвате конзолен редактор, но не забравяйте да използвате gksu вместо sudo, ако е подходящо, за да го направите.

След като заредите файла, обърнете голямо внимание на нещо, което се чете, например:



Поръчка отказана, разрешена

Отричане от всички

Позволете от distrowatch.com

Този текст трябва да съществува само в блокове. Обърнете внимание на интервала в първия таг. Ако имате този ред текст, плаващ около някакви блокове, или добавете тагове около него, или го преместете, така че да се чете като такъв:

Поръчка отказана, разрешена

Отричане от всички

Позволете от distrowatch.com

Не забравяйте, че ще трябва да замените distrowatch.com с действителния URL адрес, с който работите. Ако намерите някакви редове, които се отнасят директно към dev.example.com, значи сте ги копирали директно от примерния код или са добавени по подразбиране. Домейнът example.com съществува само за илюстрация в технически документи и няма реална цел. Официалната документация на httpd.apache.org/docs/2.2/howto/access.html наистина ги препраща. Вероятно можете безопасно да ги премахнете, когато добавяте новия текст в.

Ако някога се наложи да включите директория във вашия файл restrict.conf, можете да замените тагове с тагове, но трябва да се уверите, че ще запазите пространството в първия етикет още веднъж. Не забравяйте да запазите документа и след това да го затворите, преди да рестартирате услугата apache2. От тук нататък не би трябвало да имате повече проблеми.

Ето какво означава сървърът на apache, когато връща грешка като:

Действителната грешка би имала номер на ред вместо октоторпа, но показва, че директивите не са безопасно затворени вътре в споменатите тагове. Може да пожелаете да отидете директно до реда, даден в грешката, когато отстранявате грешки в скрипта, за да проверите какво не е наред с него. Въпреки че въпросната грешка ще ви подскаже, че дневникът за грешки на Apache може да има повече информация, той вероятно просто ще подсили същите концепции, разгледани тук.

Бъдещите синтаксични грешки могат да бъдат коригирани по подобен начин. Може да откриете, че след поправянето на тази, услугата apache2 изплюва друга грешка. Това е нормално, колкото и странно да звучи, защото изпълнява код само до първия ред, с който открие проблем. Ако имаше проблеми по-надолу по линията, то никога нямаше да стигне до тях. Ако имате такива проблеми, обърнете специално внимание на номера на реда, когато редактирате файл. Ако използвате nano за редактиране на файла, тогава винаги можете да задържите клавиша Ctrl и да натиснете клавиша C, за да намерите на кой ред е в момента курсорът ви. Това ще направи процеса на отстраняване на грешки много по-гладко.

Може да откриете, че имате множество блокове, които се носят по такъв начин, че не са прикрепени към нищо. Всеки от тях трябва да има етикети върху тях. Премахнете излишните блокове по всяко време, когато установите, че имате множество копия на един и същ URL адрес с едни и същи директиви, тъй като тези дубликати потенциално могат да създадат проблеми. Обикновено е необходимо да имате само едно копие на конкретен URL адрес, тъй като не трябва да предавате допълнителни директиви за един на сървъра на apache2, тъй като те в крайна сметка могат да се противопоставят.

3 минути четене