Apache-virtuaalipalvelinten luominen RHEL/CentOS 7.0: n Vhosts-asetusten sallimisen tai poistamisen avulla


Virtuaalipalvelun avulla Apache Weberver voi palvella eri sisältöä IP-osoitteen, isäntänimen tai käytetyn portin numeron perusteella. Tässä oppaassa käytetään Debianin kaltaista lähestymistapaa virtuaalisten isäntien ottamiseen käyttöön ja hallintaan Red Hat Enterprise Linux/CentOS 7.0: ssa luomalla kaksi hakemistoa /etc/httpd/ -polulle, jotka säilytä kaikki käytössä olevat ja käytöstä poistetut verkkosivustotiedostomääritykset - sivustot käytettävissä ja sivustot käytössä ja kahden tyyppiset komentosarjat toimivat komentoina, yksi sallii ja toinen poistaa määritetyt virtuaaliset tiedostot isännät - a2ensite ja a2dissite . Tällä lähestymistavalla on joitain etuja, koska joudut sotkimaan httpd-määritystiedoston kanssa ja jokaisella virtuaalisella isännällä on oma määritystiedosto, joka löytyy yhdestä sijainnista - käytössä olevat isännät ovat vain symlinkkejä - jotka tekevät prosessista mahdollistavan, poistamattoman, luomisen tai poistamalla ne hyvin hallittavissa.

  1. LAMP Basic -asennus RHEL/CentOS 7.0 -käyttöjärjestelmään

Luo ja hallinnoi Apache-virtuaalipalvelimia RHEL/CentOS 7: ssä

1. Aloita kirjoittamalla /etc/httpd/ -polku, luomalla sivustoille käytettävissä olevat ja sivustoja tukevat hakemistot ja muokkaamalla Apache httpd.conf -tiedostoa uuden sovelluksen käyttämiseksi. käytössä olevien verkkosivustojen sijainti.

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

2. Lisää httpd.conf -tiedostoon seuraava käskyrivi tiedoston alaosaan, mikä saa Apachen lukemaan ja jäsentämään kaikki tiedostot, jotka sijaitsevat /etc/httpd/sites-enabled/ päättyi .conf -laajennukseen.

IncludeOptional sites-enabled/*.conf

3. Seuraavassa vaiheessa luo uusi virtuaalinen isäntä sivustot käytettävissä olevaan sijaintiin kuvaavalla nimellä - tässä tapauksessa olen käyttänyt rheltest.lan.conf - ja käytä seuraava tiedosto mallina.

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

Käytä tätä kokoonpanoa oppaana.

<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. Jos muutit DocumentRoot -aseman virtuaalipalvelimessa oletusarvoiseksi /var/www/html -poluksi, muista luoda myös tämä polku.

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

HUOMAUTUS: Varmista myös, että ServerName-isäntä on kelvollinen DNS-tietue tai se on lisätty paikallisten koneiden isäntätiedostoon, josta aiot vierailla verkkosivustolla.

5. Nyt on aika luoda a2ensite ja a2dissite bash-komentosarjat suoritettavalle järjestelmän polulle - tässä tapauksessa on /usr/local/bin/- mutta
voit käyttää mitä tahansa suoritettavaa polkua, jonka $PATH -järjestelmämuuttuja tuottaa.

Luo seuraava tiedosto valitsemallasi editorilla.

# nano /usr/local/bin/a2ensite

Lisää seuraava komentosarja siihen.

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

Luo seuraava tiedosto valitsemallasi editorilla.

# nano /usr/local/bin/a2dissite

Lisää koko seuraava komentosarja tiedostoon.

#!/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. Kun molemmat komentotiedostot on luotu, varmista, että ne ovat suoritettavia, ja aloita niiden avulla ottaa käyttöön tai poistaa virtuaaliset isännät liittämällä vhost-nimi komentoparametriksi.

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

7. Testaa se ottamalla käyttöön aiemmin luotu virtuaalinen isäntä, käynnistämällä Apache-palvelu uudelleen ja ohjaamalla selain uuteen virtuaaliseen isäntään - tässä tapauksessa http://rheltest.lan .

# a2ensite rheltest.lan
# systemctl restart httpd

Se siitä! Nyt voit käyttää a2eniste ja a2dissite bash-komentosarjoja järjestelmän komentoina Apache Vhosts -tiedoston hallinnassa RHEL/CentOS 7.0: ssa.