Lucrul cu web-server apache rusă
Din bazate pe web serverul Apache rusesc
Punct de vedere istoric, că textele românești pe internet pot fi prezentate în codificări diferite, dintre care cele mai frecvente KOI8-r (sau pur și simplu KOI8) și Windows-1251: primele lucrări de cele mai multe servere și stații de lucru care rulează Unix, al doilea este standardul pentru toate versiunile de Windows. Deoarece Windows-1251, desigur, se aplică pentru marea majoritate a mașinilor client, proporția celor care călătoresc pe partea rusă a WWW, folosind KOI8, nu mai mult de 5% în prezent. Cu toate acestea, în această codificare de documente sunt stocate pe mai multe Unix-servere, acesta este cel mai adesea transmis mesaje e-mail, și aproape întotdeauna - scrisoarea intr-o teleconferinta cu munca ei cat mai multe canale IRC vorbitoare de limba rusă (de altfel, abrevierea KOI reprezintă „Cod pentru schimbul de informații“). Pentru a rezolva problemele cauzate de nepotrivire de codificări de text de pe server și mașina client, și a fost creat de către modulul românesc Apache-RUS pentru Apache Web-server.
În acest articol ne vom uita la modul de instalare și de a configura atât server și recodificare documente mecanism de tip „on the fly“.
Deci, primul lucru pe care trebuie să rescrie arhiva lui masina (mai putin de 1,5 MB) și despachetați-l:
# Ftp ftp://apache.lexa.ru/pub/apache-rus/ apache_1.3.3rusPL27.3.tar.gz
# Tar xvzf apache_1.3.3rusPL27.3.tar.gz
După aceea, introduceți despache- directorul apache_1.3.3rusPL27.3 creat și rulați scriptul configure:
Dacă este necesar, script-ul poate specifica în mod explicit argumentul (lista emisă de comandă configure -help). Deci, dacă doriți să instalați serverul într-un alt director decât cel implicit, aveți nevoie pentru a efectua o „Configure -prefix =
Când Configureaza se face, ar trebui, ca de obicei, da make și make install (aceste acțiuni sunt efectuate de către utilizator root).
Acum serverul este instalat în / usr / local / apache, dar nu se poate rula încă - noi trebuie să editați mai întâi fișierele de configurare httpd.conf, access.conf și srm.conf în directorul / usr / local / apache / etc / (de la versiunea 27,4 - / usr / local / apache / conf).
Configurarea fișiere de configurare web-server - cel mai important pas în momentul instalării. Aici avem în vedere doar cele mai comune directive și parametri, deoarece lista completă cu descrierea durează mai mult de o duzină de pagini. Serverul citește fișierele de configurare la pornire și, de asemenea, în timpul semnalului de pregătire -HUP (repornire tare) sau -uSR1 (repornire moale). Dacă serverul este în funcțiune, se recomandă pentru a reporni comanda atunci când o schimbare de configurare
# Kill -USR1 `cat / / apache / logs usr / local / httpd.pid`
În acest caz, conexiunile existente sunt închise forțat și completate în mod obișnuit, iar următorii clienți sunt deja de lucru cu noile fișiere de configurare.
În access.conf conține directivele care descriu permisiunile pentru fișierele și web-server. În primul rând, să decidă ce director pentru a stoca documente. În mod implicit, acest lucru este / usr / local / apache / share / htdocs, cu toate acestea, mulți administratori preferă să plaseze documentele incepand de la directorul / www /<имя_сервера>/ Pentru că un astfel de aranjament este mai ușor de navigat în structura de fișiere. Să presupunem, de exemplu, vom crea un director:
Ei vor rădăcină pentru serverul virtual.
fișier access.conf poate conține un director secțiune, Locul de amplasare și fișiere, care sunt limitate de aceleași reguli de nume. Parametrii acestor directive pot fi folosite caractere „?“ și "*". precum și expresii regulate precedate de o tilda, de exemplu, "^ / Www. + / A? Server">. În secțiunea Directory instrucțiuni plasate se aplică într-un director de pe disc, în secțiunea Locul de amplasare - legate de calea virtuală din secțiunea Fișiere - legate de un fișier sau grup de fișiere. # directive care se aplică tuturor documentelor deținute de Directorul /www/rmt.ru și a investit în ea
# directive referitoare la toate documentele disponibile pe
# directive referitoare la fișierul din directorul form.html
Diferența dintre secțiunile Directory și localizare este că prima se referă la directoarele de pe disc, al doilea - la calea virtuală (URL), pe care browserul cere un web-server. Și în asta, iar în cealaltă poate fi prezenta ordine de directivă, permite și Deny, care vă permit să restricționeze accesul la director sau URL-ul pentru diverse mașini.
Următoarele două directive se referă la secțiunea
Setări posibile:
ExecCGI - permite executarea de CGI-script-uri în acest director și subarborele acestuia;
Include - permite SSI (Server Side Includes);
Indexuri - pentru a permite listare director problemă, în cazul în care nu există nici un fișier index.html (sau fișierul index Directiva DirectoryIndex specificat);
MultiViews - permite suport pentru mai multe limbi; în mod implicit este oprit, porniți-l și, de regulă, nu este necesar; sprijin transcodare „on the fly“ pentru limba română este stabilită prin alte directive care vor fi luate în considerare mai târziu;
Toate - să se stabilească la o dată toate aceste moduri, cu excepția MultiViews.
În absența unor cerințe specifice de siguranță este foarte posibil să se specifice secțiunea „Opțiuni All“
Cele mai multe directive pot fi definite nu numai în fișierele de configurare a serverului, dar, de asemenea, la fișierul .htaccess într-un director de pe server. Directiva AllowOverride definește un set de directive care sunt permise în .htaccess. Parametrii pot fi specificate după cum urmează:
Fileinfo - permit directive să controleze tipurile de documente;
Indexuri - pentru a permite directivele legate de listarea directoarelor;
Opțiuni - Opțiuni pentru a rezolva directiva de mai sus.
Rețineți că, atunci când acesta din urmă mod, utilizatorii pot crea propriile fișiere .htaccess și să le rezolve în executarea CGI-script-uri. Prin urmare, dacă doriți să controlați utilizator CGI-script-uri, nu ar trebui să fie extinsă la operare directoarele utilizatorilor Directiva Opțiuni AllowOverride.
Cu toate acestea, în multe cazuri (în special în cazul în care dreptul de a modifica conținutul serverului este doar pentru administrator) access.conf fișier ar putea arata ca Listarea 1.
fișier srm.conf conține directive asociate cu structura de directoare de server comune de configurare a lui. De regulă, este suficient să se schimbe doar câteva rânduri.
DocumentulRădăcină <первый каталог сервера>
UserDir <имя пользовательского каталога>
<имя_пользователя>/. public_html Standard. Uneori, pentru a face viața mai ușoară pentru utilizatori, administratorii da directiva „www UserDir“.
DirectoryIndex <список файлов индекса>
fișier index - aceasta este fișierul care va fi trimis la client atunci când accesează directorul. Dacă specificați mai multe nume, serverul va căuta un fișier adecvat „stânga la dreapta“. În mod implicit, lista conține doar un singur nume - index.html, dar a decis să se adauge și alte nume comune ale fișierelor index. De exemplu, directiva poate fi de forma: DirectoryIndex .index.html index.html index.htm index.cgi index.shtml home.html home.htm default htm default html
B rădăcina fiecărui server virtual creează fișiere missing.html. Este recomandat să dau link-uri la principalele secțiuni ale serverului - pentru comoditatea utilizatorilor, și să furnizeze informațiile necesare pentru antenele motoarelor de căutare, servere de indexare.
Httpd.conf fișier de configurare este de bază și conține setări legate de funcționarea Web-servere, servere virtuale, precum și toate modulele sale software. În plus, în cazul în care acest lucru este transcodare ajustat literelor românești de transmitere de la server la client și înapoi.
Directiva Port este plasat la începutul fișierului, specifică numărul de port de http-server; Valoarea implicită este 80. Dacă este necesar, serverul poate fi atribuit la un alt port sau mai multe porturi, care este o Listen directivă.
Utilizatorul și directivele grupului specificați utilizatorul care va administra serverul. Dintr-o perspectivă de securitate nu este de dorit să se specifice aici un utilizator existent cu acces la orice alte resurse sau fișiere. Este mai bine pentru a crea un utilizator și de grup separat special pentru http-server, de exemplu:
Directiva ServerRoot, ErrorLog, CustomLog determina respectiv directorul rădăcină al http-server, calea către jurnalul de erori de jurnal (error_log) și calea către cererile de jurnal către server (access_log).
Directiva CacheNegotiatedDocs permite punerea în cache a documentelor primite de la server. În mod implicit, acest mod este dezactivat, dar din moment ce capacitatea de interne Internet-canale va fi o lungă perioadă de timp pentru a lăsa ceva de dorit, ar fi bine să-l includă: în cazul în care utilizatorul nu trebuie să aștepte pentru a încărca imagini pentru fiecare acces la pagina ta.
Configurarea serverelor virtuale în httpd.conf
Directiva ServerName, care se află în afara secțiunile VirtualHost, specifică numele serverului principal, de ex., E. directorul rădăcină de server, care este specificat în fișierul srm.conf Directiva DocumentulRădăcină. Serverele virtuale vor moșteni setările principale; în cazul în care directivele de configurare speciale necesare sunt plasate în secțiunea VirtualHost referitoare la acest server. Valabil orice directive care pot fi întâlnite în fișiere și srm.conf httpd.conf, de exemplu DocumentulRădăcină, ErrorLog, CustomLog, Locație, ServerAdmin.
Setarea transcodarea documentelor rusești
Instrucțiuni responsabile de transcodare sunt împărțite în mod natural în trei grupe. Primul este cele două directive care specifică ce codifică fișierele sunt stocate pe disc: CharsetSourceEnc <кодировка> și CharsetByExtension <кодировка> <расширение1> <расширение2>.
De exemplu, fișierul httpd.conf poate conține linia:
.txt CharsetByExtension ferestre-1251
Această notație înseamnă că toate fișierele sunt stocate pe un disc codat KOI8-r; cu excepția fișierelor de text cu txt extensie, care utilizează Windows-1251.
În cazul în care mai mult de o codificare și documentele sunt stocate în fiecare set de caractere în catalogul său, directivele CharsetSourceEnc plasate în secțiunea corespunzătoare
Al doilea grup este format Directiva CharsetDecl, CharsetAlias CharsetRecodeTable și CharsetWideRecode Table, care specifică numele de codare, transcodare și masa lor sinonime. Toate acestea sunt situate în secțiunea
Al treilea și cel mai numeros grup include directive care specifică ordinea de re-codare a caracterelor de la server la client și înapoi.
Se presupune că, atunci când în contact cu utilizatorul server limba rusă primește pagina în „“ de codificare este determinată automat pe baza informațiilor despre sistemul de operare, care transmite browser-ul de server: de exemplu, stabilind că utilizatorul se execută pe Windows, serverul emite o pagină codificată Windows- 1251, și constatând că aceasta funcționează pe Unix, prevede pagina KOI8. Dacă pagina selectată nu este astfel adecvată, clientul poate schimba manual codificarea. Alegerea principală a trei scheme: directorul prefix, virtual numele serverului și numărul portului. Fiecare dintre ele are avantajele și dezavantajele sale.
Pentru organizarea selecției de codificare director prefix ai nevoie pentru a face orice fel în linia de secțiunea VirtualHost
Alias / koi / www / RMT
sau de a crea corespunzătoare director link-ul simbolic în sine:
Când selectați codificarea pentru numele serverului este necesar ca informațiile privind denumirile relevante au fost date în configurația DNS-server care menține domeniu, cât și în fișierul httpd.conf în secțiunea VirtualHost a liniei se efectuează:
CharsetByPort KOI8-r 8100
CharsetByPort windows-1251 8101
CharsetByPort ibm866 8102
CharsetByPort izo-8859-5 8103
Numerele de porturi nu sunt foarte importante. În configurația standard, Apache-RUS numerotarea, după cum vom vedea, începând cu 8100, dar cel mai adesea începe cu 8000 sau 8080.
Acest sistem nu necesită înregistrări suplimentare în DNS, și vă permite să lucrați cu servere virtuale, chiar și clienții care nu acceptă HTTP / 1.1 Protocol - pentru codificare este selectat pe baza numărului care indică portul Web-server (implicit este 80). Cu toate acestea, firewall-uri de rețea, uneori interzic angajarea anumitor porturi, și dacă da, firewall-ul client de rețea protejat, acesta nu va fi capabil să se conecteze la server. Din păcate, această situație apare mai frecvent decât ne-am dori.
Selectarea CharsetSelectionOrder Directiva privind sistemele de codificare definite. Parametrii săi determina ordinea de aplicare a regulilor de selecție. Deci, alegerea prefixului director se potrivește cu un șir de caractere
CharsetSelectionOrder Dirprefix USERAGENT numar_portului UriHostname HOST-ului
Alegerea numelui de domeniu - șirul
CharsetSelectionOrder UriHostname USERAGENT numar_portului HOST-ului Dirprefix
Pentru a selecta numărul de port ar trebui să fie scris
CharsetSelectionOrder numărport USERAGENT UriHostname Dirprefix HOST-ului
Pentru a dezactiva complet recodificare în catalog sau pe server virtual Directiva Charset Dezactivează.
La sfârșitul procedurii de instalare trebuie să ruleze httpd-server. Pentru a face acest lucru, trebuie să vă conectați cu privilegiile utilizatorului rădăcină și să dea comanda
(Începând cu versiunea 27.4 - # / usr / local / apache / bin / apachectl start)
Cod 1 este un simplu access.conf fișier Fragment
## access.conf - fișier de configurare a serverului Apache HTTP
# Access.conf: configurația globală de acces