Tutoriale Apache pentru începători

Cuprins

Ce este Apache?

Apache este o piesă remarcabilă de software de aplicație. Este cea mai utilizată aplicație Web Server din lume, cu o pondere de peste 50% pe piața serverelor web comerciale. Apache este cea mai utilizată aplicație Web Server în sistemele de operare de tip Unix, dar poate fi utilizată pe aproape toate platformele, cum ar fi Windows, OS X, OS / 2, etc. Cuvântul, Apache, a fost preluat din numele nativ Tribul american „Apache”, renumit pentru abilitățile sale în război și elaborarea de strategii.

Este o aplicație de server web modulară, bazată pe procese, care creează un fir nou cu fiecare conexiune simultană. Suportă o serie de caracteristici; multe dintre ele sunt compilate ca module separate și își extind funcționalitatea de bază și pot oferi totul, de la suportul limbajului de programare de la server până la mecanismul de autentificare. Găzduirea virtuală este o astfel de caracteristică care permite unui singur server web Apache să deservească mai multe site-uri web diferite.

Cum se instalează Apache

Există numeroase modalități de instalare a pachetului sau aplicației. Sunt înscriși mai jos -

  1. Una dintre caracteristicile acestei aplicații web open source este că oricine poate face programul de instalare conform propriului mediu. Acest lucru a permis diverșilor furnizori precum Debian, Red Hat, FreeBSD, Suse etc. să personalizeze locația fișierului și configurația apache luând în considerare alte aplicații instalate și sistemul de operare de bază.
  2. În afară de instalarea acestuia de la un program de instalare bazat pe furnizor, există întotdeauna opțiunea de a-l construi și instala din codul sursă. Instalarea Apache din fișierul sursă este o platformă independentă și funcționează pentru toate sistemele de operare.

Serverul web Apache este o aplicație modulară în care administratorul poate alege funcționalitatea necesară și poate instala diferite module conform cerințelor sale.

Toate modulele pot fi compilate ca obiecte partajate dinamice (DSO este un fișier obiect care ar putea fi partajat de mai multe aplicații în timp ce se execută) care există separat de fișierul principal apache. Abordarea DSO este foarte recomandată, simplificând sarcina de a adăuga / elimina / actualiza module din configurația serverelor.

Instalați Apache: platforma Linux

Pe sistemele Red Hat sau rpm

Dacă utilizați un rpm (RedHat Package Manager este un utilitar pentru instalarea aplicației pe sisteme Linux) distribuție Linux bazată pe Red Hat, Fedora, CentOs, Suse, puteți instala această aplicație fie de către Managerul de pachete specific furnizorului, fie de construirea directă a fișierului rpm din tarball-ul sursă disponibil.

Puteți instala Apache prin Managerul de pachete implicit disponibil pe toate distribuțiile bazate pe Red Hat, cum ar fi CentOs, Red Hat și Fedora.

[root @ amsterdam ~] # yum instalează httpd

Tarball-ul sursă apache poate fi convertit într-un fișier rpm folosind următoarea comandă.

[root @ amsterdam ~] # rpmbuild -tb httpd-2.4.x.tar.bz2

Este obligatoriu să aveți pachetul -devel instalat pe serverul dvs. pentru crearea fișierului .rpm din sursă.

Odată ce convertiți fișierul sursă într-un program de instalare rpm, puteți utiliza următoarea comandă pentru a instala Apache.

[root @ amsterdam ~] # rpm -ivh httpd-2.4.4-3.1.x86_64.rpm

După instalare, serverul nu pornește automat, pentru a porni serviciul, trebuie să utilizați oricare dintre următoarele comenzi pe Fedora, CentOs sau Red Hat.

[root @ amsterdam ~] # / usr / sbin / apachectl start[root @ amsterdam ~] # service httpd start[root @ amsterdam ~] # /etc/init.d/httpd start

Instalați Apache din sursă

Instalarea apache de la sursă necesită instalarea pachetului -devel pe serverul dvs. ... Puteți găsi cea mai recentă versiune disponibilă a Apache, o puteți descărca de aici. După ce descărcați fișierul sursă, mutați-l în folderul / usr / local / src.

[root @ amserversterdam ~] cd / usr / local / src[root @ amserversterdam ~] gzip -d httpd-2.2.26.tar.gz[root @ amserversterdam ~] tar xvf httpd-2.2.26.tar[root @ amserversterdam ~] httpd-2.2.26

Pentru a vedea toate opțiunile de configurare disponibile pentru Apache, puteți utiliza opțiunea ./configure -help. Cea mai comună opțiune de configurare este -prefix = {nume director de instalare}.

[root @ amserversterdam ~] ./ configure --help[root @ amserversterdam ~] ./ configure -prefix = / usr / local / apache -enable-so[root @ amserversterdam ~] face[root @ amserversterdam ~] make install

Exemplul de mai sus arată compilarea Apache în directorul / usr / local / apache cu capacitatea DSO. Opțiunea -enable-so, poate încărca modulele necesare apache în timpul rulării prin mecanismul DSO, mai degrabă decât necesită o recompilare.

După finalizarea instalării, puteți naviga pe pagina implicită a serverelor web cu browserul dvs. preferat. Dacă firewall-ul este activat pe serverul dvs., trebuie să faceți excepție pentru portul 80 de pe firewall-ul sistemului dvs. de operare. Puteți utiliza următoarea comandă pentru a deschide portul 80.

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

service iptables save

Puteți vedea ecranul de întâmpinare Apache2 implicit răsfoind adresa IP a serverului.

Ce este gazda virtuală?

Un server web Apache poate găzdui mai multe site-uri web pe același server. Nu aveți nevoie de mașină server separată și software apache pentru fiecare site web. Acest lucru se poate realiza folosind conceptul de gazdă virtuală sau VHost.

Orice domeniu pe care doriți să îl găzduiți pe serverul dvs. web va avea o intrare separată în fișierul de configurare apache.

Tipuri de Apache Virtualhost

  1. Gazdă virtuală bazată pe nume
  2. Gazdă virtuală bazată pe adresă sau IP.

Gazdă virtuală bazată pe nume

Găzduirea virtuală bazată pe nume este utilizată pentru a găzdui mai multe site-uri virtuale pe o singură adresă IP.

Pentru a configura găzduirea virtuală bazată pe nume, trebuie să setați adresa IP pe care urmează să primiți cererile Apache pentru toate site-urile web dorite. Puteți face acest lucru prin directiva NameVirutalHost în configurația apache, adică fișierul httpd.conf / apache2.conf.

Exemplu de gazdă virtuală Apache:

NameVirtualHost *: 80ServerAdmin Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza.DocumentRoot /var/www/html/example1.comServerName www.example1.comServerAdmin Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

Puteți adăuga cât mai multe gazde virtuale, conform cerințelor dvs. Puteți verifica fișierele de configurare web cu:

[root @ amsterdam ~] #httpd -tSintaxă OK

Dacă fișierul de configurare are o sintaxă greșită, va genera o eroare

[root @ 115 conf.d] # httpd -tEroare de sintaxă pe linia 978 din /etc/httpd/conf/httpd.conf:Comandă nevalidă „*”, poate greșită sau definită de un modul care nu este inclus în configurația serverului

Gazdă virtuală bazată pe IP

Pentru a configura găzduirea virtuală bazată pe IP, aveți nevoie de mai multe adrese IP configurate pe serverul dvs. Deci, numărul de apache vhost va depinde de numărul de adrese IP configurate pe serverul dvs. Dacă serverul dvs. are 10 adrese IP, puteți crea 10 gazde virtuale bazate pe IP.

În diagrama de mai sus, două site-uri web example1.com și example2.com au fost atribuite adrese IP diferite și utilizează găzduire virtuală bazată pe IP.

Asculta 192.168.0.100:80ServerAdmin Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza.DocumentRoot /var/www/html/example1.comServerName www.example1.comServerAdmin Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

De ce Apache are nevoie pentru a rula fișierul Php?

Rularea fișierelor Php pe Apache are nevoie de mod_php activat pe serverul dvs. Permite Apache să interpreteze fișierele .Php. Are manipulatori Php care interpretează codul PHP în apache și trimit HTML către serverul dvs. web.

Dacă mod_php este activat pe serverul dvs., veți avea un fișier numit php.conf în directorul /etc/httpd/conf.d/. O puteți verifica și cu:

httpd -M | grep "php5_module"

Rezultatul va fi similar cu:

Manipulatori PHP în Apache

  • mod_php
  • CGI
  • FastCGI
  • suPHP

mod_php este cel mai vechi handler PHP, face din PHP parte din apache și nu apelează niciun proces PHP extern. Acest modul este instalat în mod implicit în fiecare depozit de distribuție Linux, astfel încât activarea / dezactivarea acestui modul este foarte ușoară.

Dacă utilizați FastCGI ca gestionar PHP, puteți seta mai multe versiuni de PHP pentru a fi utilizate de diferite conturi de pe server.

FastCGI adică mod_fastcgi este o extensie a mod_fcgid , unde ca mod_fcgid este o alternativă de înaltă performanță a CGI adică mod_cgi. Începe un număr suficient de instanțe de CGI pentru a gestiona solicitările web concurente. De asemenea, folosește suexec pentru a sprijini diferiți utilizatori cu propriile instanțe de PHP și îmbunătățește securitatea web.

Rularea fișierelor ruby ​​pe Apache necesită activarea mod_ruby. Apache poate gestiona, de asemenea, fișiere rubine prin FastCGI. Este posibil să utilizați mai multe versiuni de rubin cu ajutorul mod_fcgid, adică FastCGI.

De asemenea, puteți instala pasagerul Apache și configura Apache să-l folosească pentru servirea paginilor ruby.

(Phusion Passenger, cunoscut și sub numele de „ pasager ”, este un modul de server web gratuit care este conceput pentru a se integra cu Apache și Nginx)

Pași pentru instalarea mod_ruby pe server -

cd / tmpwget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gztar zxvf mod_ruby-1.2.6.tar.gzcd mod_ruby-1.2.6 /./configure.rb --with-apr-includes = / usr / include / apr-1faceface instalare

Cum să rulezi Ruby cu Apache

Trebuie să adăugăm modulul mod_ruby la configurația Apache, adică /etc/httpd/conf.d/ruby.conf și să adăugăm următoarea linie.

LoadModule ruby_module modules / mod_ruby.so

Dacă doriți să activați sau să dezactivați aceste module, trebuie să editați fișierul de configurare apache și să comentați sau decomentați aceste module, dacă serverul web este deja compilat cu aceste module.

Cum să securizați serverul web Apache

Securizarea serverului dvs. web este foarte importantă, înseamnă a permite altora să vadă doar informațiile dorite și să vă protejeze datele și să restricționeze accesul.

Acestea sunt lucruri obișnuite care îmbunătățesc securitatea serverelor web Apache.

1) Ascunderea versiunii Apache și a informațiilor despre sistemul de operare:

Apache afișează versiunea sa și numele sistemului de operare în erori, așa cum se arată în captura de ecran de mai jos.

Un hacker poate utiliza aceste informații pentru a lansa un atac folosind vulnerabilitățile disponibile public în versiunea specială a serverului sau a sistemului de operare.

Pentru a preveni Apache serverul web de la afișarea acestor informații, trebuie să modificăm

Opțiunea „semnătură server” disponibilă în fișierul de configurare apache. În mod implicit, este „activat”, trebuie să îl setăm „dezactivat”.

vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod

De asemenea, am setat „ServerTokens Prod” care spune serverului web să returneze doar apache și să suprime versiunea majoră și minoră a sistemului de operare

După modificarea fișierului de configurare, trebuie să reporniți / reîncărcați serverul web apache pentru a-l face eficient.

repornirea serviciului httpd

2) Dezactivați lista de directoare

Dacă directorul rădăcină al documentului dvs. nu are un fișier index, în mod implicit serverul web apache va afișa tot conținutul directorului rădăcină al documentului.

Această caracteristică ar putea fi dezactivată pentru un anumit director prin „directivă opțiuni” disponibilă în fișierul de configurare Apache.

Opțiuni -Indexe

3) Dezactivarea modulelor inutile

Este o bună practică să dezactivați toate modulele inutile care nu sunt utilizate. Puteți vedea lista modulelor activate disponibile în fișierul dvs. de configurare apache -

[root @ amsterdam ~] #httpd -Mperl_module (partajat)php5_module (partajat)proxy_ajp_module (partajat)python_module (partajat)ssl_module (partajat)

Multe dintre modulele enumerate pot fi dezactivate likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, deoarece sunt greu folosite de orice servere web de producție.

vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules / mod_auth_digest.so

Odată ce ați comentat modulul, salvați fișierul.

Reporniți serviciile apache cu următoarea comandă.

/etc/init.d/httpd reporniți

4) Restricționarea accesului la fișierele din afara directorului rădăcină web

Dacă doriți să vă asigurați că fișierele care se află în afara directorului rădăcină web nu sunt accesibile, trebuie să vă asigurați că directorul este restricționat cu „Permite” și „Refuză opțiunea” în fișierul de configurare al serverului web.

Opțiuni NiciunaAllowOverride Nici unulComanda refuza, permiteNegati de la toti

După ce restricționați accesul în afara directoy-ului web root, nu veți putea accesa niciun fișier aflat în niciun alt folder de pe serverul dvs. web, veți primi 404 cod de returnare.

5) Utilizarea mod_evasive pentru a respinge atacul DoS

Dacă doriți să vă protejați serverul web de Dos (adică Denial of Service), trebuie să activați modulul mod_evasive. Este un modul terț care detectează atacul Dos și împiedică atacul să producă atât de multe daune pe cât ar face dacă ar fi lăsat să-și urmeze cursul. Poate fi descărcat de aici.

Descărcați fișierul de mai sus

6) Utilizarea mod_security pentru a spori securitatea apache

Acest modul funcționează ca un firewall pentru Apache și vă permite să monitorizați traficul în timp real. De asemenea, previne serverul web de atacuri cu forță brută. Modulul mod_security ar putea fi instalat cu managerul de pachete implicit al distribuției dvs.

7) Limitarea dimensiunii cererii

Apache nu are nicio restricție cu privire la dimensiunea totală a cererii http care ar putea duce la un atac DoS. Puteți limita dimensiunea cererii unei directive Apache „LimitRequestBody” cu eticheta de director. Valoarea poate fi setată de la 0 la 2 GB (adică 2147483647 octeți) conform cerințelor dvs.

LimitRequestBody 512000

Apache Log Format

Jurnalele Apache oferă informații detaliate care ajută la detectarea problemelor obișnuite cu serverul.

Pentru a crea jurnale de acces, trebuie activat mod_log_configmodule.

Trei directive disponibile în fișierul de configurare apache, adică

  • TransferLog: Crearea unui fișier jurnal.
  • LogFormat: specificarea unui format personalizat.
  • CustomLog: Crearea și formatarea unui fișier jurnal.

Directiva TransferLog este disponibilă în fișierul de configurare apache și rotește fișierele jurnal de gazdă virtuală conform parametrilor stabiliți.

ServerAdmin Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza.DocumentRoot / usr / www / example / httpd / htdocs /ServerName www.example.comServerAlias ​​example.com www.exampleErrorLog / usr / www / example / httpd / logs / error_logTransferLog / usr / www / example / httpd / logs / accesslogCustomLog / usr / www / example / httpd / logs / accesslog combinate

Două tipuri de Apache Log Format

  • Format jurnal comun
  • Format jurnal combinat.

Le puteți activa editând fișierul de configurare apache, adică fișierul apache2.conf (Debian / ubuntu) sau httpd.conf (sisteme bazate pe rpm)

Format jurnal comun

LogFormat "% h% l% u% t \"% r \ "%> s% b" comunCustomLog logs / access_log comune

Jurnal comun generat de Apache

[Miercuri 11 octombrie 14:32:52 2000] [eroare] [client 127.0.0.1] client refuzat de configurarea serverului: / export / home / live / ap / htdocs / test

Format jurnal combinat

LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-agent} i \ "" combinatJurnal personalizat / jurnal de acces combinate

Aici,

  • % h este gazda la distanță
  • % l este identitatea utilizatorului determinată de identd
  • % u este numele de utilizator determinat de autentificarea HTTP
  • % t este momentul în care serverul a terminat procesarea cererii.
  • % r este linia de solicitare de la client. („GET / HTTP / 1.0”)
  • %> s este codul de stare trimis de la server către client (500, 404 etc.)
  • % b este dimensiunea răspunsului la client (în octeți)
  • Referer este pagina care a legat la această adresă URL.
  • User-agent este șirul de identificare al browserului.

Jurnal combinat generat de Apache:

199.187.122.91 - - [06 / Mar / 2014: 04: 22: 58 +0100] "GET /robots.txt HTTP / 1.1" 404 1228 "-" "Mozilla / 4.0 (compatibil; MSIE 6.0; Windows NT 5.1; SV1 ; .NET CLR 2.0.50727) "

Jurnalul personalizat creează un fișier jurnal separat pentru fiecare gazdă virtuală de pe serverul dvs. Trebuie specificat în secțiunea gazdă virtuală a fișierului de configurare.

Puteți vedea configurația gazdei virtuale menționate mai jos, jurnalul generat va fi personalizat pentru acea gazdă virtuală și formatul va fi combinat.

Configurați primul dvs. Web Production Production

1. Pentru a avea un server web de producție care rulează, aveți nevoie de un nod dedicat (instanță fizică / virtuală sau cloud) care rulează Linux / Unix, Windows, MacOS etc.

2. Serverul Web trebuie să aibă o conexiune de rețea directă și o adresă staticIP configurată pe acesta.

3. Trebuie să aibă toate modulele necesare pentru rularea paginilor web. Dacă un server web procesează pagini PHP, trebuie să aibă modulul PHP activat.

  1. De asemenea, trebuie să aibă o aplicație antivirus bună configurată și care rulează pentru a proteja serverul Web de atacurile malware sau de viruși. De asemenea, aveți nevoie de mecanism pentru a actualiza aplicația configurată antivirus / anti malware în mod regulat, fără intervenție manuală, pentru a obține un beneficiu maxim de la acestea.
  2. Dacă aveți sute de domenii care urmează să fie găzduite pe serverul dvs. web, trebuie să implementați limitări ale cotei sistemului de fișiere pentru fiecare domeniu, numărul de baze de date pe care le poate crea fiecare domeniu, numărul de conturi de e-mail pe domeniu etc.
  3. Dacă serverul dvs. web a fost configurat pentru servicii de găzduire partajată, utilizatorii de pe serverul dvs. web trebuie restricționați . Un utilizator de găzduire partajată ar trebui să aibă cel mai mic privilegiu de utilizator, astfel încât să nu afecteze fișierele importante și să nu întrerupă întregul server. Apache nu oferă astfel de funcționalități și are nevoie de aplicații terțe diferite, personalizarea sistemului de operare pentru a realiza acest lucru.
  4. Dacă adăugați un domeniu nou pe serverul dvs. web, acesta trebuie să editeze sute de fișiere de configurare pentru a activa toate funcțiile pentru domeniul adăugat.
  5. Dacă unul dintre domeniile găzduite necesită setări PHP diferite de celelalte domenii, implementarea acestuia în serverul web Apache de bază este foarte complexă și necesită personalizarea serverului dvs. web în mare măsură.
  6. Un server web de producție are nevoie de un paravan de protecție pentru a bloca traficul nedorit care ar putea provoca încărcări mari pe serverul dvs. Implementarea regulilor IPTABLE cu linia de comandă este foarte complexă. Are nevoie de expertiză în mediul de bază Linux / Unix pentru a scrie reguli firewall eficiente pentru blocarea traficului nedorit. IPTABLE se bazează pe modulul netfilter; este un firewall la nivel de sistem de operare care permite unui administrator să creeze reguli pentru traficul de intrare / ieșire pe server.
  7. Un server web de producție necesită mai multe aplicații diferite, cum ar fi e-mail , FTP pentru încărcarea fișierelor, sistem de nume de domeniu pentru domeniile parcate. Gestionarea tuturor acestor aplicații pe un sistem de bază Linux / Unix necesită expertiză în tehnologiile respective.

Deci, se poate spune că gestionarea unui server web pentru mai multe domenii este o sarcină foarte complexă și necesită editarea a sute de fișiere de configurare, personalizarea fiecărei aplicații pentru a îndeplini rezultatul dorit. Depanarea oricărei configurații ratate va fi foarte dificilă pentru începători.

Soluția utilizând Cpanel sau software similar

Cpanel oferă un mod grafic de gestionare a serverului dvs. web . Este menit să ofere servicii de găzduire în masă ușor de utilizat și de configurat. cPanel a redus barierele tehnice la intrarea în găzduire și gestionarea serverelor web. Face mai ușoară sarcina complexă, oferă multe interfețe web utile și ușor de utilizat care efectuează sarcini comune de administrare a sistemului necesare pentru operarea unui server web.

cPanel își compilează propria versiune de software.

Dacă trebuie să vă recompilați serverul web, adică apache pe platforma Linux normală, trebuie să selectați / căutați manual modulul care este necesar. cPanel oferă funcționalitatea Easyapache, care este o metodă de compilare a serverului web bazată pe scripturi.

Nu numai că vă oferă servicii web, ci și Mail, DNS, FTP și multe alte servicii necesare pentru aplicația dvs. web.

O sarcină care necesită expertiză în găzduirea de bază Linux / Unix, cum ar fi instalarea SSL-urilor, recompilarea Apache cu diferite module PHP, actualizarea securității web, configurarea regulilor IPTABLE eficiente, adăugarea utilizatorilor ftp, crearea de conturi de poștă electronică pentru fiecare domeniu, scanarea rădăcinii documentului cu antivirus și crearea bazelor de date este ușor de completat cu cPanel.

Oferă o mulțime de scripturi care remediază, instalează și depanează sarcinile administrative comune.

Oferă o funcționalitate de backup și restaurare, eliminând necesitatea copierii manuale a fișierelor în spațiul de stocare de rezervă. Dacă faceți o copie de rezervă a domeniului dvs., cPanel va crea un fișier tar care va conține folderul rădăcină document, conturi de e-mail și e-mailuri, conturi ftp, baze de date, înregistrări DNS și alte aplicații.

De asemenea, oferă o documentație robustă și are o comunitate foarte mare de utilizatori unde puteți discuta și obține soluții pentru problemele dvs.

Deci, se poate spune că cPanel este cea mai bună aplicație pentru gestionarea serverului dvs. web cu caracteristicile necesare. Vă oferă o interfață ușor de utilizat pentru gestionarea domeniului dvs. și un mecanism pentru a evita complexitatea gestionării serverului web de bază.

Există multe produse concurente pentru cPanel, cum ar fi Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel etc.

Articole interesante...