Oprettelse af Apache-virtuelle værter med Aktiver/Deaktiver Vhosts-indstillinger i RHEL/CentOS 7.0


Virtuel hosting giver Apache Weberver mulighed for at servere andet indhold baseret på IP-adresse, værtsnavn eller brugt portnummer. Denne vejledning bruger en Debian lignende tilgang til aktivering og styring af virtuelle værter på Red Hat Enterprise Linux/CentOS 7.0 ved at oprette to mapper på /etc/httpd/ sti, som vil beholde alle aktiverede og deaktiverede webstedsfilkonfigurationer - websteder-tilgængelige og websteder-aktiverede og to typer scripts til at fungere som kommandoer, en der aktiverer og anden, der deaktiverer specificeret virtuel værter - a2ensite og a2dissite . Denne tilgang har nogle fordele, fordi du er nødt til at rode med httpd-konfigurationsfil, og hver virtuel vært har sin egen konfigurationsfil, der kan findes på en enkelt placering - aktiverede værter er bare symlinks, som gør processen med at aktivere, deaktivere, oprette eller slette dem meget håndterbare.

  1. LAMP Grundlæggende installation på RHEL/CentOS 7.0

Opret og administrer Apache virtuelle værter i RHEL/CentOS 7

1. Start med at starte med at gå ind på /etc/httpd/ stien, oprette websteder, der er tilgængelige og webstedsaktiverede mapper, og rediger Apache httpd.conf -fil for at anvende den nye aktiverede websteds placering.

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

2. På httpd.conf -filen skal du tilføje følgende direktivlinje i bunden af filen, hvilket får Apache til at læse og parse alle filer, der findes på /etc/httpd/sites-enabled/ sluttede med .conf udvidelse.

IncludeOptional sites-enabled/*.conf

3. Opret en ny virtuel vært på websteder-tilgængelige placering ved hjælp af et beskrivende navn - i dette tilfælde har jeg brugt rheltest.lan.conf - og brug følgende fil som en skabelon.

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

Brug denne konfiguration som en vejledning.

<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. Hvis du ændrede DocumentRoot placering på din virtuelle vært fra standard /var/www/html til en anden sti, skal du sørge for også at oprette denne sti.

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

BEMÆRK: Sørg også for, at ServerName-værten er en gyldig DNS-post eller er føjet til din lokale maskins værtsfil, hvorfra du planlægger at besøge webstedet.

5. Nu er det tid til at oprette a2ensite og a2dissite bash-scripts på en eksekverbar systemsti - i dette tilfælde er /usr/local/bin/- men
du kan bruge enhver eksekverbar sti, der $ PATH systemvariabel output.

Opret en følgende fil med dit valg af editor.

# nano /usr/local/bin/a2ensite

Føj følgende script til det.

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

Opret en følgende fil med dit valg af editor.

# nano /usr/local/bin/a2dissite

Føj hele følgende script til filen.

#!/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. Når begge scriptfiler er oprettet, skal du sørge for, at de er eksekverbare, og begynde at bruge dem til at aktivere eller deaktivere virtuelle værter ved at tilføje vhost-navn som kommandoparameter.

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

7. For at teste det skal du aktivere den tidligere oprettede virtuelle vært, genstarte Apache-tjenesten og dirigere browseren til den nye virtuelle vært - i dette tilfælde http: //rheltest.lan .

# a2ensite rheltest.lan
# systemctl restart httpd

Det er det! Nu kan du bruge a2eniste og a2dissite bash-scripts som systemkommandoer til at administrere Apache Vhosts-filen på RHEL/CentOS 7.0.