Erstellt Apache Virtual Hosts mat Aktivéieren/Desaktivéiere Vhosts Optiounen an RHEL/CentOS 7.0


Virtual Hosting erlaabt Apache Weberver fir verschidden Inhalter op Basis vun IP Adress, Hostnumm oder benotzte Portnummer ze déngen. Dëse Guide wäert eng Debian ähnlech Approche benotzen fir virtuell Hosten op Red Hat Enterprise Linux/CentOS 7.0 z'aktivéieren an ze managen andeems Dir zwee Verzeichnisser um /etc/httpd/ Wee erstellt, wat wäert halen all aktivéiert an behënnert Websäit Dateikonfiguratiounen - Site-available an Site-enabled, an zwou Aarte vu Scripte fir als Kommandoen ze handelen, een deen aktivéiert an aner déi spezifizéiert virtuell deaktivéiert Hosten – a2ensite an a2dissite. Dës Approche huet e puer Virdeeler well Dir musst mat httpd Konfiguratiounsdatei messen an all virtuelle Host huet seng eege Konfiguratiounsdatei déi op enger eenzeger Plaz fonnt ka ginn - aktivéiert Hosten si just Symlinks - déi de Prozess maachen fir z'aktivéieren, auszeschalten, erstellen oder läschen hinnen ganz handhaben.

  1. LAMP Basisinstallatioun op RHEL/CentOS 7.0

Erstellt a verwalten Apache Virtuell Hosten an RHEL/CentOS 7

1. Fir unzefänken, fänkt u mam /etc/httpd/ Wee un, erstellt Site-verfügbar a Site-aktivéiert Verzeichnisser an ännert Apache httpd.conf-Datei fir déi nei anzesetzen aktivéiert Websäite Standuert.

# cd /etc/httpd/
# mkdir sites-available sites-enabled
# nano conf/httpd.conf

2. Op httpd.conf Datei füügt déi folgend Direktivlinn um Enn vun der Datei un, déi Apache liest a parséiert all Dateien op /etc/httpd/sites-enabled/ an .conf Extensioun opgehalen.

IncludeOptional sites-enabled/*.conf

3. Op de nächste Schrëtt erstellt en neie Virtuelle Host op Site-verfügbar Location mat engem deskriptiven Numm - an dësem Fall hunn ech rheltest.lan.conf benotzt - a benotzt de folgend Datei als Schabloun.

# nano /etc/httpd/sites-available/rheltest.lan.conf

Benotzt dës Konfiguratioun als Guide.

<VirtualHost *:80>
        ServerName rheltest.lan
        DocumentRoot "/var/www/rheltest.lan"
                <Directory "/var/www/rheltest.lan">
                Options Indexes FollowSymLinks MultiViews
         # AllowOverride controls what directives may be placed in .htaccess files.      
                        AllowOverride All
        # Controls who can get stuff from this server file
                        Order allow,deny
                        Allow from all
           </Directory>
        <IfModule mpm_peruser_module>
                ServerEnvironment apache apache
        </IfModule>
        ErrorLog  /var/log/httpd/rheltest.lan-error.log
        CustomLog /var/log/httpd/rheltest.lan-access.log combined
</VirtualHost>

4. Wann Dir DocumentRoot Location op Ärem virtuelle Host vun Standard /var/www/html op en anere Wee geännert hutt, vergewëssert Iech datt Dir och dëse Wee erstellt.

# mkdir -p /var/www/rheltest.lan

NOTÉIERT: Vergewëssert Iech och datt de ServerName Host e gültege DNS-Rekord ass oder op Är lokal Maschinnen Hostdatei bäigefüügt gëtt, vu wou Dir plangt d'Websäit ze besichen.

5. Elo ass et Zäit a2ensite an a2dissite Bash Scripten op engem ausführbare Systemwee ze kreéieren - an dësem Fall ass /usr/local/bin/ – awer
Dir kënnt all ausführbare Wee benotzen, deen PATH Systemvariabelen ausgëtt.

Erstellt eng folgend Datei mat Ärem Choix vum Editor.

# nano /usr/local/bin/a2ensite

Füügt de folgende Skript derbäi.

#!/bin/bash
if test -d /etc/httpd/sites-available && test -d /etc/httpd/sites-enabled  ; then
echo "-----------------------------------------------"
else
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" ]; then
                echo "Use script: a2ensite virtual_site"
                echo -e "\nAvailable virtual hosts:\n$site"
                exit 0
else

if test -e $avail; then
sudo ln -s $avail $enabled
else

echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then

echo "Success!! Now restart Apache server: sudo systemctl restart httpd"
else
echo  -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
exit 0
fi
fi

Erstellt eng folgend Datei mat Ärem Choix vum Editor.

# nano /usr/local/bin/a2dissite

Füügt dat ganzt folgend Skript an d'Datei.

#!/bin/bash
avail=/etc/httpd/sites-enabled/$1.conf
enabled=/etc/httpd/sites-enabled
site=`ls /etc/httpd/sites-enabled/`

if [ "$#" != "1" ]; then
                echo "Use script: a2dissite virtual_site"
                echo -e "\nAvailable virtual hosts: \n$site"
                exit 0
else

if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting!"
exit 0
fi

if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nPlease restart Apache: sudo systemctl restart httpd"
exit 0
fi
fi

6. Nodeems béid Skriptdateien erstallt goufen, vergewëssert Iech datt se ausführbar sinn a fänken un se ze benotzen fir aktivéieren oder deaktivéieren virtuelle Hosten andeems Dir vhost Numm als Kommandoparameter bäidréit.

# chmod +x /usr/local/bin/a2*
# a2ensite vhost_name
# a2disite vhost_name

7. Fir et ze testen, aktivéiert de virtuelle Host deen virdru erstallt gouf, den Apache Service nei starten an de Browser direkt op den neie virtuelle Host - an dësem Fall http://rheltest.lan.

# a2ensite rheltest.lan
# systemctl restart httpd

Dat ass et! Elo kënnt Dir a2eniste an a2dissite bash Scripten als Systembefehle benotze fir Apache Vhosts Datei op RHEL/CentOS 7.0 ze managen.