Gazduire virtuala permite Apache Weberver să difuzeze conținut diferit pe baza adresei IP, a numelui de gazdă sau a numărului de port utilizat. Acest ghid va utiliza un Debian cum ar fi abordarea activării și gestionării gazdelor virtuale pe Red Hat Enterprise Linux / CentOS 7.0 prin crearea a două directoare pe /etc/httpd/ cale, care va păstra toate configurațiile de fișiere de site web activate și dezactivate - site-uri disponibile și site-uri activate, și două tipuri de scripturi pentru a acționa ca comenzi, una care activează și alta care dezactivează gazdele virtuale specificate - a2ensite și a2dissite. Această abordare are unele avantaje, deoarece trebuie să vă deranjați cu fișierul de configurare httpd și fiecare gazdă virtuală are propriul său fișier de configurare pot fi găsite într-o singură locație - gazdele activate sunt doar link-uri simbolice - ceea ce face procesul de activare, dezactivare, creare sau ștergere a acestora gestionabil.
1. Pentru a începe, începe prin a intra pe /etc/httpd/ calea, creați directoare disponibile pentru site-uri și site-uri activate și editați Apache httpd.conf fișier pentru a aplica noua locație activată a site-urilor web.
# cd / etc / httpd / # site-uri mkdir-site-uri disponibile activate. # nano conf / httpd.conf
2. Pe httpd.conf fișier adăugați următoarea linie directivă în partea de jos a fișierului, ceea ce va face ca Apache să citească și să analizeze toate fișierele aflate pe /etc/httpd/sites-enabled/ încheiat în .conf extensie.
Include Opțional site-uri activate / *. Conf
3. La pasul următor creați o nouă gazdă virtuală pe site-uri disponibile locație folosind un nume descriptiv - în acest caz am folosit-o rheltest.lan.conf - și utilizați următorul fișier ca șablon.
# nano /etc/httpd/sites-available/rheltest.lan.conf
Utilizați această configurație ca ghid.
ServerName rheltest.lan DocumentRoot "/var/www/rheltest.lan" Opțiuni Indexuri FollowSymLinks MultiViews # AllowOverride controlează directivele care pot fi plasate în fișierele .htaccess. AllowOverride All # Controlează cine poate obține lucruri din acest fișier server Permiteți comanda, refuzați Permite de la toți ServerEnvironment apache apache ErrorLog /var/log/httpd/rheltest.lan-error.log CustomLog /var/log/httpd/rheltest.lan-access.log combinat.
4. Dacă te-ai schimbat DocumentRoot locația de pe gazda dvs. virtuală implicit /var/www/html către altă cale, asigurați-vă că creați și această cale.
# mkdir -p /var/www/rheltest.lan
NOTĂ: Asigurați-vă, de asemenea, că gazda ServerName este o înregistrare DNS validă sau este adăugată la fișierul dvs. gazdă de mașini locale, de unde intenționați să vizitați site-ul web.
5. Acum este timpul să creați a2ensite și a2dissite scripturi bash pe o cale de sistem executabilă - în acest caz este / usr / local / bin / - dar
puteți utiliza orice cale executabilă care $ PATH ieșiri variabile de sistem.
Creați un fișier următor cu editorul ales.
# nano / usr / local / bin / a2ensite
Adăugați următorul script.
#! / bin / bash. dacă test -d / etc / httpd / sites-available && test -d / etc / httpd / sites-enabled; apoi. ecou "" altceva. mkdir / etc / httpd / sites-available. mkdir / etc / httpd / sites-enabled. fi avail = / etc / httpd / sites-available / $ 1.conf. enabled = / etc / httpd / sites-enabled / site = `ls / etc / httpd / sites-available /` if ["$ #"! = "1"]; apoi echo "Utilizați scriptul: a2ensite virtual_site" echo -e "\ nGazde virtuale disponibile: \ n $ site" ieșire 0. altfel dacă test -e $ avail; apoi. sudo ln -s $ avail $ activat. else echo -e "$ avail gazdă virtuală nu există! Vă rugăm să creați unul! \ N $ site " ieșire 0. fi. dacă test -e $ activat / $ 1.conf; apoi ecou „Succes!! Acum reporniți serverul Apache: sudo systemctl reporniți httpd " altceva. echo -e "Gazda virtuală $ avail nu există! \ nVă rugăm să vedeți gazdele virtuale disponibile: \ n $ site-ul" ieșire 0. fi. fi
Creați un fișier următor cu editorul ales.
# nano / usr / local / bin / a2dissite
Adăugați întregul script următor în fișier.
#! / bin / bash. avail = / etc / httpd / sites-enabled / $ 1.conf. enabled = / etc / httpd / sites-enabled. site = `ls / etc / httpd / sites-enabled /` if ["$ #"! = "1"]; apoi echo "Utilizați scriptul: a2dissite virtual_site" echo -e "\ nGazde virtuale disponibile: \ n $ site" ieșire 0. altfel dacă test -e $ avail; apoi. sudo rm $ avail. altceva. echo -e "$ avail gazdă virtuală nu există! Ieșind! " ieșire 0. fi dacă test -e $ activat / $ 1.conf; apoi. ecou "Eroare!! Nu s-a putut elimina $ avail gazdă virtuală! " altceva. echo -e "Succes! $ avail a fost eliminat! \ nVă rugăm să reporniți Apache: sudo systemctl reporniți httpd " ieșire 0. fi. fi
6. După ce ambele fișiere script au fost create, asigurați-vă că sunt executabile și începeți să le utilizați pentru permite sau dezactivați gazde virtuale prin adăugarea numelui vhost ca parametru de comandă.
# chmod + x / usr / local / bin / a2 * # a2ensite vhost_name. # a2disite vhost_name
7. Pentru a-l testa, activați gazda virtuală creată mai devreme, reporniți serviciul Apache și direcționați browserul către noua gazdă virtuală - în acest caz http://rheltest.lan.
# a2ensite rheltest.lan. # systemctl reporniți httpd
Asta e! Acum puteți utiliza a2eniste și a2dissite scripturi bash ca comenzi de sistem pentru gestionarea fișierului Apache Vhosts pe RHEL / CentOS 7.0.