Tutoriale Apache pentru incepatori
ce este Apache?
Apache este o piesă remarcabilă de software de aplicație. Este cea mai utilizată aplicație de Server Web din lume, cu o cotă de peste 50% pe piața comercială a serverului web. Apache este cea mai utilizată aplicație de Server Web în sistemele de operare asemănătoare Unix, dar poate fi utilizată pe aproape toate platformele, cum ar fi Windows, OS X, OS/2 etc. Cuvântul, Apache, a fost luat de la numele tribului nativ American ‘Apache’, renumit pentru abilitățile sale în război și strategie de luare.
este o aplicație 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 din partea serverului până la mecanismul de autentificare. Găzduirea virtuală este o astfel de caracteristică care permite unui singur Server web Apache să servească un număr de site-uri web diferite.
cum se instalează Apache
există numeroase modalități de instalare a pachetului sau a aplicației. Sunt înscriși mai jos –
- una dintre caracteristicile acestei aplicații web open source este că oricine poate face instalator ca pe propriul mediu. Acest lucru a permis diferiți furnizori precum Debian, Red Hat, FreeBSD, SUSE etc. pentru a personaliza locația fișierului și configurația apache, luând în considerare alte aplicații instalate și sistemul de operare de bază.
- în afară de instalarea acestuia de la un instalator 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ă & 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 execută) care există separat de fișierul principal apache. Abordarea DSO este foarte recomandată, face sarcina de a adăuga/elimina / actualiza Module din configurația serverelor foarte simplă.
instalați Apache:platforma Linux
pe sistemele bazate pe 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 adică. Red Hat, Fedora, CentOs, SUSE, puteți instala această aplicație fie prin managerul de pachete specific furnizorului, fie prin construirea directă a fișierului rpm din sursa disponibilă tarball.
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.
# yum install httpd
tarball-ul sursă apache ar putea fi transformat într-un fișier rpm folosind următoarea comandă.
# rpmbuild -tb httpd-2.4.x.tar.bz2
este obligatoriu să aveți pachetul-devel instalat pe serverul dvs. pentru a crea .fișier rpm de la sursă.
odată ce convertiți fișierul sursă într-un program de instalare rpm, puteți utiliza următoarea comandă pentru a instala Apache.
# 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.
# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start
instalați Apache din sursă
instalarea apache din sursă necesită instalarea pachetului –devel pe serverul dvs. .Puteți găsi cea mai recentă versiune disponibilă a Apache, o puteți descărca aici . După ce descărcați fișierul sursă, mutați-l în folderul/usr/local / src.
cd /usr/local/src gzip -d httpd-2.2.26.tar.gz tar xvf httpd-2.2.26.tar httpd-2.2.26
pentru a vedea toate opțiunile de configurare disponibile pentru Apache, puteți utiliza ./ configurare-opțiune de ajutor. Cea mai comună opțiune de configurare este –prefix={install directory name}.
./configure --help./configure –prefix=/usr/local/apache –enable-so make 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 la apache în timpul rulării prin mecanismul DSO, mai degrabă decât să necesite o recompilare.
după finalizarea instalării, puteți naviga pe pagina implicită a serverelor web cu browserul dvs. preferat. Dacă Paravanul de protecție este activat pe serverul dvs., trebuie să faceți excepție pentru portul 80 de pe Paravanul de protecție al sistemului de operare. Puteți utiliza următoarea comandă pentru a deschide portul 80.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables salvați
puteți vedea ecranul implicit de întâmpinare Apache2 navigând adresa IP a serverului.
ce este Virtual Host?
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-ul 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
- gazdă virtuală bazată pe nume
- bazată pe adresă sau gazdă virtuală bazată pe IP și.
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ă httpd.conf / apache2.fișier conf.
exemplu de gazdă virtuală Apache:
NameVirtualHost *:80<VirtualHost 192.168.0.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example1.com ServerName www.example1.com</VirtualHost><VirtualHost 192.168.0.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example2.comServerName www.example2.com</VirtualHost>
puteți adăuga cât mai multe gazde virtuale, conform cerințelor dvs. Puteți verifica fișierele de configurare web cu:
#httpd –tSyntax OK
Dacă fișierul de configurare are o sintaxă greșită, va arunca o eroare
# httpd -tSyntax error on line 978 of /etc/httpd/conf/httpd.conf:Invalid command '*', perhaps misspelled or defined by a module not included in the server configuration
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 vhost apache va depinde denumă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 example1.com și example2.com au fost atribuite diferite IP-uri și utilizează găzduire virtuală bazată pe IP.
Listen 192.168.0.100:80<VirtualHost 192.168.10.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example1.com ServerName www.example1.com</VirtualHost><VirtualHost 192.168.10.109:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example2.comServerName www.example2.com</VirtualHost>
ce Apache are nevoie pentru a rula fișierul Php?
rularea fișierelor Php pe Apache necesită mod_php activat pe serverul dvs. Acesta permite Apache să interpreteze .Fișiere Php. Are manipulatori Php care interpretează codul Php în apache și trimit HTML pe serverul dvs. web.
dacă mod_php este activat pe serverul dvs., veți avea un fișier numit php.conf în / etc / httpd / conf.d / Director. Puteți verifica, de asemenea, cu:
httpd -M | grep "php5_module"
ieșirea va fi similar cu:
stivuitoare Php în Apache
- mod_php
- CGI
- FastCGI
- suPHP
mod_phpis cel mai vechi handler PHP, face parte din PHP Apache și nu numește niciun proces php extern. Acest modul este instalat implicit în fiecare depozit de distribuție Linux, astfel încât activarea/dezactivarea acestui modul este foarte ușoară.
dacă utilizați FastCGI ca handler PHP, puteți seta mai multe versiuni de PHP pentru a fi utilizate de diferite conturi de pe serverul dvs.
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 cererile 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 ruby prin FastCGI. Este posibil să se utilizeze mai multe versiuni de ruby cu ajutorul mod_fcgid adică FastCGI.
puteți instala, de asemenea, Apache passenger și configurați Apache să-l folosească pentru a servi pagini ruby.
(Phusion pasager, de asemenea, cunoscut sub numele de „pasager” este un modul de server web gratuit, care este proiectat pentru a integra cu Apache și Nginx)
pași pentru a instala 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-1makemake install
Cum de a rula Ruby cu Apache
trebuie să adăugăm modulul mod_ruby la configurația Apache adică/etc/httpd / conf.d / ruby.conf și adăugați următoarea linie.
LoadModule ruby_module module / mod_ruby.deci
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 să decomentați aceste module, dacă serverul web este deja compilat cu aceste module.
cum să securizați serverul web Apache
securizarea serverului web este foarte importantă, înseamnă să permiteți altora să vadă doar informațiile intenționate& protejarea datelor și restricționarea accesului.
acestea sunt lucruri comune care îmbunătățesc securitatea serverelor web Apache.
1) ascunderea versiunii Apache și a informațiilor despre sistemul de operare:
Apache afișează versiunea și numele sistemului de operare în erori, așa cum se arată în captura de ecran de mai jos.
un hacker poate folosi aceste informații pentru a lansa un atac folosind vulnerabilitățile disponibile public în versiunea particulară a serverului sau a sistemului de operare.
pentru a preveni Apache webserverfromdisplaying aceste informații, avem de a modifica
„Server signature” opțiune disponibilă în fișierul de configurare apache. În mod implicit, este „pornit”, trebuie să îl setăm „oprit”.
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.
service httpd restart
2) Dezactivați Lista de directoare
dacă directorul rădăcină al documentului nu are un fișier index, în mod implicit serverul dvs. 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 „directiva opțiuni” disponibilă în fișierul de configurare Apache.
<Directory /var/www/html> Options -Indexes</Directory>
3) dezactivarea modulelor inutile
este o practică bună să dezactivați toate modulele inutile care nu sunt utilizate. Apache –
#httpd –Mperl_module (shared)php5_module (shared)proxy_ajp_module (shared)python_module (shared)ssl_module (shared)
multe dintre modulele listate pot fi dezactivate likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, deoarece acestea sunt greu utilizate de orice servere web de producție.
vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules/mod_auth_digest.so
după ce ați comentat modulul, salvați fișierul.
reporniți serviciile apache cu următoarea comandă.
/etc/init.d/httpd restart
4) restricționarea accesului la fișiere în 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 a serverului web.
<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>
odată ce restricționați acess în afara Directoy rădăcină web, nu va fi capabil de a accesa orice fișier situat pe orice alt folder de pe serverul de web, veți primi 404 Cod retur.
5) Folosind mod_evasive pentru a respinge atacul DoS
Dacă doriți să vă protejați serverul web de Dos (adică refuzul serviciului), trebuie să activați modulul mod_evasive. Este un modul terț care detectează atacul Dos și împiedică atacul să facă la fel 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) folosind mod_security pentru a spori securitatea apache
Acest modul funcționează ca un firewall pentru Apache și vă permite să monitorizeze traficul în timp real. De asemenea, împiedică serverul web de atacuri de 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 privind dimensiunea totală a cererii http care ar putea duce la un atac DoS. Puteți limita dimensiunea cererii unei directive Apache „LimitRequestBody” cu eticheta director. Valoarea poate fi setată de la 0 la 2 GB (adică 2147483647 octeți) conform cerințelor dvs.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>
Apache Log Format
jurnalele Apache oferă informații detaliate care ajută la detectarea problemelor comune cu serverul.
pentru a crea jurnale de acces, mod_log_configmodule trebuie să fie activat.
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 se rotește fișierele jurnal gazdă virtuale ca pe parametrii stabilite.
<VirtualHost www.example.com> ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it. DocumentRoot /usr/www/example/httpd/htdocs/ ServerName www.example.com ServerAlias example.com www.example ErrorLog /usr/www/example/httpd/logs/error_log TransferLog/usr/www/example/httpd/logs/accesslog CustomLog /usr/www/example/httpd/logs/accesslog combined</VirtualHost>
două tipuri de format jurnal Apache
- format jurnal comun
- format jurnal combinat.
le puteți activa editând fișierul de configurare apache, adică apache2.conf (Debian/ubuntu) sau httpd.conf (rpm Based systems) fișier
format jurnal comun
LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common
jurnal comun generat de Apache
client denied by server configuration: /export/home/live/ap/htdocs/test
format jurnal combinat
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined
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 la 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 - - "GET /robots.txt HTTP/1.1" 404 1228 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"
jurnal personalizat creează fișier jurnal separat pentru fiecare gazdă virtuală pe server. Trebuie specificat în secțiunea gazdă virtuală a fișierului de configurare.
puteți vedea mai jos configurația gazdă virtuală menționată, Jurnalul generat va fi personalizat pentru acea gazdă virtuală și Formatul va fi combinat.
configurați prima dvs. producție Web Sever
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 directă la rețea ș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ă activat modulul PHP.
- De asemenea, trebuie să aibă o aplicație Antivirus bună configurată și rulată pentru securizarea serverului Web de atacuri Malware sau Virus. De asemenea, aveți nevoie de mecanism pentru a actualiza aplicația configurată antivirus/Anti malware în mod regulat, fără nicio intervenție manuală, pentru a obține beneficii maxime de la acestea.
- dacă aveți sute de domenii care urmează să fie găzduite pe serverul dvs. web, trebuie să implementați limitări privind cota sistemului de fișiere pentru fiecare domeniu, numărul de baze de date pe care fiecare domeniu le poate crea, numărul de conturi de e-mail pe domeniu etc.
- dacă serverul dvs. web a fost configurat pentru servicii de Găzduire Partajată, utilizatorii de pe serverul dvs. web trebuie să fie restricționați. Un utilizator de Găzduire Partajată ar trebui să aibă cel mai mic privilegiu de utilizator, astfel încât să nu deterioreze fișierele importante & rupe întregul server. Apache nu oferă nicio astfel de funcționalitate și are nevoie de diferite aplicații terțe, personalizarea sistemului de operare pentru a realiza acest lucru.
- 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 caracteristicile domeniului adăugat.
- dacă unul dintre domeniile găzduite necesită o setare PHP diferită de restul domeniilor, implementarea acestui lucru în serverul web Apache de bază este foarte complexă și necesită personalizarea serverului dvs. web în mare măsură.
- un server web de producție are nevoie de un firewall pentru a bloca traficul nedorit care ar putea provoca o încărcare mare pe serverul dvs. Implementarea regulilor IPTABLE cu linia de comandă este foarte complexă. Este nevoie de expertiza de bază Linux / Unix mediu 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.
- 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 domenii parcate. Gestionarea tuturor acestor aplicații pe un sistem de bază Linux/Unix necesită expertiză cu privire la 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 miss va fi foarte dificilă pentru începători.
soluția care utilizează Cpanel sau software similar
Cpanel oferă o modalitate grafică de gestionare a serverului dvs. web. Este menit să ofere servicii de găzduire în masă ușor de utilizat și configurat. cPanel a redus barierele tehnice la intrarea în gestionarea serverului de găzduire și web. Se face sarcină complexă mai ușor, acesta oferă multe interfețe web utile și ușor de utilizat, care efectuează sarcini comune de administrare a sistemului necesare pentru a opera un server web.
cPanel compilează propria versiune de software.
dacă trebuie să recompilați serverul web, adică. apache pe platforma normală Linux, trebuie să selectați/Căutați manual modulul necesar. cPanel oferă funcționalitate Easyapache, care este o metodă de compilare server web bazat script.
nu numai că vă oferă servicii web, ci și poștă, DNS, FTP și multe alte servicii necesare pentru aplicația dvs. web.
o sarcină care are nevoie de expertiză pe bază de Linux / Unix hosting cum ar fi instalarea SSLs, recompilarea Apache cu diferite module PHP, actualizarea de securitate Web, configurarea reguli eficiente IPTABLE, adăugarea de utilizatori ftp, crearea de conturi de e-mail pentru fiecare domeniu, scanarea rădăcină document cu antivirus și crearea de baze de date sunt ușor pentru a finaliza cu cPanel.
oferă o mulțime de scripturi care remediază, instalează și depanează sarcini administrative comune.
acesta oferă o copie de rezervă și restaurare funcționalitate eliminând necesitatea de a copia manual fișierele 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ă al documentului, conturile de e-mail și e-mailurile, conturile ftp, bazele de date, înregistrările DNS și alte aplicații.
acesta oferă, de asemenea, o documentație robustă, andhas o comunitate foarte mare de utilizatori în cazul în care ați putea discuta și de a lua soluție de problemele tale.
deci, se poate spune că cPanel este cea mai bună aplicație pentru gestionarea serverului dvs. web cu funcțiile necesare. Acesta vă oferă, 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.