Cum se remediază erorile mod_authz_host Apache în Linux



Încercați Instrumentul Nostru Pentru Eliminarea Problemelor

Când instalați serviciul apache2 pe Red Hat Enterprise Linux, Arch, Scientific Linux, Debian Server, Ubuntu Server sau oricare dintre celelalte distribuții care îl acceptă, s-ar putea să constatați că primiți o eroare despre modulul mod_authz_host care împiedică executarea serviciului . Probabil că veți găsi această eroare ca fiind o problemă de fiecare dată când reporniți serviciul apache2. Această eroare apare de obicei sub forma unui avertisment de sintaxă despre prima linie a fișier, dar teoretic ați putea obține o eroare diferită.

Indiferent de linia cu care ați putea avea probleme, soluția nu are prea mult de-a face cu mod_authz_host care nu este instalat sau chiar încărcat în RAM. De fapt, dacă primiți această eroare, înseamnă că serviciul serverului apache2 încarcă corect fișierul modul. Problema are doar de a face cu faptul că o directivă este deplasată undeva, iar rearanjarea codului ar trebui să rezolve problema dvs. destul de repede. Vă rugăm să rețineți că veți vedea ocazional instrucțiuni pentru instalarea mod_authz_host în apache2, ceea ce este irelevant pentru această discuție. Erorile dvs. nu provin din lipsa unui anumit pachet și nici nu provin din orice fel de dependență neîndeplinită. Modul în care dezvoltatorii au ales să formuleze aceste erori duc la aceste concepții greșite comune.



Corectarea directivelor privind modulul restrict.conf

Din motive de discuție, vom folosi enciclopedia de distribuție Linux la distrowatch.com pentru exemplele noastre. Documentația oficială apache2 folosește dev.example.com ca exemplu și, în orice caz, nu veți dori să utilizați niciuna dintre aceste adrese.



Deschide fișier cu un editor de text. Deoarece acesta se află într-un director protejat, va trebui să aveți acces root. Noi am folosit , dar puteți utiliza și vi sau un alt editor de text pe care îl preferați. Nici nu trebuie neapărat să utilizați un editor de consolă, dar asigurați-vă că utilizați gksu în loc de sudo, dacă este cazul, pentru a face acest lucru.

După ce ați încărcat fișierul, acordați o atenție deosebită lucrurilor care citesc, de exemplu:



Comanda refuza, permite

Negati de la toti

Permiteți de la distrowatch.com

Acest text ar trebui să existe numai în interiorul blocuri. Rețineți spațiul din prima etichetă. Dacă aveți acea linie de text care pluteste în afara oricăror blocuri, fie adăugați etichete în jurul său, fie mutați-o astfel încât să citească astfel:

Comanda refuza, permite

Negati de la toti

Permiteți de la distrowatch.com

Amintiți-vă că va trebui să înlocuiți distrowatch.com cu adresa URL reală cu care lucrați. Dacă găsiți linii care fac referire direct la dev.example.com, atunci le-ați copiat direct din exemplul de cod sau sunt adăugate în mod implicit. Domeniul example.com există doar pentru ilustrare în documentele tehnice și nu are un scop real. Documentația oficială de la httpd.apache.org/docs/2.2/howto/access.html le face referire într-adevăr. Probabil le puteți elimina în siguranță atunci când adăugați noul text.

Dacă vreodată trebuie să includeți un director în fișierul restrict.conf, atunci îl puteți înlocui etichete cu etichete, dar trebuie să vă asigurați că păstrați încă o dată spațiul din prima etichetă. Asigurați-vă că salvați documentul și apoi îl închideți înainte de a reporni serviciul apache2. Nu ar trebui să mai aveți alte probleme de aici înainte.

Iată ce înseamnă serverul apache când returnează o eroare de genul:

Eroarea reală ar avea un număr de linie în locul octotorpei, dar indică faptul că directivele nu sunt închise în siguranță în interiorul etichetelor menționate. Poate doriți să navigați direct la linia dată în eroare atunci când depanați scriptul pentru a verifica ce nu este în regulă. În timp ce eroarea în cauză vă va spune că jurnalul de erori Apache poate avea mai multe informații, probabil că va întări doar aceleași concepte discutate aici.

Erorile de sintaxă viitoare pot fi corectate în mod similar. S-ar putea să descoperiți că, după ce ați remediat-o, serviciul apache2 scuipă o altă eroare. Acest lucru este normal, oricât de ciudat ar putea suna, deoarece execută cod doar până la prima linie cu care găsește o problemă. Dacă ar exista probleme mai jos, atunci nu le-ar fi ajuns niciodată. Dacă aveți astfel de probleme, atunci acordați o atenție deosebită numărului de linie atunci când editați fişier. Dacă utilizați nano pentru a edita fișierul, puteți oricând să țineți apăsată tasta Ctrl și să apăsați tasta C pentru a găsi pe ce linie se află cursorul. Acest lucru va face procesul de depanare să meargă mult mai ușor.

S-ar putea să descoperiți că aveți mai multe blocuri care plutesc într-un mod care nu este atașat la nimic. Fiecare dintre acestea trebuie să aibă etichete pe ele. Eliminați blocurile suplimentare de fiecare dată când descoperiți că aveți mai multe copii ale aceluiași URL cu aceleași directive exacte, deoarece aceste duplicate pot cauza probleme. În general, trebuie să aveți doar o singură copie a oricărei adrese URL specifice, deoarece nu ar trebui să transmiteți directivele suplimentare despre una către serverul apache2, deoarece acestea s-ar putea contracara reciproc.

3 minute citite