Apache'i virtuaalsete hostide loomine RHEL/CentOS 7.0 Vhostsi suvandite lubamise/keelamise abil


Virtuaalne majutus võimaldab Apache Weberveril esitada erinevat sisu IP-aadressi, hostinime või kasutatud pordinumbri põhjal. Selles juhendis kasutatakse Red Hat Enterprise Linuxi/CentOS 7.0 virtuaalsete hostide lubamiseks ja haldamiseks Debiani taolist lähenemisviisi, luues teele /etc/httpd/ kaks kataloogi, mis hoia kõik lubatud ja keelatud veebisaidi failikonfiguratsioonid - saidid saadaval ja saidid lubatud ning kahte tüüpi skripte käskudena tegutsemiseks: üks lubab ja teine keelab määratud virtuaalse hostid - a2ensite ja a2dissite . Sellel lähenemisviisil on mõned eelised, sest peate tõepoolest segi ajama httpd-konfiguratsioonifailiga ja igal virtuaalsel hostil on oma konfiguratsioonifail, mille leiate ühest kohast - lubatud hostid on lihtsalt sümbolid - mis muudavad lubamise, keelamise, loomise või muutmise protsessi nende kustutamine on väga hallatav.

  1. LAMPi põhiinstallimine RHEL/CentOS 7.0-le

Apache virtuaalsete hostide loomine ja haldamine RHEL/CentOS 7-s

1. Alustuseks sisestage /etc/httpd/ teele, looge saitidel saadaolevad ja saite lubavad kataloogid ning redigeerige Apache httpd.conf faili uue rakenduse saamiseks lubatud veebisaitide asukoht.

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

2. Lisage failile httpd.conf järgmine direktiivirida, mis muudab Apache'i lugemiseks ja sõelumiseks kõik failid, mis asuvad saidil /etc/httpd/sites-enabled/ lõppes laiendiga .conf .

IncludeOptional sites-enabled/*.conf

3. Järgmise sammuna looge Virtuaalne host saidil saadaval asukohta kirjeldava nimega - antud juhul olen kasutanud rheltest.lan.conf - ja kasutage järgmine fail mallina.

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

Kasutage seda konfiguratsiooni juhendina.

<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. Kui muutsite DocumentRoot asukoha oma virtuaalses hostis vaikimisi asukohaks /var/www/html muuks, siis looge kindlasti ka see tee.

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

MÄRKUS. Veenduge ka, et ServerName host on kehtiv DNS-kirje või on lisatud teie kohalike masinate hostifaili, kust kavatsete veebisaiti külastada.

5. Nüüd on aeg luua käivitatavate süsteemiteedele a2ensite ja a2dissite bash skriptid - antud juhul on /usr/local/bin/- aga
võite kasutada suvalist käivitatavat teed, mida süsteemimuutuja $PATH väljastab.

Looge valitud redaktoriga järgmine fail.

# nano /usr/local/bin/a2ensite

Lisage sellele järgmine skript.

#!/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

Looge valitud redaktoriga järgmine fail.

# nano /usr/local/bin/a2dissite

Lisage faili kogu järgmine skript.

#!/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. Pärast mõlema skriptifaili loomist veenduge, et need oleksid käivitatavad, ja hakake neid virtuaalsete hostide lubamiseks või keelamiseks lisama, lisades käsuparameetriks vhost-i nime.

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

7. Selle testimiseks lubage varem loodud virtuaalne host, taaskäivitage Apache-teenus ja suunake brauser uuele virtuaalsele hostile - antud juhul http://rheltest.lan .

# a2ensite rheltest.lan
# systemctl restart httpd

See on kõik! Nüüd saate RHEL/CentOS 7.0 Apache Vhostsi faili haldamiseks süsteemikäsklustena kasutada a2eniste ja a2dissite bashi skripte.