Eroare 403 când lucrați cu gazde virtuale pe serverul web apache2

De fapt, lucrul cu gazde virtuale (gazde virtuale) de pe serverul de web Apache2 este ușor, dar complică faptul că Internetul este foarte dificil de a găsi o documentație coerentă sau exemple de configurare bună.

Cea mai probabilă problemă cu care vă puteți confrunta atunci când configurați gazde virtuale va fi: un bug în browserul dvs.

"HTTP 403 / client negat de eroarea de configurare a serverului"


Eroare 403 atunci când configurarea gazde virtuale poate apărea din două motive.

Primul sistem de operare Microsoft Windows este puțin probabil (dar probabil în toate axa * nix-opodobnyh) constă în faptul că principala (rădăcină), calea pe care este orice document virtual gazdă trebuie să fie ușor de citit, inscriptibil, și executabilă (a se citi, scrie, și executabil) pentru utilizatorul serverului web httpd. În fișierul access_log în acest caz, puteți vedea eroarea 403. deși mesajul returnat de browserul în sine nu va conține codul 403. Și arătați, de exemplu, astfel:

interzis
Nu aveți permisiunea de a accesa /index.html pe acest server.

Colegii mei s-au confruntat cu acest lucru de mai multe ori deja deoarece directorul părinte pentru "documente virtuale" nu avea dreptul de a executa fișiere pentru utilizatorul "www" (sub care a fost pornit serverul web). Din păcate, într-un fișier jurnal de pe serverul care nu conține greșeli va fi indicat în mod clar și puteți petrece o mulțime de timp pentru a edita fișierul de configurare httpd.conf, pentru că va crede că aceasta este o problemă în configurația serverului Web.

Al doilea motiv este într-adevăr configurația, și anume că ați uitat să permiteți accesul la directorul din fișierul httpd.conf. În acest caz, access_log vă va arăta o eroare de 403 și chiar serverul web Aapche2 oferă uneori aceeași eroare browserului dvs.:

HTTP 403 / client refuzat de eroarea de configurare a serverului

Este ciudat faptul că, în unele cazuri, el emite un mesaj interzis fără codul "403".

interzis
Nu aveți permisiunea de a accesa /index.html pe acest server.

În eroarea dvs. error_log, pentru fiecare încercare de a accesa orice fișier din directorul "gazdă virtuală" a serverului web, va fi scris următorul mesaj:

În acest caz, problema constă în faptul că fișierul suplimentar / httpd-vhosts.conf (sau httpd.conf - pentru MS Windows) este nicio directivă permite accesul la directorul în care fișierul este.
Pentru ao activa, trebuie să adăugați la fișierul de configurare:

Mai jos este un exemplu de cum ar trebui să arate acest lucru în general:


Numele serverului vhost1.example.com
ServerAlias ​​vhost1.example.com
DocumentRoot / var / www / vhosts / vhost1

permiteți tuturor

Din păcate, fișierul httpd-vhosts.conf. care este prezent în Apache2 în mod implicit, sau documentația pentru lucrul cu VirtualHost în Apache2 nu ne dau nici un exemplu real de lucru în acest sens.

Sper că acest material a fost util pentru dvs.

Bun pentru proiectele tale!