APA

Învață Apache HTTP Server: comenzi explicate cu exemple

50 de comenzi 6 categorii

Apache HTTP Server (cunoscut popular ca Apache sau httpd) este cel mai longeviv și robust server web din istoria internetului modern. Lansat în 1995 de The Apache Software Foundation, a stat la baza revoluției World Wide Web și a definit stiva clasică LAMP (Linux, Apache, MySQL, PHP).

Datorită arhitecturii sale extrem de flexibile și a ecosistemului vast de module, Apache rămâne serverul de referință pentru găzduirea partajată (cPanel/WHM), aplicații enterprise și platforme CMS precum WordPress, oferind suport nativ pentru fișiere de configurare descentralizate (.htaccess), rescrieri avansate prin mod_rewrite și integrare rapidă cu procesoare PHP-FPM prin socket-uri UNIX.

Mai jos găsești cele 50 de comenzi, directive și concepte esențiale grupate pe categorii: control și administrare din consolă (apache2ctl), configurarea gazdelor virtuale (Virtual Hosts) și permisiuni de directoare, motorul de rescriere mod_rewrite și .htaccess, securitate SSL/TLS și antete HTTP, optimizare performanță (mpm_event, Gzip, cache) și gestionarea jurnalelor, a proxy-urilor și a procesorului PHP-FPM.

Control proces și CLI server 8 comenzi

Configurare Virtual Hosts și Directoare 9 comenzi

Modulul mod_rewrite și .htaccess 9 comenzi

Securitate, SSL/TLS și Antete HTTP 8 comenzi

Performanță, Compresie și Caching 8 comenzi

Jurnale, Reverse Proxy și PHP-FPM 8 comenzi

Toate comenzile și directivele Apache HTTP Server

Lista completă a celor 50 de comenzi și directive Apache explicate în această secțiune. Fiecare are propria pagină dedicată, cu explicații în limba română, sintaxă și exemple practice gata de utilizat.

Control proces și CLI server (8)

Funcție Ce face
apache2ctl start - Pornirea serviciului Apache HTTP Server Inițializează procesul principal Apache (httpd) și deschide porturile de ascultare configurate (80/443).
sudo apache2ctl start
apache2ctl stop - Oprirea completă a serverului Apache Trimite semnalul de terminare (SIGTERM) către procesul master Apache, închizând toți procesorii worker și porturile.
sudo apache2ctl stop
apache2ctl restart - Repornirea completă a serverului Apache Oprește și repornește de la zero procesul principal Apache, reîncărcând fișierele de configurare și certificatele SSL.
sudo apache2ctl restart
apache2ctl graceful - Repornire elegantă fără deconectarea vizitatorilor Reîncarcă configurațiile fără a întrerupe conexiunile active ale utilizatorilor curenți (Zero Downtime).
sudo apache2ctl graceful
apache2ctl configtest / httpd -t - Verificarea sintaxei fișierelor de configurare Validează sintaxa tuturor fișierelor de configurare Apache fără a opri sau reporni serverul.
sudo apache2ctl configtest
a2ensite / a2dissite - Activarea și dezactivarea gazdelor virtuale (Virtual Hosts) Creează sau șterge legături simbolice (symlinks) între directorul sites-available și sites-enabled.
sudo a2ensite site.conf
a2enmod / a2dismod - Activarea și dezactivarea modulelor Apache Activează sau dezactivează modulele Apache prin gestionarea legăturilor simbolice în mods-enabled.
sudo a2enmod rewrite ssl headers deflate proxy proxy_http
apachectl status / httpd -V - Inspectarea stării și a setărilor de compilare Afișează starea în timp real a proceselor worker sau detaliile de compilare, căile către directoare și arhitectura MPM.
sudo apachectl status

Configurare Virtual Hosts și Directoare (9)

Funcție Ce face
Directiva <VirtualHost> - Definirea unei gazde virtuale independente Încadrează directivele aplicabile exclusiv unui anumit nume de domeniu sau port IP.
<VirtualHost *:80>
Directiva ServerName - Specificarea numelui de domeniu principal Stabilește schema de identificare a numelui de domeniu folosit pentru maparea cererilor HTTP către VirtualHost.
ServerName dexblog.ro
Directiva ServerAlias - Specificarea domeniilor alternative și a subdomeniilor Definește nume alternative de domenii care sunt deservite de aceeași gazdă virtuală.
ServerAlias www.dexblog.ro
Directiva DocumentRoot - Directorul rădăcină al fișierelor publice Indică calea absolută din sistemul de fișiere de unde sunt livrate documentele web publice.
DocumentRoot /var/www/dexblog.ro/public_html
Directiva <Directory> - Politici de permisiuni și acces per director Aplică un set de reguli de securitate și configurări exclusiv pe directorul specificat și pe subdirectoarele acestuia.
<Directory /var/www/html>
Directiva AllowOverride - Autorizarea directivelor din fișiere .htaccess Stabilește ce categorii de directive pot fi suprascrise de dezvoltatori folosind fișiere locale .htaccess.
AllowOverride All
Directiva Require - Controlul de acces și permisiuni IP (Require all granted) Mecanismul de bază din modulul mod_authz_core pentru autorizarea sau blocarea cererilor după statut sau adresă IP.
Require all granted
Directiva DirectoryIndex - Fișierul implicit de start Stabilește ordinea fișierelor căutate de Apache atunci când clientul solicită un director (ex: cerere către /).
DirectoryIndex index.php index.html index.htm
Directiva ServerAdmin - Adresa de e-mail a administratorului Specifică adresa de contact a administratorului care va fi afișată pe paginile implicite de eroare generată de server.
ServerAdmin webmaster@dexblog.ro

Modulul mod_rewrite și .htaccess (9)

Funcție Ce face
Directiva RewriteEngine - Activarea motorului de rescriere URL Pornește sau oprește motorul de rescriere a adreselor URL furnizat de modulul mod_rewrite.
RewriteEngine On
Directiva RewriteRule - Definirea regulilor de transformare și redirecționare URL Transformă URL-ul cerut pe baza unei expresii regulate PCRE și îl redirecționează intern sau extern.
RewriteRule tipar_regex substitutie [indicatori]
Directiva RewriteCond - Condiții logice prealabile pentru RewriteRule Aplică o regulă RewriteRule doar dacă una sau mai multe condiții pe variabile de server sunt îndeplinite.
RewriteCond %{VARIABILA_TEST} tipar_conditie [indicatori]
Directiva RewriteBase - Stabilirea căii URL de bază pentru rescrieri relative Definește prefixul URL utilizat la generarea substituțiilor relative în fișiere .htaccess.
RewriteBase /
Indicatorii de rescriere [L], [R=301], [NC], [QSA] - Controlul execuției regulilor Flag-uri plasate la finalul unei reguli RewriteRule pentru a controla oprirea, redirecționarea sau păstrarea parametrilor.
RewriteRule ... [L]
Forțare HTTPS prin rescriere - Redirecționarea automată a traficului HTTP Redirecționează permanent (301) toți vizitatorii de la protocolul necriptat HTTP către conexiunea securizată HTTPS.
RewriteCond %{HTTPS} off
Normalizare bare oblice și extensii - Eliminarea sau forțarea slash-ului final Previne conținutul duplicat în motoarele de căutare prin redirecționarea URL-urilor cu sau fără bară oblică finală.
RewriteCond %{REQUEST_FILENAME} !-d
Blocare acces fișiere sensibile - Protejarea fișierelor .htaccess, .env și .git Interzice descărcarea prin browser a fișierelor de sistem, credențialelor și configurațiilor interne.
<FilesMatch "^\.(ht|env|git)">
Protecție împotriva Hotlinking-ului - Blocarea includerii imaginilor pe site-uri terțe Previne consumul abuziv de lățime de bandă generat de site-uri terțe care afișează imaginile tale direct.
RewriteCond %{HTTP_REFERER} !^$

Securitate, SSL/TLS și Antete HTTP (8)

Funcție Ce face
Directiva SSLEngine - Activarea criptării SSL/TLS în VirtualHost Pornește motorul de criptare TLS pentru conexiunile primite pe portul 443.
<VirtualHost *:443>
Directiva SSLCertificateFile - Calea către certificatul SSL/TLS Indică calea absolută către fișierul PEM care conține certificatul public al serverului și lanțul de autorități intermediare.
SSLCertificateFile /etc/letsencrypt/live/dexblog.ro/fullchain.pem
Directiva SSLCertificateKeyFile - Cheia privată a certificatului SSL Indică calea către cheia privată asociată certificatului serverului.
SSLCertificateKeyFile /etc/letsencrypt/live/dexblog.ro/privkey.pem
Directiva SSLProtocol - Selectarea versiunilor permise de protocoale TLS Dezactivează protocoalele criptografice învechite și impune utilizarea exclusivă a standardelor sigure TLS 1.2 și TLS 1.3.
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2 +TLSv1.3
Directiva SSLCipherSuite - Suita de algoritmi de cifrare permisă Stabilește lista algoritmilor de criptare simetrică și asimetrică acceptați în negocierea TLS 1.2.
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
Antetul HSTS (Strict-Transport-Security) - Forțarea conexiunilor HTTPS în browser Instruiește browserul să comunice exclusiv prin HTTPS pentru o perioadă determinată de timp, prevenind atacurile de downgrade SSL stripping.
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Directiva ServerTokens - Ascunderea versiunii serverului Apache din antete Controlează cantitatea de informații despre versiunea Apache și distribuția sistemului de operare expuse în antetul HTTP ‘Server:’.
ServerTokens Prod
Directiva ServerSignature - Eliminarea semnăturii din paginile de eroare Dezactivează afișarea numelui de server, versiunii și portului în subsolul paginilor generate de eroare (404, 500).
ServerSignature Off

Performanță, Compresie și Caching (8)

Funcție Ce face
Modulul mod_deflate - Compresia automată Gzip a răspunsurilor text Comprimă datele text înainte de a fi transmise către browser, reducând dimensiunea transferată cu până la 70-85%.
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json
Modulul mod_expires - Setarea antetelor de expirare și cache în browser Generează automat antetele HTTP Expires și Cache-Control pe baza datei de acces sau a datei de modificare a fișierului.
ExpiresActive On
Directiva ExpiresByType - Politici diferențiate de cache după tipul de fișier Stabilește durata de valabilitate a cache-ului adaptată specific pentru fiecare tip MIME în parte.
ExpiresByType image/webp "access plus 1 year"
Directiva Header set Cache-Control - Controlul direct al antetului HTTP de cache Configurează direct antetul standard HTTP/1.1 Cache-Control cu directive avansate precum immutable sau no-store.
Header set Cache-Control "max-age=31536000, public, immutable"
Directiva KeepAlive - Reutilizarea conexiunilor TCP persistente Permite trimiterea mai multor cereri HTTP succesive prin aceeași conexiune TCP deschisă (HTTP Persistent Connections).
KeepAlive On
Directiva KeepAliveTimeout & MaxKeepAliveRequests - Controlul ciclului de viață KeepAlive Stabilește numărul de secunde în care un socket rămâne deschis în așteptarea unei noi cereri și numărul maxim de cereri permise.
KeepAliveTimeout 5
Modulul mpm_event - Arhitectura multi-proces asincronă de înaltă performanță Configurează modelul MPM modern ghidat de evenimente (event-driven), similar cu Nginx, pentru gestionarea a mii de conexiuni concurente.
<IfModule mpm_event_module>
Directiva Timeout - Limita de timp pentru transferul pachetelor de rețea Stabilește durata maximă în secunde pe care Apache o așteaptă între transmiterea sau recepționarea a doi octeți consecutivi.
Timeout 60

Jurnale, Reverse Proxy și PHP-FPM (8)

Funcție Ce face
Directiva ErrorLog - Configurarea căii jurnalului de erori Stabilește destinația unde Apache înregistrează toate avertismentele, erorile de compilare, căderile de module și problemele de acces.
ErrorLog ${APACHE_LOG_DIR}/error.log
Directiva CustomLog - Înregistrarea cererilor de acces în format standard Înregistrează fiecare cerere HTTP procesată de server, incluzând IP-ul clientului, data, URL-ul, codul de stare, User-Agent și Referer.
CustomLog ${APACHE_LOG_DIR}/access.log combined
Directiva LogLevel - Filtrarea detaliilor din jurnalul de erori Controlează pragul de gravitate a mesajelor înregistrate în ErrorLog (emerg, alert, crit, error, warn, notice, info, debug).
LogLevel warn
Directiva ProxyPass - Configurarea Apache ca Reverse Proxy Redirecționează cererile primite către un server backend intern (Node.js, Python, Go, Docker sau Tomcat).
ProxyPass / http://127.0.0.1:3000/
Directiva ProxyPassReverse - Rescrierea antetelor de redirecționare din backend Ajustează antetele Location, Content-Location și URI trimise de backend pentru a nu expune adresa internă de localhost utilizatorilor.
ProxyPassReverse / http://127.0.0.1:3000/
Integrarea PHP-FPM prin SetHandler - Execuția scripturilor PHP prin FastCGI Proxy Conectează Apache la procesorul FastCGI extern PHP-FPM folosind un socket UNIX local de înaltă viteză.
<FilesMatch \.php$>
Modulul mod_status - Monitorizarea conexiunilor și a stării serverului în timp real Furnizează o pagină HTML sau text cu statistici detaliate despre conexiunile curente, procesele worker active și cererile procesate.
<Location /server-status>
Directiva ErrorDocument - Personalizarea paginilor de eroare HTTP (404, 500, 403) Înlocuiește paginile implicite de eroare tehnice ale Apache cu pagini HTML prietenoase adaptate designului site-ului.
ErrorDocument 404 /404.html